参数:即计算图线上的权重W,用变量表示,最开始随机给初值
w=tf.Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1))
参数: 正态分布 标准差 均值 随机种子(如果为0,则每次生成的数都不一样)
tf.truncated_nomal() 去掉超过两个标准差的偏离点的正态分布
tf.random_uniform() 平均分布
tf.zeros 全0数组 tf.zeros([3,2],int32) 生成[[0,0],[0,0],[0,0]]
tf.ones 全1数组 tf.ones([3,2],int32) 生成[[1,1],[1,1],[1,1]]
tf.fill全定值数组 tf.fill([3,2],6) 生成[[6,6],[6,6],[6,6]]
tf.constant 直接给值 tf.constant([3,1,2]) 生成[3,1,2]
神经网络实现过程:
1.准备数据集,提取特征,作为输入喂给神经网络(Neural Network,NN)
2.搭建NN结构,从输入到输出(先搭建计算图,再用会话执行)
(NN前向传播算法---->计算输出)
3.大量特征数据数据给NN,迭代优化NN参数
(NN反向传播算法---->优化参数训练模型)
4.使用训练好的模型预测和分类
前向传播----->搭建模型,实现推理(以全连接网络为例)
eg.生产一批零件讲体积x1和体重x2为特征输入NN,通过NN后输出一个数值
(课程是中国大学mOOC网的人工智能实践:tensorflow笔记里面的,这些文章仅为笔记)
具体代码:
#tf_3_2.py
import tensorflow as tf
#定义输入和参数,用placeholder实现输入定义(sess.run中喂一组数据)
x=tf.placeholder(tf.float32)
w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))
#定义前向传播过程
a=tf.matmul(x,w1)
b=tf.matmul(a,w2)
#用会话计算结果
with tf.Session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
print("b=",sess.run(b,feed_dict={x:[[0.7,0.5]]}))
结果:b= [[3.0904665]]