我曾经使用 Estimator API 使用 MultiWorkerMirroredStrategy 在集群上训练模型。在那里,将评估器添加到集群规范时,其唯一目的是对模型的中间检查点和最终检查点进行评估。
使用TF Keras API时,似乎不再是这种情况了?在我看来,现在所有工作人员也都在评估数据,而评估者也对模型进行了训练。
{"chief": ["task0:1000"],"worker": ["task1:2200","task2:2200","task3:2200"],"evaluator": ["task4:2201"]}
用于模型训练的伪代码如下
import tensorflow as tf
strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy()
EPOCHS = 5
with strategy.scope():
model = get_model()
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
train_ds,test_ds = build_data_set(mnist_data)
model.fit(x=train_ds,validation_data=test_ds,epochs=EPOCHS,verbose=2)
是否有人知道使用Keras API进行的分布式培训是否仍支持显式评估器,还是每个工作人员在每个时期之后仅评估其一部分?