Ale*_*dro 3 conv-neural-network tensorflow google-colaboratory
我正在尝试运行(训练)我的CNNat Google Colab Pro,当我运行我的代码时,一切都很好,但它不知道步骤数,因此创建了一个无限循环。
Mounted at /content/drive
2.2.0-rc3
Found 10018 images belonging to 2 classes.
Found 1336 images belonging to 2 classes.
WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.
Epoch 1/300
8/Unknown - 364s 45s/step - loss: 54.9278 - accuracy: 0.5410
Run Code Online (Sandbox Code Playgroud)
我用于ImageDataGenerator()加载图像。我该如何修复它?
迭代器不存储任何内容,它动态生成数据。当您使用数据集或数据集迭代器时,必须提供steps_per_epoch. 迭代器的长度在迭代之前是未知的。您可以显式传递len(datafiles)给该.fit函数。因此,您需要提供steps_per_epoch,如下所示。
model.fit_generator(
train_data_gen,
steps_per_epoch=total_train // batch_size,
epochs=epochs,
validation_data=val_data_gen,
validation_steps=total_val // batch_size
)
Run Code Online (Sandbox Code Playgroud)
这里提到了更多细节
steps_per_epoch:整数或无。声明一个 epoch 结束并开始下一个 epoch 之前的步骤总数(样本批次)。使用 TensorFlow 数据张量等输入张量进行训练时,默认 None 等于数据集中的样本数除以批量大小,如果无法确定则为 1。如果 x 是 tf.data 数据集,并且 'steps_per_epoch' 为 None,则纪元将运行直到输入数据集耗尽。数组输入不支持此参数。
我注意到您正在使用二元分类。使用时要记住的另一件事ImageDataGenerator是提供class_mode如下所示的内容。否则,将会出现错误(在 keras 中)或 50% 的准确率(在 tf.keras 中)。
train_data_gen = train_image_generator.flow_from_directory(batch_size=batch_size,
directory=train_dir,
shuffle=True,
target_size=(IMG_HEIGHT, IMG_WIDTH),class_mode='binary') #
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |