close_btn
조회 수 1907 추천 수 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 44607
166 투빅스 11기&12기 4주차 Decision Tree - 12기 김탁영 file 2019.08.17 1220
165 투빅스 11기&12기 3주차 알고리즘 - 12기 김효은 file 김효은 2019.08.16 1436
164 투빅스 11기&12기 2주차 로지스틱 회귀(2) - 12기 조민호 file dizwe 2019.08.14 1247
163 투빅스 11기&12기 3주차 알고리즘 - 11기 이도연 file 도연 2019.08.14 1182
162 투빅스 11기&12기 3주차 KNN - 12기 김주호 file 김주호 2019.08.14 1138
161 투빅스 11기&12기 2주차 로지스틱회귀(2) - 12기 김태한 12기김태한 2019.08.10 1342
160 투빅스 11기&12기 2주차 로지스틱회귀(1) - 12기 김태한 file 12기김태한 2019.08.10 1293
159 투빅스 11기&12기 1주차 알고리즘 - 이유진 file yooj_lee 2019.08.06 1313
158 투빅스 11기&12기 2주차 로지스틱회귀 - 12기 이홍정 file 올타임넘버원메시 2019.08.05 1344
157 투빅스 11기&12기 1주차 알고리즘 - 12기 조민호 file dizwe 2019.08.04 1262
156 투빅스 11기&12기 2주차 회귀분석 - 12기 김주호 file 김주호 2019.08.04 1405
155 투빅스 11기&12기 1주차 전처리&EDA - 12기 박재민 file jaemin0095 2019.07.28 1337
154 투빅스 11기&12기 1주차 전처리&EDA 과제 2 - 12기 이홍정 file 올타임넘버원메시 2019.07.28 1331
153 투빅스 11&12기 1주차 전처리와 EDA 과제1 - 12기 김태욱 Uk 2019.07.26 1391
» 투빅스 10기&11기 8주차 CNN 심화 [VGG 구현]- 11기 홍지은 file 오디빛 2019.03.27 1907
151 투빅스 10기&11기 8주차 CNN 심화 - 11기 정혜인 file 정혜인 2019.03.27 1873
150 투빅스 10기&11기 7주차 NLP - 11기 김유민 file 2019.03.21 1831
149 투빅스 10기&11기 7주차 Algorithm - 11기 한재연 file 한재연 2019.03.20 1610
148 투빅스 10기&11기 7주차 CNN (Alexnet) - 11기 심은선 file 심은선 2019.03.15 1746
147 투빅스 10기&11기 6주차 Advanced Neural Network - 11기 김대웅 file 김대웅 2019.03.12 1575
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 ... 10 Next ›
/ 10

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5