详情页设计费,优化服务内容,长春有微信网站一起整的吗,广告做图网站环境搭建参考#xff1a;
深度学习框架TensorFlow.NET环境搭建1#xff08;C##xff09;-CSDN博客 由于本文作者水平有限#xff0c;如有写得不对的地方#xff0c;往指出
声明变量#xff1a;tf.Variable
声明常量#xff1a;tf.constant 下面通过代码的方式进行学…环境搭建参考
深度学习框架TensorFlow.NET环境搭建1C#-CSDN博客 由于本文作者水平有限如有写得不对的地方往指出
声明变量tf.Variable
声明常量tf.constant 下面通过代码的方式进行学习 一 数据类型学习
1.1 数据类型输出及运算(包括变量及常量的声明及操作) 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){ResourceVariable intVar tf.Variableint(10, name: int变量);ResourceVariable floatVar tf.Variablefloat(1.2f, name: float变量);//字符串的值不能出现中文不然会报错ResourceVariable strVar tf.Variablestring(Hello World, name: 字符串变量);ResourceVariable boolVar tf.Variablebool(false, name: bool变量);Tensor number1 tf.constant(2,name:常量2名称);Tensor number2 tf.constant(3,name:常量2名称);Tensor addResult tf.add(number1, number2);Tensor addResult2 tf.add(intVar, number1);Tensor addResult3 tf.add(intVar.numpy(), number1); //int类型和int类型相加正常//Tensor addResult4 tf.add(floatVar, number1); float类型和int类型相加会报错Console.WriteLine(intVar数值为: intVar.numpy() 变量名为:intVar.Name);Console.WriteLine(floatVar数值为: floatVar.numpy() 变量名为: floatVar.Name);Console.WriteLine(strVar数值为: strVar.numpy() 变量名为: strVar.Name);Console.WriteLine(boolVar数值为: boolVar.numpy() 变量名为: boolVar.Name);Console.WriteLine(addResult数值为: addResult.numpy());Console.WriteLine(addResult2数值为: addResult2.numpy());Console.WriteLine(addResult3数值为: addResult3.numpy());Console.Read();}}
}通过tf.Variableint(10, name: int变量)声明了一个值为10名为int变量的整形变量
通过tf.Variablestring(Hello World, name: 字符串变量)声明了一个值为Hello World,名为字符串变量的字符串变量注意字符串的值不能出现中文不然会报错
其它的数据类型的声明方式类似 通过tf.constant(2,name:常量2名称)声明了一个值为2名为常量2名称的整型常量
注意tf.add相加函数对应的两个参数的数据类型必须要保持一致不然会报错。
如tf.add(number1, number2)是对number1和number2的值相加可以相加都是int类型 tf.add(floatVar, number1)不能相加因为floatVar是float类型而number2是int类型 程序运行的结果如下图 1.2 数据类型输入
代码如下
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){ResourceVariable intVar tf.Variableint(10, name: int变量);ResourceVariable floatVar tf.Variablefloat(1.2f, name: float变量);//字符串的值不能出现中文不然会报错ResourceVariable strVar tf.Variablestring(Hello World, name: 字符串变量);ResourceVariable boolVar tf.Variablebool(false, name: bool变量);Tensor number1 tf.constant(2,name:常量2名称);Tensor number2 tf.constant(3,name:常量2名称);Tensor addResult tf.add(number1, number2);Tensor addResult2 tf.add(intVar, number1);Tensor addResult3 tf.add(intVar.numpy(), number1); //int类型和int类型相加正常//Tensor addResult4 tf.add(floatVar, number1); float类型和int类型相加会报错Console.WriteLine(intVar的数据类型为: intVar.dtype);Console.WriteLine(floatVar的数据类型为: floatVar.dtype);Console.WriteLine(strVar的数据类型为: strVar.dtype);Console.WriteLine(boolVar的数据类型为: boolVar.dtype);Console.WriteLine(addResult的数据类型为: addResult.dtype);//当然也可以使用print进行输出print(使用print函数输出intVar数值为: intVar.numpy() 变量名为: intVar.Name);Console.Read();}}
}变量或者标量的dtype属性标识该变量或者标量的数据类型
程序运行结果如下 1.3 声明二维数组变量
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){//使用变量声明一维数组,2行4列的一维数组ResourceVariable array tf.Variable(new[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } });Console.WriteLine(二维数组输出为: array.numpy());Console.WriteLine(二维数组的数据类型为: array.dtype);Console.Read();}}
}代码中声明了一个2行4列的二维数组
代码运行结果如下 1.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){ResourceVariable intVar tf.Variableint(10, name: int变量);Tensor number1 tf.constant(2, name: 常量2名称);Tensor number2 tf.constant(3, name: 常量2名称);Tensor addResult tf.add(number1, number2);//使用变量声明一维数组,2行4列的二维数组ResourceVariable array tf.Variable(new[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } });//shape输出Console.WriteLine(intVar的shape输出: intVar.shape);Console.WriteLine(addResult的shape输出: intVar.shape);Console.WriteLine(二维数据的shape为: array.shape);Console.Read();}}
}输出结果如下 二 张量
TensorFlow中数据的基本单位为张量前面例子中我们操作的变量或者常量都是属于张量的一种我们可以使用张量表示标量(0维度数组)、向量(1维数组)、矩阵(2维数组)、RBG图像(3维数组)、视频(4维数组多了时间维度)等n维数组 2.1 各个维度的张量表示方式
2.1.1 标量(0维数组)的张量表示如下
ResourceVariable intVar tf.Variableint(10, name: int变量);
Tensor number1 tf.constant(2, name: 常量2名称);
2.1.2 向量(1维的数组)的张量表示如下
ResourceVariable var1 tf.Variable(new[]{1,2,3});
Tensor var2 tf.constant(new[] { 2,3,4 });
2.1.3 矩阵(2维数组)的张量表示如下
ResourceVariable array tf.Variable(new[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } });
2.1.4 RGB图像(3维数组)的张量表示如下
ResourceVariable array1 tf.Variable(new[,,] { { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } } , {{ 11, 22, 33, 4 }, { 55, 66, 77, 88 } } });
4维度的就偷个懒就不写了类似 2.2 可以通过张量的shape属性获取张量形状、dtype属性获取张量数据类型方法numpy获取张量的值代码例子如下
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){ResourceVariable intVar0 tf.Variableint(10, name: int变量);ResourceVariable array1 tf.Variable(new[] { 1, 2, 3, 4 });//使用变量声明一维数组,2行4列的二维数组ResourceVariable array2 tf.Variable(new[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } });ResourceVariable array3 tf.Variable(new[,,] { { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } } , {{ 11, 22, 33, 4 }, { 55, 66, 77, 88 } } });Console.WriteLine(0维张量的形状为: intVar0.shape 数据类型为: intVar0.dtype 值为: intVar0.numpy());Console.WriteLine(1维张量的形状为: array1.shape 数据类型为: array1.dtype 值为: array1.numpy());Console.WriteLine(2维张量的形状为: array2.shape 数据类型为: array2.dtype 值为: array2.numpy());Console.WriteLine(3维张量的形状为: array3.shape 数据类型为: array3.dtype 值为: array3.numpy());Console.Read();}}
}运行结果如下 好了本文内容到此结束