我很好奇如何在 tf.keras 中设置 steps_per_epoch 适合在 tf.dataset 上进行训练?由于我需要示例数量来计算它,我想知道如何得到这个?
由于它是 tf.data 类型,您可以假设这更容易。如果我将steps_per_epoch设置为None,我会得到“未知”。
为什么使用 tf.data 让生活变得如此复杂?
前面的答案很好,但我想指出两点:
- 下面的代码可以工作,不再需要使用实验包。
import tensorflow as tf
dataset = tf.data.Dataset.range(42)
#Still prints 42
print(dataset.cardinality().numpy())
- 如果您使用
filter
谓词,基数可能返回值 -2,因此未知;如果您确实在数据集上使用过滤谓词,请确保您已以另一种方式计算了数据集的长度(例如,在应用之前,pandas 数据帧的长度).from_tensor_slices()
on it.
还有一个重要的点就是如何设置参数steps_per_epoch
and validation_steps
: steps_per_epoch == length_of_training_dataset // batch_size, validation_steps == length_of_validation_dataset // batch_size
完整的例子可以在这里找到:在Keras中构建数据时如何使用repeat()函数?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)