我注意到,即使在用.compile(..., run_eagerly=False)
编译模型后,.call()
中的打印语句仍在工作。这是否意味着.call()
需要手动包装在tf.function
中?
run_eagerly
在compile()
中影响tf.keras.Model.run_eagerly
的属性,但在call()
中不使用。因为,call()
在tf.keras中是NotImplemented
。模型,其用于自定义训练模式,不用于"complete () fit()";编码模式。中可以找到tf.function
包装逻辑tf.keras.Model。make_train_function,由fit()
自动封装train_step()
等,它们是比call()
更高层次的逻辑。