基于tensorflow的神经网络:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型。 总之需要3个重要的信息(1、张量 2、计算图 3、会话)
1、张量:张量就是多维数组(列表),用“阶”表示张量的维度。
判断张量的阶数,可以通过右边的方括号数。比如
S=123,为0阶
V=[1,2,3] 为1阶张量,也叫向量,表示一个一维数组。
m = [[1,2,3],[4,5,6],[7,8,9]]为2阶张量,表示一个二维数组。也叫矩阵。
t = [[[...]]]为3阶
定义一个张量
import tensorflow as tf
a = tf.constant([1.0,2.0]) #定义一个一阶张量等于[1.0,2.0]
2、计算图:搭建神经网络的计算过程,是承载一个或多个计算节点的一张图,只搭建网络,不运算。
x1、x2表示输入,w1、w2分别表示x1到y和x2到y的权重,y=x1*w1+x2*w2。
用代码来描述上述的计算图:
import tensorflow as tf #引入模块
x = tf.constant([[1.0,2.0]]) #定义一个2阶张量等于[[1.0,2.0]]---->一行两列
w = tf.constant([[3.0],[4.0]]) #定义一个2阶张量等于[[3.0],[4.0]]----->两行一列
y = tf.matmul(x,w) #实现xw矩阵乘法
print y #打印出结果
3、会话:执行计算图中的节点运算。
with tf.Session() as sess:
print sess.run(y)
完整的tensorflow的nn代码如下:
注意:
1、在使用vim的时候,需要对vim进行相应的配置。(显示行号、一个tab键相当于4个空格)
然后在按:x保存推出。