本文介绍TensorFlow.NET基本开发环境。
项目开发环境为Visual Studio 2019 + .Net 5
创建新项目后首先通过Nuget引入相关包:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuUjMwgjN1EzMwITLzgTOyIjNzETMxETMxEjMwITLzkzM4EzLcFTMxIDMy8CXzkzM4EzLcd2bsJ2Lc12bj5ycn9Gbi52YuAjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
SciSharp.TensorFlow.Redist是Google提供的TensorFlow开发库,是采用C语言开发的动态链接库(DLL);
TensorFlow.NET采用C#语言对C语言的库进行封装,提供.NET调用接口;
TensorFlow.Keras是一个高级工具类,对建模和训练过程进行封装,提供简便接口。
通过下列语句对库进行引用:
using Tensorflow;
using Tensorflow.NumPy;
using static Tensorflow.Binding;
using static Tensorflow.KerasApi;
下面展示一些TensorFlow.NET的基本类型操作:
上述代码基本都比较简单,基本一看就能懂,有几处需要解释一下:
1、平常我们在生成随机数时,一般都是平均分布,但机器学习的数据更多趋向正态分布,所以采用normal生成随机数,mean表示中心点,stddev表示分布范围;
2、从表面看tf的框架似乎提供了一套可以进行矩阵运算的Math库,但实际并非如此,tf框架的核心是可以计算运算的梯度,这个问题我们后面再讲;
3、tf有两个版本,V1版和V2版本,如果要使用V1版本语法,需要在代码之前加一句:tf.compat.v1.disable_eager_execution();
相对的,V2版本为:tf.enable_eager_execution();由于默认为V2版本,所以这行代码可以省略不写。
本系列的所有代码均采用V2版本。官方提供的样例里有大量V1版本代码,有一些V2版没有提供的功能,可能不得不采用V1版代码实现。
【参考资料】
TensorFlow教程:TensorFlow快速入门教程
【项目源码】
Git: https://gitee.com/seabluescn/tf_not.git
项目名称:SayHello
目录:TensorFlow.NET机器学习入门系列目录
签名区:
如果您觉得这篇博客对您有帮助或启发,请点击右侧【推荐】支持,谢谢!