标签:神经元 line ffffff inf 技术分享 随机数 ESS 实现 运行
Tensorflow如何搭建神经网络
1.基本概念
基于Tensorflow的神经网络:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型
张量:张量就是多维数据list,用阶来表示张量的维度
0阶张量称作标量,表示一个单独的数。
S = 123
1阶张量称为向量,表示一个一位数组
V = [1,2,3]
2阶张量称为矩阵,表示一个二维数组,它可以有i行j列个元素,每个元素可以通过行号和列号共同索引得到。
Attention Please!
判断张量是几阶,就通过张量右边的方括号数,0个是0阶,n个是n阶,张量可以表示0阶到n阶数组。列表。
举例子:
t = [[[...]]]为三阶.
2,数据类型。
Tensorflow的数据类型有tf.float32,tf.int32,tf.int64,tf.float64等
举例:
运行结果:
Result是一个名称为add:0的张量,shape =(2,0)表示以为数组长度为2,dtype =float32是表示数据类型为浮点型。
计算图:Graph :搭建神剑网络的计算过程,是承载一个或多个计算节点的一张图,只搭建网络,不运算
人工智能就是让机器模拟人类的学习方法。
而人类是如何学习呢
树突,轴突,细胞体。
如何传递信息,就是产生刺激,会产生电位差,形成电流。
人工智能的在电脑中是如何创建这种神经单元呢,就是类比生物学的。
输入,处理,输出,如下图所示
x1,x2表示输入,w1,w2分别表示x1到y和x2到y的权重,y=x1*w1+x2*w2.
结果是
输出的是一个张量,只搭建了计算过程的计算图,并没有运算,如果我们想要得到运算结果,就要
要使用会话Session()
3.会话Session:执行计算图中的节点运算。
使用with结构,
with结构,想必学过Python的都应该了解。
with open() as file_obj:
file_obj.readlines()
处理io的万能语句。
下面来看如何使用with来处理之前搭建好的计算图。
with tf.Session() as sess:
print(sess.run(y))
举例子:
得到计算结果是2阶张量的[[11.]]
4.神经网络的参数
4.1 神经网络的参数:是指神经元线上的权重W,用变量表示,一半会先随机生成这些参数,生成的参数的方法是让w等于tf.Variable,把生成的方式写在括号里。
神经网络中常用的生成随机数/数组的函数有:
tf.random_normal() 生成正太分布随机数
tf.truncated_normal() 生成去掉过大偏高点的正太分布随机数
tf.random_uniform() 生成均匀分布随机数
tf.zeros 表示生成全0数组
tf.ones 生成全1数组
tf.fill 生成全定值数组
tf.constant 生成直接给定值的数组。
* 神经网络的搭建。
当我们知道张量,计算图,会话和参数后,就可以讨论神经网络的实现
神经网络的实现过程:
1.准备数据集,提取特征值,作为输入喂给神经网络neural network NN
2,搭建NN结构,从输入到输出,先搭建计算图,再用会话执行。
NN前向传播算法--->计算输出
3.大量特征数据喂给NN,迭代优化NN参数
NN反向传播算法->优化参数训练模型
4.使用训练好的模型预测和分类。
举例子:
假如生产一批零件,体积为x1,重量为x2,体积和重量就是选择的特征features,把它们喂入神经网络,当体积和重量这组数据走过神经网络会得到一个输出。
假设输入的特征 体积0.7 ,体重0.5
由搭建的神经网络可得,隐藏层节点a11 = x1*w11+x2*w21 = 0.29同理得到a12 = 0.32
,a13 = 0.28,最终得到输出层y= -0.015.
推导
第一层:
X是输入 1X2的矩阵
用x表示输入,一个1行2列的矩阵,表示一次输入一组特征,这组特征包含了体积和重量两个元素。
W(前节点编号,后节点编号)为优化参数
未完,待续。。。。
标签:神经元 line ffffff inf 技术分享 随机数 ESS 实现 运行
原文地址:https://www.cnblogs.com/hamish26/p/10129084.html