复杂模型的建立,可以是Model类型里面嵌套Model类型的Layer type,比如:

这就会导致层次结构很深。当想要设置深层的权重是否可训练的时候,不要以为把最内层的layer.trainable=True即可了,这还是不够的,因为TensorFlow2 的层次结构的trainable状态是独立的,外层的状态不会因为你对内层的状态改变而自动调整。
正确的做法是把外层外层model(layer)设置为 layer.trainable=True,这时它所有的内层都自动变为trainable=True,把不需要train的内层设置为trainable=False.
TensorFlow2 关于设置变量是否trainable的难懂点
最新推荐文章于 2023-07-04 14:33:45 发布
在TensorFlow2中,建立复杂的模型可能会包含嵌套的Model类型。设置模型权重的训练状态时,需要注意trainable属性的层级独立性。仅改变内层layer.trainable=True并不足够,因为外层模型的状态不会自动更新。正确做法是将外层model设置为trainable=True,然后针对不需要训练的内层设置trainable=False,以确保模型训练的正确配置。
2万+

被折叠的 条评论
为什么被折叠?



