今まで学習させる際に正常に動いていたのですが、突然jupyternotebookが開かなくなり、
anacondaをUninstallさせもう一度installさせました。
すると学習させる際にepochを200回ほど回したところ、今まで見たことのない下記のようなエラーが出てしまいました。
****history=model.fit_generator(train_generator, epochs=200, verbose=1, validation_data=validation_generator, callbacks=[CSVLogger(file_name+'.csv')])**** ValueError Traceback (most recent call last) <ipython-input-40-f664710fb43a> in <module>() 3 verbose=1, 4 validation_data=validation_generator, ----> 5 callbacks=[CSVLogger(file_name+'.csv')]) ~\Anaconda3\lib\site-packages\keras\legacy\interfaces.py in wrapper(*args, **kwargs) 89 warnings.warn('Update your `' + object_name + '` call to the ' + 90 'Keras 2 API: ' + signature, stacklevel=2) ---> 91 return func(*args, **kwargs) 92 wrapper._original_function = func 93 return wrapper ~\Anaconda3\lib\site-packages\keras\engine\training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch) 1416 use_multiprocessing=use_multiprocessing, 1417 shuffle=shuffle, -> 1418 initial_epoch=initial_epoch) 1419 1420 @interfaces.legacy_generator_methods_support ~\Anaconda3\lib\site-packages\keras\engine\training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch) 53 steps_per_epoch = len(generator) 54 else: ---> 55 raise ValueError('`steps_per_epoch=None` is only valid for a' 56 ' generator based on the ' 57 '`keras.utils.Sequence`' ValueError: `steps_per_epoch=None` is only valid for a generator based on the `keras.utils.Sequence` class. Please specify `steps_per_epoch` or use the `keras.utils.Sequence` class.
keras.utils.Sequenceというものが原因だと思われるのですが、解決方法がわかりません
何か足りないのか、コードを付け加えた方がいいのか何か解決する方法があれば教えてください。
よろしくお願いします。
バージョンは
python3.6.5
tensorflow 1.12.0
keras 2.2.4
念の為途中過程も載せておきます
from keras.models import Model from keras.layers import Dense, GlobalAveragePooling2D,Input,Dropout from keras.applications.vgg16 import VGG16 from keras.preprocessing.image import ImageDataGenerator from keras.optimizers import SGD from keras.callbacks import CSVLogger n_categories=2 batch_size=32 train_dir='RoadDamageDataset/train' validation_dir='RoadDamageDataset/validation' file_name='vgg16_RoadDamageDataset_fine' base_model=VGG16(weights='imagenet',include_top=False, input_tensor=Input(shape=(224,224,3))) x=base_model.output x=GlobalAveragePooling2D()(x) x=Dense(1024,activation='relu')(x) x=Dropout(0.5)(x) prediction=Dense(n_categories,activation='softmax')(x) model=Model(inputs=base_model.input,outputs=prediction) for layer in base_model.layers[:15]: layer.trainable=False model.compile(optimizer=SGD(lr=0.0001,momentum=0.9), loss='categorical_crossentropy', metrics=['accuracy']) model.summary() json_string=model.to_json() open(file_name+'.json','w').write(json_string) train_datagen=ImageDataGenerator( rescale=1.0/255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) validation_datagen=ImageDataGenerator(rescale=1.0/255) train_generator=train_datagen.flow_from_directory( train_dir, target_size=(224,224), batch_size=batch_size, class_mode='categorical', shuffle=True ) validation_generator=validation_datagen.flow_from_directory( validation_dir, target_size=(224,224), batch_size=batch_size, class_mode='categorical', shuffle=True ) history=model.fit_generator(train_generator, epochs=200, verbose=1, validation_data=validation_generator, callbacks=[CSVLogger(file_name+'.csv')])
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。