gpt4 book ai didi

python - Keras 和 AutoGraph

转载 作者:行者123 更新时间:2023-12-03 17:29:52 25 4
gpt4 key购买 nike

阅读thisthis answer我知道对于 TensorFlow-2.0 上的非动态模型,Keras 会使用 AutoGraph。但是现在编写一个回调来获取训练期间变量的历史记录,

class TrainHistory(tf.keras.callbacks.Callback):
def on_train_begin(self, logs={}):
self.vars = []

def on_batch_end(self, batch, logs={}):
self.vars.append([v.numpy() for v in self.model.variables])

我看到 .numpy()可以使用渴望张量的方法。我期待像 numpy() is only available when eager execution is enabled 这样的错误.将 Keras 与 TensorFlow-2.0 结合使用时,是否正在执行 Eager 代码?

Here有人提到,对于像卷积这样的计算密集型函数, tf.function 没有太大的加速。 - 装饰函数与热切代码相比,但从示例中显示的数字来看,我猜这种差异对于长时间的训练可能是有意义的。使用 GradientTape 在性能方面会更好吗?在用 tf.function 装饰的自定义训练函数上而不是 Keras 的 fit()方法?

最佳答案

如果您打算使用 @tf.function在外循环上,即“纪元”循环,它可能不会对您的模型有太大帮助。它只会使开发变得更加困难。更多的代码带来了复杂性。
但是,您必须绝对使用 tf.function自定义损失函数和其他每批次调用一个的函数。
而且,不,使用 GradientTape -d 自定义 tf.function可能不会胜过 keras 的拟合方法。多年来,它经过了彻底的测试和改进。
这是否回答了您的问题?

关于python - Keras 和 AutoGraph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56668702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com