Skip to content

tengge1/learn-tensorflow-sharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TensorflowSharp教程

Tensorflow是一个人工智能框架。TensorflowSharp是对Tensorflow C语言版接口的封装,便于.net开发人员在项目中使用Tensorflow。

目录

01 HelloWorld:TensorflowSharp入门。

02 UsePlaceholder:占位符的使用。

03 UseVariable:变量的使用。

04 InitVariable:变量的初始化。

05 UseMatrix:矩阵相加、数乘、矩阵相乘。

p06_LinearRegression:线性回归。

p07_MNIST:手写数字识别。

p08_UseTensor:张量的使用。

p09_GenerateData:产生序列、正态分布随机数和随机位置。

p10_CalculateGradient:计算倾斜度(偏导数)。

p11_ReduceMethod:ReduceMean、ReduceSum计算原理和方法。

p12_ClipMatrix:裁剪矩阵(限制矩阵的最小、最大值)。

p13_BitwiseOperation:按位与、按位或、按位异或运算。

p14_UseStack:使用堆栈。

p15_PartialRun:部分运行。

p16_ModelSave:保存模型。(未实现)

p17_TFCoreTest:TFCore测试。

p18_TFBufferTest:TFBuffer测试。

p19_TFDataTypeTest:TFDataType测试。

p20_ComparisonOperators:比较运算符。

p22_ConditionalOperators:条件运算符。

示例

TensorflowSharp的用法还是很简单的

// 创建图
var g = new TFGraph();

// 定义常量
var a = g.Const(2);
var b = g.Const(3);

// 加法和乘法运算
var add = g.Add(a, b);
var mul = g.Mul(a, b);

// 创建会话
var sess = new TFSession(g);

// 计算加法
var result1 = sess.GetRunner().Run(add).GetValue();
Console.WriteLine("a+b={0}", result1);

// 计算乘法
var result2 = sess.GetRunner().Run(mul).GetValue();
Console.WriteLine("a*b={0}", result2);

// 关闭会话
sess.CloseSession();

执行后输出结果

a+b=5
a*b=6

注意事项

  1. 国内目前无法访问Tensorflow官网,但是可以访问谷歌提供的Tensorflow官网镜像

  2. 国内使用NuGet安装TensorflowSharp很容易失败,可以直接从Nuget官网下载,然后改后缀名zip,解压后手工安装。

  3. TensorflowSharp项目使用的.net版本必须高于4.6.1,本教程使用的版本是4.7.0,可以在属性选项卡中设置。

  4. TensorflowSharp项目必须使用64位CPU,需要在属性选项卡生成中,去掉首选32位的勾选

  5. 本教程需要在根目录新建Libs文件夹,请将第二步解压出来的TensorFlowSharp.dll放在该文件夹;另外运行示例还需要把libtensorflow.dll复制到每个项目的bin/Debug目录。如果提示找不到Tensorflow命名空间,请重新添加引用。

  6. 最新版libtensorflow.dll下载:http://ci.tensorflow.org/view/Nightly/job/nightly-libtensorflow-windows/lastSuccessfulBuild/artifact/lib_package/libtensorflow-cpu-windows-x86_64.zip

网站

Releases

No releases published

Packages

No packages published

Languages