小编Jos*_*osh的帖子

更正 pb 文件以将 Tensorflow 模型移动到 ML.NET

我有一个我构建的 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 时,起初它看起来是正确的,但我不认为它是:

在此处输入图片说明

有四个原因我认为这是不正确的。

  • 它与作为 h5 上传时的图表大不相同(在我看来是正确的)。
  • 正如您从前面看到的,我始终使用 1D 卷积,这表明它变为 2D(并且保持这种方式)。
  • 此文件大小为 128MB,而 TensorFlow 到 ML.NET 示例中的文件大小仅为 252KB。即使是Inception模型也只有 …

.net python nodes tensorflow ml.net

8
推荐指数
1
解决办法
1181
查看次数

标签 统计

.net ×1

ml.net ×1

nodes ×1

python ×1

tensorflow ×1