我有一个我构建的 TensorFlow 模型(一个 1D CNN),我现在想将其实现到 .NET 中。
为此,我需要知道输入和输出节点。
当我将模型上传到Netron 时,根据我的保存方法,我得到了一个不同的图表,唯一看起来正确的图表来自 h5 上传。这是model.summary()
:
如果我将模型保存为 h5model.save("Mn_pb_model.h5")
并将其加载到 Netron 中以绘制图形,一切看起来都是正确的:
但是,ML.NET 不接受 h5 格式,因此需要将其保存为 pb。
在查看在 ML.NET 中采用 TensorFlow 的示例时,该示例显示了一个 TensorFlow 模型,该模型以与SavedModel格式类似的格式保存- 由 TensorFlow 推荐(同时也是 ML.NET在此处推荐的“下载未冻结的 [SavedModel 格式] ……”)。但是,当将 pb 文件保存并加载到 Netron 时,我得到了这个:
再放大一点(在最右边),
正如你所看到的,它看起来不像它应该的那样。
此外,输入节点和输出节点不正确,因此它不适用于 ML.NET(我认为有些问题)。
我使用TensorFlow推荐的方法来确定输入/输出节点:
当我尝试获取冻结图并将其加载到 Netron 时,起初它看起来是正确的,但我不认为它是:
有四个原因我认为这是不正确的。