类别 | 解释 | 样例 |
---|---|---|
tf.truncated_normal() | 去掉过大偏离点的正态分布 | |
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,2,1])生成[3,2,1] |
神经网络实现过程:
1.准备数据集,提取特征,作为输入,传给神经网络
2.搭建NN结构,从输入到输出(先搭建计算图,再用会话执行)(NN前向传播算法——计算输出)
3.大量特征数据传给NN,迭代优化NN参数(NN反向传播算法——优化参数训练模型)
4.使用训练好的模型预测和分类
前向传播 搭建模型,实现推理
变量初始化、计算图节点运算都要用会话(with结构)实现
with tf.Session() as sess:
sess.run()
变量初始化:在sess.run函数中用tf.global_variables_initializer()
init_op = tf.global_variables_initializer()
sess.run(init_op)
计算图节点运算:在sess.run函数中写入待运算的节点
\sess.run()
用tf.placeholder占位,在sess.run函数中用feed_dict喂数据
喂一组数据
x = tf.placeholder(tf.float32,shape=(1,2))
sess.run(y,feed_dict={x:[[0.5,0.6]]})
喂多组数据
x = tf.placeholder(tf.float32,shape=(1,2))
sess.run(y,feed_dict = {x:[[0.5,0.6]]})
#两层简单神经网络(全连接)
#定义输入和参数
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))
# 用placeholder实现输入定义(sess.run中喂一组数据)
x = tf.placeholder(tf.float32, shape=(1,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]]}))
# 用placeholder实现输入定义(sess.run中喂多组数据)
x = tf.placeholder(tf.float32, shape=(None,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))
网友评论