运行与以前相同的代码,但是我的训练集自动减少到仅2.5%(在Google Colab中进行训练)?

问题描述 投票:1回答:2

[以前,我实现了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])
tensorflow keras google-colaboratory training-data cnn
2个回答
1
投票

所以我想我找到了原因。这是培训期间显示的批次数。以我为例:2929(火车样本数)/ 32(批量大小)= 91.5(训练过程中现在显示的数字)。

为了进行测试,我将批次大小更改为8,然后得到366 /纪元。同样,总体训练时间保持不变,这表明训练样本的数量实际上与之前保持不变。


0
投票

您正在使用tensorflow v1或v2吗?

如果在导入张量流之前通过使用%tensorflow_version 1.x运行单元来切换到1.x,此问题是否仍然存在?

© www.soinside.com 2019 - 2024. All rights reserved.