5

TensorFlow 2.0 中似乎缺少 global_step。

我有几个对当前训练进度感兴趣的回调,我不确定我是否需要实现自己的计步器或依赖于 epochs 计数......

有什么更换的建议吗?

4

2 回答 2

3

现在最好声明我们自己的global_step = tf.Variable(1, name="global_step")并手动使用它。

查看文档,没有替代的替代品,tf.train.get_or_create_global_step文档中关于 a 的唯一部分是模块step的实验部分tf.summaryhttps ://www.tensorflow.org/versions/r2.0/api_docs/ python/tf/总结/实验

于 2019-03-26T18:32:44.463 回答
-1

使用 TensorFlow 2.3.1 及其 Keras API。

的实例tf.keras.optimizers.Optimizer继承一个iterations属性。实现表明这是一个计数器,在每个训练步骤后递增。在编译模型之前从优化器访问它。

import tensorflow as tf

tf.compat.v1.disable_eager_execution()  # see note

optimizer = tf.keras.optimizers.Adam()
training_step = optimizer.iterations

model = Model(inputs,outputs)
model.compile(
    loss=my_adaptive_loss_function(training_step),
    optimizer=optimizer)

注意:在我的设置中,我必须禁用急切执行才能使用此变量,否则我会收到以下信息TypeError。如果您的实现不如我的那么笨拙,您也许可以避免这种情况。

TypeError:正在传递函数构建代码之外的操作
一个“图形”张量。可以有图张量
通过包含
tf.init_scope 在您的函数构建代码中。
例如,以下函数将失败:
  @tf.function
  def has_init_scope():
    my_constant = tf.constant(1.)
    使用 tf.init_scope():
      添加 = my_constant * 2
图张量的名称为:pulse_features:0

在处理上述异常的过程中,又出现了一个异常:
于 2020-11-01T17:32:42.600 回答