Keras和签名

2024-10-02 12:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

在阅读this和{a2}时,我了解到对于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一起使用时,是否正在执行急切的代码?在

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


Tags: 方法函数代码selfnumpyisontf

热门问题