Tensorflow中的.trainable和训练参数有什么区别

ski*_*ybb 1 tensorflow tensorflow2.0

model.trainable=False和 和有什么区别model(..,training=False)?一般来说,何时使用其中一种而不是另一种,何时在模型中同时使用它们?

小智 6

trainable是张量的属性,指示优化器在训练期间是否可以更新该张量。

training是一个标志,用于通知被调用的层/模型在训练期间进行了前向调用。这是必要的,因为某些层在训练和推理过程中表现不同,并且该标志用于其__call__()方法内的某些切换逻辑。一个值得注意的例子是批量归一化 层。

您完全可以拥有一个没有trainable权重的层,但其行为会有所不同,具体取决于它是否在 期间被调用training

  • 事实上,最后一段的一个很好的例子就是 dropout。没有参数,但行为不同。 (2认同)