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