TensorFlow中的L2正则化函数:tf.nn.l2_loss()与tf.contrib.layers.l2_regularizerd()的用法与异同

tf.nn.l2_loss()与tf.contrib.layers.l2_regularizerd()都是TensorFlow中的L2正则化函数,tf.contrib.layers.l2_regularizerd()函数在tf 2.x版本中被弃用了。

两者都能用来L2正则化处理,但运算有一点不同。

import tensorflow as tf
sess = InteractiveSession()

a = tf.constant([1, 2, 3], dtype=tf.float32)
b = tf.nn.l2_loss(a)
print(b.eval())    # 7.0# tf.nn.l2_loss 运算是每个数的平方和再除以二# b = (12+22+33)/2 =7.0

而tf.contrib.layers.l2_regularizerd()的运算是每个数的平方和 开根号 再除以二,即(12+22+33)0.5 /2

我的tf版本没法用l2_regularizerd函数,就没演示代码了。

tf.nn.l2_loss

原文地址:https://www.cnblogs.com/panda-blog/p/12358404.html

时间: 2024-08-29 21:59:40

TensorFlow中的L2正则化函数:tf.nn.l2_loss()与tf.contrib.layers.l2_regularizerd()的用法与异同的相关文章

tf.nn.conv2d 和 tf.nn.max_pool 中 padding 分别为 'VALID' 和 'SAME' 的直觉上的经验和测试代码

这个地方一开始是迷糊的,写代码做比较分析,总结出直觉上的经验. 某人若想看精准的解释,移步这个网址(http://blog.csdn.net/fireflychh/article/details/73743849),但我觉得直觉上的经验更有用,如下: 直觉上的经验: 一件确定的事: padding 无论取 'SAME' 还是取 'VALID', 它在 conv2d 和 max_pool 上的表现是一致的; padding = 'SAME' 时,输出并不一定和原图size一致,但会保证覆盖原图所有

Kaldi中的L2正则化

steps/nnet3/train_dnn.py --l2-regularize-factor 影响模型参数的l2正则化强度的因子.要进行l2正则化,主要方法是在配置文件中使用'l2-regularize'进行配置.l2正则化因子将乘以组件中的l2正则化值,并且可用于通过模型平均化以校正与并行化带来的影响. (float,默认值= 1) src/nnet3/nnet-utils.cc:2030 void ApplyL2Regularization(const Nnet &nnet, BaseFl

tf.nn.l2_loss()的用法

l2_loss()这个函数的作用是利用L2范数来计算张量的误差值,但是没有开发并且只取L2范数的值的一半 函数: tf.nn.l2_loss( t, name=None ) 参数: t:一个张量(tensor),类型可以为:half, bfloat16, float32, float64 name:op的一个名字,即为这个操作取个名字 作用:使用sqrt计算张量的L2范数的一半 输出: 一个tensor,数据类型和t相同,是一个标量 计算公式: output = sum(t**2)/2 简单的可

TensorFlow L2正则化

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

深度学习原理与框架-CNN在文本分类的应用 1.tf.nn.embedding_lookup(根据索引数据从数据中取出数据) 2.saver.restore(加载sess参数)

1. tf.nn.embedding_lookup(W, X) W的维度为[len(vocabulary_list), 128], X的维度为[?, 8],组合后的维度为[?, 8, 128] 代码说明一下:即根据每一行X中的一个数,从W中取出对应行的128个数据,比如X[1, 3]个数据是3062,即从W中的第3062行取出128个数据 import numpy as np import tensorflow as tf data = np.array([[2, 1], [3, 4], [5,

【tf.keras】tf.keras使用tensorflow中定义的optimizer

我的 tensorflow+keras 版本: print(tf.VERSION) # '1.10.0' print(tf.keras.__version__) # '2.1.6-tf' tf.keras 没有实现 AdamW,即 Adam with Weight decay.论文<DECOUPLED WEIGHT DECAY REGULARIZATION>提出,在使用 Adam 时,weight decay 不等于 L2 regularization.具体可以参见 当前训练神经网络最快的方式

TensorFlow 过拟合与正则化(regularizer)

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

第二十二节,TensorFlow中RNN实现一些其它知识补充

一 初始化RNN 上一节中介绍了 通过cell类构建RNN的函数,其中有一个参数initial_state,即cell初始状态参数,TensorFlow中封装了对其初始化的方法. 1.初始化为0 对于正向或反向,第一个cell传入时没有之前的序列输出值,所以需要对其进行初始化.一般来讲,不用刻意取指定,系统会默认初始化为0,当然也可以手动指定其初始化为0. initial_state = lstm_cell.zero_state(batch_size, dtype=tf.float32) 2.初

TensorFlow 中的卷积网络

TensorFlow 中的卷积网络 是时候看一下 TensorFlow 中的卷积神经网络的例子了. 网络的结构跟经典的 CNNs 结构一样,是卷积层,最大池化层和全链接层的混合. 这里你看到的代码与你在 TensorFlow 深度神经网络的代码类似,我们按 CNN 重新组织了结构. 如那一节一样,这里你将会学习如何分解一行一行的代码.你还可以下载代码自己运行. 感谢 Aymeric Damien 提供了这节课的原始 TensorFlow 模型. 现在开看下! 数据集 你从之前的课程中见过这节课的