zoukankan      html  css  js  c++  java
  • TensorFlow(三)---------正则化

       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

  • 相关阅读:
    松翰单片机_SN8F570310——INTR
    松翰单片机_SN8F570310——EINT
    松翰单片机_SN8F570310——PWM
    松翰单片机_SN8F570310——SPI
    松翰单片机_SN8F570310——IIC
    松翰单片机_SN8F570310——UART
    全志_input
    全志_ADC驱动
    git随笔
    全志_外部中断
  • 原文地址:https://www.cnblogs.com/BigStupid/p/7822878.html
Copyright © 2011-2022 走看看