tensorflow_add_layer学习

定义添加神经层的函数def add_layer(),它有四个参数:输入值、输入的大小、输出的大小和激励函数;在这里我们设置为None没有激活函数。

首先在构建神经网络的时候需要搞清楚每一层矩阵的维度,

在这里的表示方式是: input * weights:

输入层的结点个数是2,隐层是3,input=[n*2]  ,weihts=[2*3] ,bias=[1,3],input*weigths=[n,3] + bias=[1,3] ,这样的矩阵维度相加的时候,python会执行它的广播机制,这一层的输出的维度是 [n,3]

  • 对于广播机制:简单来说,broadcasting可以这样理解:如果你有一个mn的矩阵,让它加减乘除一个1n的矩阵,它会被复制m次,成为一个mn的矩阵,然后再逐元素地进行加减乘除操作。同样地对m1的矩阵成立。
  • broadcasting机制在深度学习函数构建中应用得很广,比如说我们在逻辑回归函数中,激活函数z = wT * X + b, b是一个数而前面的wT * X是一个1*n的矩阵,由于python这种机制,不需要我们为b构建向量,这就减轻了代码量。

在建立层时,需要用到上几节学到的tensorflow的变量定义,矩阵乘法等等,具体的代码如下:

import tensorflow as tf

def add_layer(inputs,in_size,out_size,activation_funtion=None):
    Weights = tf.Variable(tf.random_normal([in_size,out_size]))
    biases = tf.Variable(tf.zeros([1,out_size]) + 0.1)
    plus = tf.matmul(inputs,Weights) + biases
    if activation_funtion is None:
        outputs = plus
    else:
        outputs = activation_funtion(plus)
    return outputs

 

posted @ 2019-08-08 16:08  也许明天、  阅读(627)  评论(0)    收藏  举报