在阅读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()
方法,是否会有更好的性能?在
目前没有回答
相关问题 更多 >
编程相关推荐