【发布时间】:2020-06-11 19:05:29
【问题描述】:
我想在运行 tf.distribute 策略时显示批量大小。我通过这样创建自定义 Keras 层来做到这一点:
class DebugLayer(tf.keras.layers.Layer):
def __init__(self):
super().__init__()
def build(self, input_shape):
pass
def call(self, inputs):
print_op = tf.print("******Shape is:", tf.shape(inputs) , name='shapey')
#print_op = tf.print("Debug output:", loss, y_true, y_true.shape)
with tf.control_dependencies([print_op]):
return tf.identity(inputs)
Q1:每个工人每批次的示例数
如果我与一名工人一起运行,它会给出 128 的批量大小,这是我在我的 tf.data 数据集流 .batch(128) 中设置的。
如果我与两个工人一起运行,每个工人输出 128。我想知道每个工人上运行了多少示例? 同时运行多少个示例?
Q2:正确的steps_per_epoch
在我的Model.fit() 调用中,我指定steps_per_epoch 并在我的数据流中有一个.repeat。如果我的训练集包含 1024 个样本,我有 2 个工人,并且我的 .batch 设置为 128,那么 steps_per_epoch 应该设置为一个 epoch?
【问题讨论】:
标签: tensorflow training-data tf.keras