我正在 gcloud ai 平台上分布式训练 tensorflow==2.7.0 模型。
我正在使用ParameterServerStrategy
策略,有多个工人。
我感到困惑且找不到答案的一件事是如何正确设置每个工人在一个时期内运行的步数。
考虑代码片段:
def dataset_fn(input_context):
...
data_input = tf.keras.utils.experimental.DatasetCreator(dataset_fn=dataset_fn)
model.fit(
data_input,
epochs=...,
steps_per_epoch=...)
是steps_per_epoch
:
- 每个工人运行的步数
或者
- 主人为工人分派执行步骤的次数?
假设数据集大小为1,000,000
, 和batch_size=100
, 并且有10
工人。在一个时代,我想处理数据集中的每个实例一次,然后
我应该设置steps_per_epoch=1,000,000 / 100 = 10,000
还是应该设置它steps_per_epoch=1,000,000 / 100 / 10 = 1,000
?