close_btn
조회 수 3760 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print Files

DATA 나누기 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#Spliting data 
import random
import os
import shutil
import numpy as np
from numpy import *
 
base_path = os.getcwd()
data_path = os.path.join(base_path, "train"
categories = os.listdir(data_path)
test_path = os.path.join(base_path, "val")
 
for cat in categories:
    image_files = os.listdir(os.path.join(data_path, cat))
    choices = np.random.choice([01], size=(len(image_files),), p=[.8, .2])
    files_to_move = compress(choices, image_files)
    
    for _f in files_to_move:
        origin_path = os.path.join(data_path, cat,  _f)
        dest_dir = os.path.join(test_path, cat)
        dest_path = os.path.join(test_path, cat, _f)
        if not os.path.isdir(dest_dir):
            os.mkdir(dest_dir)
        shutil.move(origin_path, dest_path)
cs
Model 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import os
import re
import numpy as np
import random as rn
import keras
import tensorflow as tf
from keras import backend as K    
from keras.models import Model
from keras.layers import (
    Conv2D,
    MaxPooling2D,
    ZeroPadding2D,
)
from sklearn.preprocessing import LabelBinarizer
from keras.layers.normalization import BatchNormalization
from keras.initializers import he_normal
 
from keras import optimizers
from keras.callbacks import TensorBoard
from keras.preprocessing.image import ImageDataGenerator
from keras import regularizers
import matplotlib.pyplot as plt
from PIL import Image
from IPython.display import display
from sklearn.metrics import accuracy_score, f1_score
import vgg_19
import scipy.io
 
#Parameters
batch_size        = 32
num_classes       = 101
epochs            = 50
weight_decay      = 0.01
steps_per_epoch   = 9146 / batch_size
log_filepath      = '/tmp/caltech101/vgg19'
dropout           = 0.5
image_input_shape = (2242243,)
train_data_dir    = 'data/101_ObjectCategories/train'
val_data_dir      = 'data/101_ObjectCategories/val'
annotation_dir    = 'data/101_Annotations'
 
#Loading the data
catagories = os.listdir('data/101_ObjectCategories/train')
catagories_one_hot = LabelBinarizer().fit_transform(catagories)
 
#VGG19 model
vgg19_model = vgg_19.build_vgg19_model(image_input_shape, num_classes, dropout, weight_decay)
adam = optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, decay=1e-6)
vgg19_model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['acc'])
 
tb_cb = TensorBoard(log_dir=os.path.join(os.path.join(log_filepath, 'v199_anno'), 'model_vgg_19'))
 
mean = [103.939116.779123.68]
def prep_image(im):    
    # Convert to BGR
    im = im[:,:, ::-1]
    im[..., 0-= mean[0]
    im[..., 1-= mean[1]
    im[..., 2-= mean[2]
    return im
 
train_datagen = ImageDataGenerator(
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    preprocessing_function=prep_image,
    rescale=1./255)
train_generator = train_datagen.flow_from_directory(
        train_data_dir,
        target_size=image_input_shape[:-1],
        batch_size=batch_size,
        class_mode='categorical')
val_datagen = ImageDataGenerator(
    preprocessing_function=prep_image,
    rescale=1./255)
val_generator = train_datagen.flow_from_directory(
        val_data_dir,
        target_size=image_input_shape[:-1],
        batch_size=batch_size,
        shuffle=False,   # Important to set to False in order to print falsely classified images
        class_mode='categorical')
 
vgg19_model.fit_generator(
    train_generator, epochs=epochs, 
    validation_data=val_generator,
    steps_per_epoch=steps_per_epoch, 
    callbacks=[tb_cb], 
    max_queue_size=100
)
 
#Save the code for further reuse
vgg19_model.save('model_vgg19_snapshot.h5')
 
#Analyze the result
v19_results = vgg19_model.predict_generator(val_generator)
v19_predicted = v19_results.argmax(axis=-1)
actual = val_generator.classes
key_to_label = {v: k for k, v in val_generator.class_indices.items()}
 
incorrect_indexes = np.nonzero(v19_predicted != actual)[0]
 
print('Total {0} incorrectly classified images out of {1}'.format(len(incorrect_indexes), len(v19_results)))
print('Accuracy: {0}'.format(accuracy_score(actual, v19_predicted)))
print('f1 score: {0}'.format(f1_score(actual, v19_predicted, average='weighted')))
 
#Plot incorrectly classified images
def plot_incorrect_images(predicted, actual):
    for i, (_actual, _predicted) in enumerate(zip(actual, predicted)):
        if not _actual == _predicted:
            image_file_name = val_generator.filenames[i]
            im = Image.open(os.path.join(val_data_dir, image_file_name))
            im.thumbnail((128128), Image.ANTIALIAS)
            display(im)
            print('Predicted: {0}\nActual   : {1}'.format(key_to_label[_predicted], key_to_label[_actual]))
plot_incorrect_images(v19_predicted, actual)
cs

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 우수 코드 게시판 이용 관련 공지사항 DataMarket 2014.05.21 49562
161 투빅스 11기&12기 2주차 로지스틱회귀(2) - 12기 김태한 12기김태한 2019.08.10 3082
160 투빅스 11기&12기 2주차 로지스틱회귀(1) - 12기 김태한 file 12기김태한 2019.08.10 2712
159 투빅스 11기&12기 1주차 알고리즘 - 이유진 file yooj_lee 2019.08.06 3065
158 투빅스 11기&12기 2주차 로지스틱회귀 - 12기 이홍정 file 올타임넘버원메시 2019.08.05 3159
157 투빅스 11기&12기 1주차 알고리즘 - 12기 조민호 file dizwe 2019.08.04 2850
156 투빅스 11기&12기 2주차 회귀분석 - 12기 김주호 file 김주호 2019.08.04 3018
155 투빅스 11기&12기 1주차 전처리&EDA - 12기 박재민 file jaemin0095 2019.07.28 3109
154 투빅스 11기&12기 1주차 전처리&EDA 과제 2 - 12기 이홍정 file 올타임넘버원메시 2019.07.28 3061
153 투빅스 11&12기 1주차 전처리와 EDA 과제1 - 12기 김태욱 Uk 2019.07.26 3118
» 투빅스 10기&11기 8주차 CNN 심화 [VGG 구현]- 11기 홍지은 file 오디빛 2019.03.27 3760
151 투빅스 10기&11기 8주차 CNN 심화 - 11기 정혜인 file 정혜인 2019.03.27 3389
150 투빅스 10기&11기 7주차 NLP - 11기 김유민 file 2019.03.21 3306
149 투빅스 10기&11기 7주차 Algorithm - 11기 한재연 file 한재연 2019.03.20 2964
148 투빅스 10기&11기 7주차 CNN (Alexnet) - 11기 심은선 file 심은선 2019.03.15 3220
147 투빅스 10기&11기 6주차 Advanced Neural Network - 11기 김대웅 file 김대웅 2019.03.12 3296
146 투빅스 10기&11기 5주차 Neural Network - 11기 김대웅 file 김대웅 2019.03.07 3282
145 투빅스 10기&11기 4주차 Algorithm - 10기 정윤호 UNOVATE 2019.03.04 3154
144 투빅스 10기&11기 4주차 ML Performance Tuning - 11기 김대웅 김대웅 2019.02.22 3349
143 투빅스 10기&11기 4주차 PCA - 11기 임채빈 임채빈 2019.02.22 3414
142 투빅스 10기&11기 3주차 Clustering - 11기 한재연 file 한재연 2019.02.16 3212
Board Pagination ‹ Prev 1 ... 2 3 4 5 6 7 8 9 10 ... 12 Next ›
/ 12

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5