[以前,我实现了2个CNN模型(Resnet50v2和inceptionResNetv2),其数据集包含3662个图像。在培训和验证期间,两者在Google colab中均能正常工作。现在,我再次重新运行完全相同的代码,并且每个时期的训练样本本身减少到每个时期只有92个样本(之前是2929 /个时期)。两种型号使用的是单独的笔记本电脑,它们现在都像这样。
我以为可能是由于有限的RAM(Google colab的1个月后,它似乎减少了一半),所以我升级到了具有25 G RAM的Colab pro。它不能解决问题。
有人遇到过同样的问题吗?任何人都可以提供线索,可能是什么原因以及解决该问题的解决方案?非常感谢!
这里的工作流末尾的一些代码(以前工作得很好):
model = tf.keras.applications.InceptionResNetV2(
include_top=True, weights=None, input_tensor=None, input_shape=None,
pooling=None, classes=5)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(X, y_orig, epochs = 20, batch_size = 32, validation_split = 0.2, callbacks=[tensorboard_callback])
所以我想我找到了原因。这是培训期间显示的批次数。以我为例:2929(火车样本数)/ 32(批量大小)= 91.5(训练过程中现在显示的数字)。
为了进行测试,我将批次大小更改为8,然后得到366 /纪元。同样,总体训练时间保持不变,这表明训练样本的数量实际上与之前保持不变。
您正在使用tensorflow v1或v2吗?
如果在导入张量流之前通过使用%tensorflow_version 1.x
运行单元来切换到1.x,此问题是否仍然存在?