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()

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]

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

时间: 2024-10-10 13:38:14

TensorFlow(三)---------正则化的相关文章

TensorFlow L2正则化

TensorFlow L2正则化 L2正则化在机器学习和深度学习非常常用,在TensorFlow中使用L2正则化非常方便,仅需将下面的运算结果加到损失函数后面即可 reg = tf.contrib.layers.apply_regularization(tf.contrib.layers.l2_regularizer(1e-4), tf.trainable_variables())

tensorflow(三)

1.placeholder 一个数据占位符,用于在构建一个算法时留出一个位置,然后在run时填入数据. x = tf.placeholder(tf.float32) y = tf.placeholder(tf.float32) z = x*y with tf.Session() as sess: print(sess.run(z,feed_dict={x:3.0,y:2.0})) 2.variable 存储节点作为数据流图中的有状态节点,其主要作用是在多次执行相同数据流图时存储特定的参数,如深度

TensorFlow(一)

一  基本概念: Tensorflow是一个计算密集型的编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor. Tensor 看作是一个 n 维的数组或列表.图必须在会话(Session)里被启动 使用图(graphs)来表示计算任务在被称之为会话(Session)的上下文(context)中执行图使用tensor表示数据通过变量(Variable)维护状态使用feed

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?对于这几大框架在运行各项深度任务时的性能差异如何,各位读者不免会有所好奇. 微软数据科学家Ilia Karmanov最新测试的结果显示,亚马逊MXNet在CNN.RNN与NLP情感分析任务上性能强劲,而TensorFlow仅擅长于特征提取. 测试详情更新在Ilia Karmanov的GitHub项目DeepLearningFrameworks(https://github.com/ilkarman/De

教程 | 没有博士学位,照样玩转TensorFlow深度学习

香港科技大学TensorFlow三天速成课件 https://blog.csdn.net/zhongxon/article/details/54709347 香港科技大学TensorFlow三天速成课件 https://blog.csdn.net/gh13uy2ql0n5/article/details/78173679 机器学习算法总结--线性回归和逻辑回归 https://blog.csdn.net/lc013/article/details/55002463 机器学习十大算法系列(一)--

Tensorflow机器学习入门——常量、变量、placeholder和基本运算

一.这里列出了tensorflow的一些基本函数,比较全面:https://blog.csdn.net/M_Z_G_Y/article/details/80523834 二.这里是tensortflow的详细教程:http://c.biancheng.net/tensorflow/ 三.下面程序是我学习常量.变量.placeholder和基本运算时形成的小函数 import tensorflow as tf print(tf.__version__)#打印Tensorflow版本 print(t

数据处理与转换

目录 一.归一化 1.1 最小最大值标准化(MinMaxScaler) 1.2绝对值最大标准化( MaxAbsScaler) 二.标准化 2.1 零均值单位方差(scale) 2.2 训练数据的均值方差(StandardScaler) 三.正则化(Normalization) 3.1  L1.L2正则化 四.其他方法 4.1 特征二值化 4.2 自定义转换 一.归一化 1.1 最小最大值标准化(MinMaxScaler) 将属性缩放到一个指定的最大和最小值(通常是0-1)之间,常用的最小最大规范

tflite模型的生成

由于IOS App需要使用已训练的tensorflow模型进行物体检测,特将此过程记录下来已备不时之需. 一.tflite是什么 TensorFlow Lite 的设计旨在在各种设备上高效执行模型.这种高效部分源于在存储模型时,采用了一种特殊的格式.TensorFlow 模型在能被 TensorFlow Lite 使用前,必须转换成这种格式. 由上图可知: tflite是从训练的模型转换而来的: tflite是为了在App设备上使用: 二.从训练结果到tflite 1.ckpt训练模型说明 训练

TensorFlow 过拟合与正则化(regularizer)

所谓过拟合,就是当一个模型过于复杂后,它可以很好的处理训练数据的每一个数据,甚至包括其中的随机噪点.而没有总结训练数据中趋势.使得在应对未知数据时错误里一下变得很大.这明显不是我们要的结果. 我们想要的是在训练中,忽略噪点的干扰,总结整体趋势.在应对未知数据时也能保持训练时的正确率. 上图中第一种情况,模型过于简单,未能很好的反应数据的总体趋势. 第三种情况就属于过拟合的情况.虽然完美的反应了练习数据的状况,但是明显被噪点影响了. 第二种情况是我们想要的理想状况. 为了避免过拟合,通常使用的方法