###問題点
kerasによる画像認識を拝見し,実際にソース,使用した画像をそのまま流用して実行しました.
しかし,1エポックが終了する時になっても次のエポックに移行ない問題が発生しました.
CPUなどを見ても動作してるようには思えるのですが一向に移行しません.
考えられる問題などは何がありますか?
###該当のソースコード
Python
1from keras.applications.inception_v3 import InceptionV3 2from keras.applications.inception_v3 import preprocess_input 3from keras.models import Sequential, Model 4from keras.layers import Dense, Dropout, Activation, Flatten 5from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D, GlobalAveragePooling2D, AveragePooling2D 6from keras.preprocessing.image import ImageDataGenerator 7from keras.callbacks import ModelCheckpoint, CSVLogger, LearningRateScheduler, ReduceLROnPlateau 8from keras.optimizers import SGD 9from keras.regularizers import l2 10import matplotlib.image as mpimg 11from scipy.misc import imresize 12import numpy as np 13import keras.backend as K 14import math 15 16K.clear_session() 17img_size=299 18#訓練データ拡張 19train_datagen = ImageDataGenerator( 20 featurewise_center=False, 21 samplewise_center=False, 22 featurewise_std_normalization=False, 23 samplewise_std_normalization=False, 24 rotation_range=10, 25 width_shift_range=0.2, 26 height_shift_range=0.2, 27 horizontal_flip=True, 28 vertical_flip=False, 29 zoom_range=[.8, 1], 30 channel_shift_range=30, 31 fill_mode='reflect') 32 33test_datagen = ImageDataGenerator() 34 35#画像の読み込み 36def load_images(root,nb_img): 37 all_imgs = [] 38 all_classes = [] 39 40 for i in range(nb_img): 41 img_name = "%s/dog.%d.jpg" % (root, i + 1) 42 img_arr = mpimg.imread(img_name) 43 resize_img_ar = imresize(img_arr, (img_size, img_size)) 44 all_imgs.append(resize_img_ar) 45 all_classes.append(0) 46 for i in range(nb_img): 47 img_name = "%s/cat.%d.jpg" % (root, i + 1) 48 img_arr = mpimg.imread(img_name) 49 resize_img_ar = imresize(img_arr, (img_size, img_size)) 50 all_imgs.append(resize_img_ar) 51 all_classes.append(1) 52 return np.array(all_imgs), np.array(all_classes) 53 54X_train, y_train = load_images('./train', 1000) 55X_test, y_test = load_images('./train', 400) 56train_generator = train_datagen.flow(X_train, y_train, batch_size=64, seed = 13) 57test_generator = test_datagen.flow(X_test, y_test, batch_size=64, seed = 13) 58 59#Inception v3モデルの読み込み。最終層は読み込まない 60base_model = InceptionV3(weights='imagenet', include_top=False) 61#最終層の設定 62x = base_model.output 63x = GlobalAveragePooling2D()(x) 64predictions = Dense(1, kernel_initializer="glorot_uniform", activation="sigmoid", kernel_regularizer=l2(.0005))(x) 65 66model = Model(inputs=base_model.input, outputs=predictions) 67 68#base_modelはweightsを更新しない 69for layer in base_model.layers: 70 layer.trainable = False 71 72opt = SGD(lr=.01, momentum=.9) 73model.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy']) 74 75checkpointer = ModelCheckpoint(filepath='model.{epoch:02d}-{val_loss:.2f}.hdf5', verbose=1, save_best_only=True) 76csv_logger = CSVLogger('model.log') 77 78reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2, 79 patience=5, min_lr=0.001) 80 81history = model.fit_generator(train_generator, 82 steps_per_epoch=2000, 83 epochs=10, 84 validation_data=test_generator, 85 validation_steps=800, 86 verbose=1, 87 callbacks=[reduce_lr, csv_logger, checkpointer])
###追記
1エポックが終了する時と判断したのは,次のように出力された状態で止まるためです(適当にstep減らしてます).
ここから一向に処理が進まないにも関わらず(1エポック終了時に作成するhdf5ファイルなども作成されない),CPUなどはしっかり動いています.
Epoch 1/2 1/5 [=====>........................] - ETA: 264s - loss: 0.7831 - acc: 0.6094 2/5 [===========>..................] - ETA: 154s - loss: 0.7622 - acc: 0.5859 3/5 [=================>............] - ETA: 85s - loss: 0.7396 - acc: 0.5729 4/5 [=======================>......] - ETA: 38s - loss: 0.7270 - acc: 0.5703

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。