测试环境
visual studio 2017
window10 64位
测试步骤如下:
1 新建.net framework控制台项目,工程名称为TensorFlowNetDemo,.net framework的版本选4.7.2,如下图:
2 分别安装TensorFlow.NET包(先装)和SciSharp.TensorFlow.Redist(后装),它们之间版本兼容性不好,最好安装的版本与我的保持一致,不然报错到你怀疑人生。
2.1 在包管理器中搜素并安装TensorFlow.NET,这里的版本我选最新版本0.110.4,不然好多新功能都无法使用。如下图:
2.2 在包管理器中搜素并安装SciSharp.TensorFlow.Redist,这里我选择的版本为2.11.4,如下图:
3 项目数字的目标平台选x64,如下图:
4 在主程序编写代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Tensorflow.Binding;
using Tensorflow;
namespace TensorFlowNetDemo
{
class Program
{
static void Main(string[] args)
{
var str = "Hello,TensorFlow.NET";
//创建常量
var hello = tf.constant(str);
Console.WriteLine("输出结果为:"+hello.numpy());
Console.Read();
}
}
}
运行结果如下:
可能会出现的错误:
1 未处理的异常:System.TypeInitializationException:Tensorflow.Binding的类型初始值定项引发异常。
DLLNotFoundException:无法加载DLL"tensorflow":找不到只当的模块。(异常来自HRESULT:0x8007007E)
解决方案如下:
手动复制"tensorflow.dll"文件到Debug目录下,tensorflow.dll文件在 工程目录\packages\SciSharp.TensorFlow.Redist.2.11.4\runtimes\win-x64\native目录下,如下图:
2 在tf.constanct(str)报未能将对象引用到实例,应该是TensorFlow.NET包的版本不对,应该多尝试TensorFlow.NET的版本,直到不报错为止