神经网络实现过程:
- 准备数据集,提取特征,作为输入喂给神经网络
- 搭建NN结构,从输入到输出(先搭建计算图,再用会话执行)
NN前向传播—到计算输出 - 大量特征喂给NN,迭代优化NN参数
NN反向传播–优化参数模型 - 使用训练好的模型预测和分类
神经网络的机器学习包括两个部分:训练过程和使用过程
前向传播就是搭建模型,实现推理
eg.生产一批零件将体积X1和重量X2为特征输入NN,通过NN输出一个数值
如何解决这个问题,参考如下
import tensorflow as tf
#定义输入和参数
x = tf.constant([[0.7,0.5]])#特征即神经网络的参数
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)
y = tf.matmul(a,w2)
#用会话计算结果
with tf.Session() as sess:
init_op = tf.global_variables_initializer()#实现对所有参数的初始化
sess.run(init_op)
print(sess.run(y))
如何喂入多组数据
#如何喂入多组数据
x = tf.placeholder(tf.float32,shape=(None,2))#这里2是特征,即重量与体积
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)
y = tf.matmul(a,w2)
#用会话计算结果
with tf.Session() as sess:
init_op = tf.global_variables_initializer()#实现对所有参数的初始化
sess.run(init_op)
print(sess.run(y,feed_dict={x:[[0.7,0.5],[0.2,0.3],[0.3,0.4],[0.4,0.5]]}))
print(sess.run(w1))
print(sess.run(w2))