Python 凯拉斯和亲笔签名
雷丁和我都知道,对于TensorFlow-2.0上的非动力学模型,Keras会使用签名。但是现在写一个回调来获取变量在训练期间的历史记录Python 凯拉斯和亲笔签名,python,tensorflow,keras,tensorflow2.0,Python,Tensorflow,Keras,Tensorflow2.0,雷丁和我都知道,对于TensorFlow-2.0上的非动力学模型,Keras会使用签名。但是现在写一个回调来获取变量在训练期间的历史记录 class TrainHistory(tf.keras.callbacks.Callback): def on_train_begin(self, logs={}): self.vars = [] def on_batch_end(self, batch, logs={}): self.vars.append(
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()这样的错误,只有在启用“急切执行”时才可用
。在TensorFlow-2.0中使用Keras时,是否有人在执行渴望代码
有人提到,对于像卷积这样的计算密集型函数,与渴望的代码相比,
tf.function
-修饰函数的速度没有多大提高,但是从示例中显示的数字来看,我猜想这种差异对于长时间的训练可能是有意义的。在定制的训练函数上使用tf.function
而不是Keras的fit()
方法,使用GradientTape
是否会更好地提高性能?如果您打算在外循环,即“epoch”循环上使用@tf.function
,可能对您的模型没有多大好处。这只会使发展更加困难。更多的代码带来了复杂性
但是,您必须在自定义丢失函数和其他每批调用一个函数的函数上绝对使用tf.function
而且,不,使用GradientTape
-d customtf.function
可能不会比keras'fit方法更有效。经过多年的彻底测试和改进
这能回答你的问题吗