TensorFlow 2冻结模型注意事项

冻结模型报错,可能是这个原因。

TensorFlow 2冻结模型注意事项
封面图片:Ashley Winkler

今天在尝试冻结一个TensorFlow模型时遇到错误:

ValueError: Input 0 of node embedding_model/resnet50v2/conv2_block1_preact_bn/AssignNewValue/AssignVariableOp was passed float from embedding_model/resnet50v2/conv2_block1_preact_bn/FusedBatchNormV3/ReadVariableOp/resource:0 incompatible with expected resource.

冻结模型的代码来自这里:

Save, Load and Inference From TensorFlow 2.x Frozen Graph
Hello Underworld.

模型本身是基于TensorFlow的 keras.app,所以模型出问题的可能性很小。多番尝试之后终于找到了问题所在。

keras模型可以自动判断训练与推演状态。但是我在模型推演命令中强制假如了 training=True 选项。导致冻结模型时,模型处于训练状态。

解决方案也很简单,将 training=False 即可。当然,你也可以在一开始就避免手动设置 training 参数。

转发至

微信扫一扫分享

WeChat QR Code

有AI相关的想法,但不知道怎么落地?

我是国冰,独立AI开发者。十多年技术一线——半导体显示、智慧城市到自动驾驶;现在一个人+AI,接AI落地项目,从梳理需求到系统落地,陪你走通。

微信聊聊 微信二维码 看我能做什么