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

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

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

     1假如一个零件的好坏是由零件的长度和零件的质量决定的,用零件的长度和质量描述每个零件的特征向量(feature vector),也就是神经网络的输入向量。我们以此来构建一个简单的三层神经网络,来获取途中的结果Y,然后设定一个阈值,如果Y大于这个阈值则合格,小于则不合格

    判断零件是否合格的三层神经网络的前向传播

    神经网络的前向传播的tensorflow实现


       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.]

      x = tf.constant([[0.7,0.9]])   #定义一个零件的输入向量,长度为0.7,质量为0.9

         这里定义了一个2x3方差为1,均值为0的均匀分布的矩阵向量w1和3x1均匀分布的w2,当然此时我们打印w1和w2时得到的却是

    <tf.Variable 'w1:0' shape=(2,3) dytype=float32_ref>,这是因为此时创建的只是一个张量(tensor)的结构,一个张量保存了三个属性:名字(name),维度(shape)和类型(type)

         # 定义前向传播

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

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

    tf.matmul()实现向量的点乘,a为隐藏层的值,是3x1的矩阵向量,y为输出层的值,当然此时的y仍然只是的到张量的结构,此时的w1和w2并没有被初始化,可以理解为只是结构的向前传播,得到y为1x1的张量

    tensorflow的Session


       那么如何让结构的前向传播转为真实数值的传播呢,这时候会引入tf.Session(会话)的概念

       with tf.Session() as sess:

             init_op = tf.global_variables_initializer()    #初始化所有的变量

             sess.run(init_op)  # 运行所有的结果

             print sess.run(y)

    这样就会计算出输出层前向传播的值   [[-1.46060801]]   ,不再是结构

    完整代码:

    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.]

    x = tf.constant([[0.7,0.9]])

    # 定义前向传播

    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)

    相关文章

      网友评论

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

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