激励函数
Activation Function(激励函数):前几期的文章,我们介绍了激励函数的感念,为何需要激励函数,那么在TensorFlow中如何使用激励函数
激励函数说白了就是非线性方程,在不同的神经网络中,可以尝试不同的激励函数,一般在卷积神经网络CNN的卷积层中, 推荐的激励函数是 relu. 在循环神经网络中RNN中, 推荐的是 tanh 或者是 relu。具体激励函数的具体细节,我们会随着文章的不断分享,逐渐介绍。
TensorFlow流程结构图
从TensorFlow数据结构图,我们可以看出TensorFlow除了输入层,训练层外,还有多层的隐藏层(hidden layer负责降维),在不同的实际问题中,添加多少隐藏层,需要根据项目的需求。我们上期的文章,TensorFlow数据结构构建一文,简单介绍了TensorFlow的数据结构建立,但是没有添加任何层,我们的激励函数就添加在层的定义中。
TensorFlow添加层我们修改一下我们上期的代码,介绍一下如何使用激励函数与如何添加层
首先我们定义一个层的函数
import tensorflow as tf import numpy as np 定义Weights Weights = tf.Variable(tf.random_normal([in_size,out_size])) 定义y=W*x+b tf.matmul()是矩阵的乘法 Wx_plus_b=tf.matmul(inputs,Weights)+biases if activation_function is None: 通过激励函数非线性话y=W*x+b outputs=activation_function(Wx_plus_b) return outputs添加层的函数定义后,后期我们就可以直接使用函数定义添加层。
2、创建初始化数据
x=np.linspace(-1,1,300)[:,np.newaxis] 本期定义一个一元二次函数 y=np.square(x)-0.5+noise 输入层 定义激励函数为relu lay_one=add_layer(x_ph,1,10,activation_function=tf.nn.relu) 占位符通过feed_dict输入数据,这里我们输入我们定义的x,y,当然这里你也可以输入其他的数据 sess.run(train,feed_dict={x_ph:x,y_ph:y}) if i%50==0: print(i,sess.run(loss,feed_dict={x_ph:x,y_ph:y})) >>>10、查看输出
刚开始的误差为0.3,随着训练的step增加,误差loss 越小
loss
下期预告下期介绍一下matplotlib 可视化工具,这在TensorFlow中可以更形象的看到TensorFlow的训练结果
TensorFlow
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除
热门信息
阅读 ()
1 注册微信号怎么注册第二个阅读 ()
2 怎么把照片变成卡通头像阅读 ()
3 手机越充越少电怎么解决