from tensorflow.keras.layers import Input, Lambda, Dense, Flatten
from tensorflow.keras.models import Model
from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.applications import EfficientNetB0
from tensorflow.keras.applications import ResNet50
from tensorflow.keras.applications.resnet50 import preprocess_input
from tensorflow.keras.applications.inception_v3 import preprocess_input
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing import image
from tensorflow.keras.preprocessing.image import ImageDataGenerator,load_img
from tensorflow.keras.models import Sequential
import numpy as np
from glob import glob
필요한 라이브러리 임포트.
pytorch를 주로 사용했는데, 쿠다 환경과 등등의 문제로 제대로 모델이 돌아가지 않아서 텐서플로우로 대신했다.
ResNet= ResNet50(input_shape=IMAGE_SIZE + [3], weights='imagenet', include_top=False)
ResNet 모델을 불러오고 이미지를 넣어주는 코드를 작성합니다.
x = Flatten()(ResNet.output)
model.compile(
loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy']
)
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale = 1./255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True)
test_datagen = ImageDataGenerator(rescale = 1./255)
training_set = train_datagen.flow_from_directory(train_path,
target_size = (224, 224),
batch_size = 32,
class_mode = 'categorical')
test_set = test_datagen.flow_from_directory(valid_path,
target_size = (224, 224),
batch_size = 32,
class_mode = 'categorical')
model에 fit 해주며 학습 과정을 지켜봤는데요,
아직 gpu 환경이 구축되지 않아서 로컬 환경에서 학습 시간이 매우 많이 소요됩니다.
r = model.fit(
training_set,
validation_data=test_set,
epochs=10,
steps_per_epoch=len(training_set),
validation_steps=len(test_set),
callbacks=[cp_callback]
)
epochs를 50에서 10으로 줄였으나 학습 시간이 너무 오래걸려서 중간에 셀을 중지했다.
Epoch 2: saving model to /home/minyoungxi/project/output
1267/1267 [==============================] - 2529s 2s/step - loss: 0.8374 - accuracy: 0.6788 - val_loss: 8.1047 - val_accuracy: 0.3776
Epoch 4: saving model to /home/minyoungxi/project/output
1267/1267 [==============================] - 2524s 2s/step - loss: 0.6824 - accuracy: 0.7429 - val_loss: 1.6154 - val_accuracy: 0.5466
epch 4정도를 돌 때 val accuracy가 향상되어서 더 돌려보고 싶었지만 아직 못했다ㅠㅜ
반응형