张量,计算图,会话
张量:多维数组
一阶张量-向量 eg:v=[1,2,3] 二阶张量-矩阵
加法 只显示张量的性质,不显示实际的计算值
计算图:搭建神经网络的计算过程,只搭建,不运算
绘画(session):执行计算图中的节点运算
with tf.Session() as sess:
print sess.run(y)//y是需要计算的式子
神经网络实现过程:
1.准备数据集,提取特征
2.搭建NN结构,从输入到输出(先搭建计算图,再用会话执行)
3.大量特征数据喂给NN,迭代优化参数
4.使用训练好的模型预测和分类
前向传递
X是输入为1*2矩阵:W为待优化的参数,a代表计算层
a=tf.matmul(X,W1)
y=tf.matmul(a,W2)
变量的初始化
init_op = tf.global_variables_initializer() //初始化
sess.run(init_op)
计算图节点
sess.run(y)
喂入数据
喂一组数据:
x=tf.placeholder(tf.float32,shape=(1,2)) //注 其中1代表一组数据,2代表数据的维度,比如该例子中体重和大小两个数据既为2
sess.run(y,feed_dict={x:[[0.5,0.6]]})
喂多组数据:
x=tf.placeholder(tf.float32,shape=(None,2)) //注当要喂入多组数据时用none表示
sess.run(y,feed_dict={x:[[0.1,0.2],[0.3,0.4]]})
反向传播
损失函数(Loss):预测值(y)和已知函数(y_)的差距
均方误差MSE: MSE(y_,y)【(y-y_)^2/n】
loss= tf.reduce_mean(tf.square(y_-y))
以减小loss值为优化目标