码迷,mamicode.com
首页 > 其他好文 > 详细

TensorFlow(三)---------正则化

时间:2017-11-12 21:50:58      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:.com   style   flow   log   one   nbsp   oat   变化   aop   

   TensorFlow正则化经常被用于Deep-Learn中,泛化数据模型,解决过拟合问题。再深度学习网络只有在有足够大的数据集时才能产生惊人的学习效果。当数据量不够时,过拟合的问题就会经常发生。然而,只选取我们需要的数据量的模型,就会非常难以继续进行泛化和优化。所以正则化技术孕育而生~~~~~~~

   正则化的基本思想是向损失函数添加一个惩罚项用于惩罚大的权重,隐式的减少自由参数的数量。可以达到弹性地适应不同数据量训练的要求而不产生过拟合的问题。~~~~~~


技术分享
 1 #正则化
 2 import tensorflow as tf
 3 import matplotlib.pyplot as plt
 4 import numpy as np
 5 
 6 data = []
 7 label = []
 8 np.random.seed(0)
 9 for i in range(150):
10     x1 = np.random.uniform(-1,1)
11     x2 = np.random.uniform(0,2)
12     if x1**2+x2**2 <= 1:
13         data.append([np.random.normal(x1,0.1),np.random.normal(x2,0.1)])
14         label.append(0)
15     else:
16         data.append([np.random.normal(x1,0.1),np.random.normal(x2,0.1)])
17         label.append(1)
18 
19 data = np.hstack(data).reshape(-1,2)
20 label = np.hstack(label).reshape(-1,1)
21 plt.scatter(data[:,0],data[:,1],c=label,
22            cmap="RdBu",vmin=-.2,vmax=1.2,edgecolor="white")
23 plt.show()
View Code

技术分享

2.查看不同迭代中的变量取值的变化

技术分享
 1 v1 = tf.Variable(0,dtype=tf.float32)
 2 step = tf.Variable(0,trainable=False)
 3 ema = tf.train.ExponentialMovingAverage(0.99,step)
 4 maintain_averages_op = ema.apply([v1])
 5 with tf.Session() as sess:
 6     #初始化
 7     init_op = tf.global_variables_initializer()
 8     sess.run(init_op)
 9     print(sess.run([v1,ema.average(v1)]))
10     #更新变量v1的取值
11     sess.run(tf.assign(v1,5))
12     sess.run(maintain_averages_op)
13     print(sess.run([v1,ema.average(v1)]))
14     #更新step和v1的取值
15     sess.run(tf.assign(step,10000))
16     sess.run(tf.assign(v1,10))
17     sess.run(maintain_averages_op)
18     print(sess.run([v1,ema.average(v1)]))
19     #更新一次v1的滑动平均值
20     sess.run(maintain_averages_op)
21     print(sess.run([v1,ema.average(v1)]))
22    
23 
24 #结果
25 
26 [0.0, 0.0]
27 [5.0, 4.5]
28 [10.0, 4.5549998]
29 [10.0, 4.6094499]
View Code

 

note:优化器optimizer

tf的7种优化器
最常用的: GradientDescentOptimizer

tf.train.Optimizer
tf.train.GradientDescentOptimizer
tf.train.AdadeltaOptimizer
tf.train.AdagradOptimizer
tf.train.AdagradDAOptimizer
tf.train.MomentumOptimizer
tf.train.AdamOptimizer
tf.train.FtrlOptimizer
tf.train.ProximalGradientDescentOptimizer
tf.train.ProximalAdagradOptimizer
tf.train.RMSPropOptimizer

 

TensorFlow(三)---------正则化

标签:.com   style   flow   log   one   nbsp   oat   变化   aop   

原文地址:http://www.cnblogs.com/BigStupid/p/7822878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!