在Tensorflow中训练模型后:
tensorflow 2.0 中会继续支持冻结图还是已弃用?我的意思是从saved_model 创建/优化冻结图的脚本和API。还有用于运行推理的 API。
假设将来会支持它,在 tensorflow 2.0 中对冻结图运行推理的推荐方法是什么?
我正在使用 Tensorflow 2.0 并希望将以下 Keras 模型存储为冻结图。
import tensorflow as tf
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(64, input_shape=[100]))
model.add(tf.keras.layers.Dense(32, activation='relu'))
model.add(tf.keras.layers.Dense(16, activation='relu'))
model.add(tf.keras.layers.Dense(2, activation='softmax'))
model.summary()
model.save('./models/')
Run Code Online (Sandbox Code Playgroud)
我在 Tensorflow 2.0 中找不到任何好的例子来做到这一点。我在 Tensorflow Github 存储库中找到了freeze_graph.py文件,但发现我很难理解它。
我使用以下方法加载上述文件:
from tensorflow.python.tools.freeze_graph import freeze_graph
Run Code Online (Sandbox Code Playgroud)
但是我到底需要为freeze_graph函数本身提供什么?在这里,我用问号标记了我不确定的论点。
freeze_graph(input_graph=?,
input_saver='',
input_binary=False,
input_checkpoint=?,
output_node_names=?,
restore_op_name='',
filename_tensor_name='',
output_graph='./frozen_graph.pb',
clear_devices=True,
initializer_nodes='')
Run Code Online (Sandbox Code Playgroud)
有人可以提供一个简单的示例来说明如何使用该freeeze_graph函数将上面的模型存储为冻结图吗?
我有一个用 Keras 用 Python 实现的神经网络。一旦我训练了它,我就导出了模型,我得到了两个文件:model.js 和 model.h5。现在我想在 .NET 项目中实时分类,我想使用经过训练的神经网络。
在 ML.NET 中有没有办法将模型和用 python 导出的训练权重加载到模型对象中?
我在文档 [1] 中看到可以加载以前保存的模型,但显然存储在 .zip 中,我找不到格式(也许制作一个脚本,从 python 中获取模型并“翻译”它到 ML.NET 模型。
显然 hdf5 格式是标准 [2],有没有办法用 ML.NET 加载它?
[1] https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/sumption-model-ml-net
[2] https://support.hdfgroup.org/HDF5/doc1.6/UG/10_Datasets.html