class2--tensorflow:前向传播

参数:即计算图线上的权重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]]


猜你喜欢

转载自blog.csdn.net/jane_6091/article/details/80967296