美文网首页TensorFlow技术帖
使用tensorflow创建一个简单的三层神经网络(2)

使用tensorflow创建一个简单的三层神经网络(2)

作者: MR天亮了灬 | 来源:发表于2017-12-26 17:22 被阅读3次

上一篇文章在创建输入层时使用的是一个常量去定义的  x = tf.constant([[0.7,0.9]]),然而我们在真实训练时输出层的数据时多个的,这样定义显然不行。tensorflow提供了placeholder的机制用于提供数据的输入,placeholder相当于定义了一个位置,这个位置的数据在程序运行时再指定。


import tensorflowas tf

# 定义变量

w1 = tf.Variable(tf.random_normal([2,3],stddev=1),name="w1")

w2 = tf.Variable(tf.random_normal([3,1],stddev=1),name="w2")

biases1 = tf.Variable(tf.zeros([3]),name="b1")   # 隐藏层的偏向bias    [ 0. 0. 0.]

biases2 = tf.Variable(tf.zeros([1]),name="b1")   # 输出层的偏向bias   [0.]

# 使用placeholder

x = tf.placeholder(tf.float32,shape=[None,2],name="input") #多个零件时shape=[None,2]

a = tf.matmul(x,w1)+biases1

y = tf.matmul(a,w2)+biases2


那么此时要怎样输入我们的数据呢?我们要做的就是在sess.run()的第二个参数feed_dict传入我们的输入值


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.9],[0.1,0.4],[0.5,0.8]]})  #表示当输入值为[[0.7,0.9],[0.1,0.4],[0.5,0.8]],打印当前向前神经网络的输出  也可以打印多个值

    #print sess.run([a,y],feed_dict={x:[[0.7,0.9]]})


完整代码:

import tensorflowas tf

# 定义变量

w1 = tf.Variable(tf.random_normal([2,3],stddev=1),name="w1")

w2 = tf.Variable(tf.random_normal([3,1],stddev=1),name="w2")

biases1 = tf.Variable(tf.zeros([3]),name="b1")   # 隐藏层的偏向bias    [ 0. 0. 0.]

biases2 = tf.Variable(tf.zeros([1]),name="b1")   # 输出层的偏向bias   [0.]

# 使用placeholder

x = tf.placeholder(tf.float32,shape=[None,2],name="input")

a = tf.matmul(x,w1) + biases1

y = tf.matmul(a,w2) + biases2

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.9],[0.1,0.4],[0.5,0.8]]}) 

#输出层的结果

[[ 2.15648317]
 [ 0.2483343 ]
 [ 1.50576186]]

相关文章

网友评论

    本文标题:使用tensorflow创建一个简单的三层神经网络(2)

    本文链接:https://www.haomeiwen.com/subject/ydejgxtx.html