【问题标题】:Trained tensorflow model used in .NET framework.NET 框架中使用的经过训练的 tensorflow 模型
【发布时间】:2020-11-04 07:45:55
【问题描述】:

我使用 Google Colab 构建了一个使用 Tensorflow 的一维卷积神经网络 (CNN) 模型(它是一个多类、多标签模型)。我现在想采用保存的模型(例如 pb 文件)并使用 C#(Visual Studio)在 .NET Framework 内进行预测。因此,我想在 .NET Framework 中执行以下操作(这显然是非常精简的):

import tensorflow as tf
import numpy as np
import tensorflow_hub as hub

model = tf.keras.models.load_model('pb_model')

model.predict(data)

我还没有看到 Tensorflow 1-D CNN 模型的简单解决方案(只需将 Tensorflow 库加载到 .NET Framework 中。

我看过 ML.NET,他们使用 Tensorflow 图像分类模型的迁移学习来开始他们的学习 link

我最近在 GitHub link 上遇到了 Tensorflow.NET。这似乎是最好的途径,因为他们旨在为 .NET 开发人员在 C# 中实现 Tensorflow。但是,这会构建一个模型,然后在 .NET 框架内对其进行全部测试;因此它没有解决如何从 python 中获取经过训练的一维 CNN 模型并在 .NET 框架中进行预测。

有没有人遇到过类似的问题,你做了什么(或者你有什么建议)?

【问题讨论】:

    标签: python c# .net visual-studio tensorflow


    【解决方案1】:

    您可以使用 LostTech.TensorFlow aka Gradient 从 C# 调用几乎任何 TensorFlow API。

    using tensorflow;
    
    var model = tf.keras.models.load_model("pb_model");
    model.predict(data);
    

    更多示例here

    免责声明:我是作者之一。

    【讨论】:

    • 我很喜欢你的解决方案;但是,这将被推送到存储容量有限的设备上。因此,对于使用 TF 和 Python 作为依赖项的要求,我认为这太过分了。
    • 哦,那我看错了你的问题。 ML.NET 支持 ONNX 模型,因此一种选择是转换为 ONNX。见stackoverflow.com/questions/54214470/…
    猜你喜欢
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多