【发布时间】:2021-08-03 10:19:33
【问题描述】:
我在一个包含 40 幅花朵图像的训练数据集上使用了以下代码,但 CNN 分类器无法对其进行分类。]
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Dense
from tensorflow.keras.preprocessing.image import ImageDataGenerator
model = Sequential()
model.add(Conv2D(16, (3, 3), input_shape = (32, 32, 3), activation = 'relu'))
model.add(MaxPooling2D(pool_size = (2, 2)))
model.add(Flatten())
model.add(Dense(units = 128, activation = 'relu'))
model.add(Dense(units = 4, activation = 'softmax'))
model.summary()
model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])
train_datagen = ImageDataGenerator(rescale = 1./255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True)
val_datagen = ImageDataGenerator(rescale = 1./255)
training_set =
train_datagen.flow_from_directory('C:\\Users\\vinay\\flowerclassification\\dataset\\train',
target_size = (32, 32),
batch_size = 8
)
val_set =
val_datagen.flow_from_directory('C:\\Users\\vinay\\flowerclassification\\dataset\\val',
target_size = (32, 32),
batch_size = 8)
model.fit(training_set,
steps_per_epoch = 10,
epochs = 25,
validation_data = val_set,
validation_steps = 4)
model_json = model.to_json()
with open("model.json", "w") as json_file:
json_file.write(model_json)
model.save_weights("model.h5")
print("Saved model to disk")
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1940: UserWarning: Model.fit_generator 已弃用,将在未来版本中删除。请使用支持生成器的Model.fit。
warnings.warn('Model.fit_generator 已弃用,'
ValueError Traceback(最近一次调用最后一次) 在 () ----> 1 model.fit_generator(training_set,steps_per_epoch = 10,epochs = 25,validation_data = val_set,validation_steps = 2)
7 帧 /usr/local/lib/python3.7/dist-packages/keras_preprocessing/image/iterator.py in getitem(self, idx) 55'但顺序' 56 '有长度 {length}'.format(idx=idx, ---> 57 长度=len(self))) 58 如果 self.seed 不是无: 59 np.random.seed(self.seed + self.total_batches_seen)
ValueError: 要求检索元素 0,但序列的长度为 0
在上一步中也会打印此消息: 找到属于 0 个类别的 0 个图像。 找到属于 0 个类别的 0 张图片。
【问题讨论】:
-
欢迎 Vinay Venugopal,请使用
python-traceback发布错误消息。欲了解更多信息,请查看here。由于我们没有输入数据,我们无法为您提供帮助。请提供信息,哪些变量在出错时具有哪些值。您可以启动调试会话或将它们打印在错误之前的行中。
标签: python tensorflow keras conv-neural-network