gpt4 book ai didi

python - Model.fit_generator 抛出运行时错误 :

转载 作者:行者123 更新时间:2023-12-01 07:53:37 27 4
gpt4 key购买 nike

使用 Keras 训练 CNN,即使我做了 model.compile,keras。 fit_generator 抛出一个运行时错误,提示在使用 fit 之前先编译我的模型。

Error: 
Using TensorFlow backend.
WARNING:tensorflow:From C:\Users\..\Desktop\venvpy36\lib\site-packages\tensorflow\python\framework\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
Found 468 images belonging to 2 classes.
Found 86 images belonging to 2 classes.
Traceback (most recent call last):
File "C:/Users/../Desktop/miscfiles/template_classifier_cnn.py", line 75, in <module>
model.fit_generator(train_generator)
File "C:\Users\..\Desktop\venvpy36\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "C:\Users\..\Desktop\venvpy36\lib\site-packages\keras\engine\training.py", line 1418, in fit_generator
initial_epoch=initial_epoch)
File "C:\Users\..\Desktop\venvpy36\lib\site-packages\keras\engine\training_generator.py", line 40, in fit_generator
model._make_train_function()
File "C:\Users\..\Desktop\venvpy36\lib\site-packages\keras\engine\training.py", line 496, in _make_train_function
raise RuntimeError('You must compile your model before using it.')
RuntimeError: You must compile your model before using it.

尝试了不同的优化器,损失。尝试构建没有功能的模型。

from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Conv2D, MaxPooling2D,BatchNormalization
from keras.optimizers import Adam

import numpy as np
np.random.seed(1000)


train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=False
)


test_datagen = ImageDataGenerator(rescale=1./255)

def build_model():
model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same'))
model.add(Activation('relu'))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(BatchNormalization())
model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Activation('relu'))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(2))
model.add(Activation('softmax'))


model.compile(loss='categorical_crossentropy',
optimizer=Adam(0.001),
metrics=['accuracy'])
return model

model = build_model()


train_generator = train_datagen.flow_from_directory(
'data/images/template/cnn_train',
target_size=(256,256),
batch_size=32,
class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
'data/images/template/cnn_validate',
target_size=(256,256),
batch_size=32,
class_mode='binary')
#model.summary()

model.fit_generator(train_generator)

最佳答案

你必须为你的模型分配输入形状,我认为这就是它所缺少的。因为在您的 Sequential() 模型中您尚未分配输入。

在您的代码中 model.add(Conv2D(32, (3, 3), padding='same')),对于第一层,您必须分配 input_shape.

关于python - Model.fit_generator 抛出运行时错误 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075717/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com