如何将 L1 正则化准确添加到张量流误差函数中

2024-04-05

嘿,我是张量流的新手,即使经过很多努力也无法添加 L1 正则化项到误差项

x = tf.placeholder("float", [None, n_input])
# Weights and biases to hidden layer
ae_Wh1 = tf.Variable(tf.random_uniform((n_input, n_hidden1), -1.0 / math.sqrt(n_input), 1.0 / math.sqrt(n_input)))
ae_bh1 = tf.Variable(tf.zeros([n_hidden1]))
ae_h1 = tf.nn.tanh(tf.matmul(x,ae_Wh1) + ae_bh1)

ae_Wh2 = tf.Variable(tf.random_uniform((n_hidden1, n_hidden2), -1.0 / math.sqrt(n_hidden1), 1.0 / math.sqrt(n_hidden1)))
ae_bh2 = tf.Variable(tf.zeros([n_hidden2]))
ae_h2 = tf.nn.tanh(tf.matmul(ae_h1,ae_Wh2) + ae_bh2)

ae_Wh3 = tf.transpose(ae_Wh2)
ae_bh3 = tf.Variable(tf.zeros([n_hidden1]))
ae_h1_O = tf.nn.tanh(tf.matmul(ae_h2,ae_Wh3) + ae_bh3)

ae_Wh4 = tf.transpose(ae_Wh1)
ae_bh4 = tf.Variable(tf.zeros([n_input]))
ae_y_pred = tf.nn.tanh(tf.matmul(ae_h1_O,ae_Wh4) + ae_bh4)



ae_y_actual = tf.placeholder("float", [None,n_input])
meansq = tf.reduce_mean(tf.square(ae_y_actual - ae_y_pred))
train_step = tf.train.GradientDescentOptimizer(0.05).minimize(meansq)

之后我使用运行上面的图表

init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

n_rounds = 100
batch_size = min(500, n_samp)
for i in range(100):
    sample = np.random.randint(n_samp, size=batch_size)
    batch_xs = input_data[sample][:]
    batch_ys = output_data_ae[sample][:]
    sess.run(train_step, feed_dict={x: batch_xs, ae_y_actual:batch_ys})

Above是4层的代码自动编码器, “meansq”是我的平方损失函数。如何为网络中的权重矩阵(张量)添加 L1 正则化?


您可以使用 TensorFlow应用正则化 https://www.tensorflow.org/api_docs/python/tf/contrib/layers/apply_regularization and l1_正则化器 https://www.tensorflow.org/api_docs/python/tf/contrib/layers/l1_regularizer方法。Note:这是针对 Tensorflow 1 的,API 在 Tensorflow 2 中发生了变化,请参阅下面的编辑。

基于您的问题的示例:

import tensorflow as tf

total_loss = meansq #or other loss calcuation
l1_regularizer = tf.contrib.layers.l1_regularizer(
   scale=0.005, scope=None
)
weights = tf.trainable_variables() # all vars of your graph
regularization_penalty = tf.contrib.layers.apply_regularization(l1_regularizer, weights)

regularized_loss = total_loss + regularization_penalty # this loss needs to be minimized
train_step = tf.train.GradientDescentOptimizer(0.05).minimize(regularized_loss)

Note: weights is a list其中每个条目是一个tf.Variable.

Edited: As Paddy https://stackoverflow.com/users/5324310/paddy正确地指出,在 Tensorflow 2 中,他们更改了正则化器的 API。在Tensorflow 2中,描述了L1正则化here https://www.tensorflow.org/api_docs/python/tf/keras/regularizers/l1.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 L1 正则化准确添加到张量流误差函数中 的相关文章

随机推荐

  • C++ 中的列表析构函数

    我刚刚实现了链接列表 它工作得很好 但甚至很难 我已经看到我无法在 Node 上创建工作析构函数的符号 这就是为什么它在代码中未实现 我需要在节点上实现工作析构函数 List 的析构函数 但这一个很简单 我将只使用 Node 类的析构函数
  • MySql 数据在第 1 行的“提前”列被截断

    在我的项目中 我使用了 txtAdvance 的关键事件 double gtotal Double parseDouble txtGtotal getText double ad Double parseDouble txtAdvance
  • Rails:如何查询 activerecord 中模型的时间范围(而不是日期)值

    我有一个模型time属性 这是用户想要接收电子邮件的时间 即美国东部时间下午 5 点 的配置 它在数据库中存储为21 00 00 我想按范围查询 例如 我希望每个用户都有一个提醒时间20 55 00 and 21 05 05 Rails 似
  • 如果定义了 item,则 Ansible with_items

    安塞布尔 1 9 4 该脚本应该仅在定义了某些变量的主机上执行某些任务 正常情况下可以正常工作 但与with items陈述 debug var symlinks when symlinks is defined name Create o
  • 如何从 React JS 中的另一个组件获取引用

    主App组件中的代码如下 class App extends Component componentDidMount console log this ref debugger render return div div
  • 更改 Twitter 引导模式中的背景颜色?

    在twitter bootstrap中创建模态时 有什么方法可以更改背景颜色吗 完全删除阴影吗 注意 为了消除阴影 这doesn t有效 因为它也会改变点击行为 我仍然希望能够在模式外部单击以将其关闭 myModal modal backd
  • 如何外部化错误消息

    这是一个外部化错误消息的最佳实践问题 我正在开发一个项目 其中存在代码 简短描述和严重性错误 我想知道外部化此类描述的最佳方式是什么 我想到的是将它们放在代码中是不好的 将它们存储在数据库中 将它们放在属性文件中 或者可能有一个加载了描述的
  • Pandas 查找,将数据框中的一列映射到不同数据框中的另一列

    我有两个 pandas 数据框 df1 和 df2 df1 具有 X 列 Y 列以及 weeknum df2 具有 Z weeknum 和 datetime 列 我基本上想保留 df1 并在其中添加一个额外的列 该列对应 weeknum 的
  • 在 Oracle SQL 中根据时间对重复的分组项运行总计

    我的第一篇文章 所以请耐心等待 我想根据按日期划分的值进行求和 但只需要日期的总和 而不是按项目分组的总和 已经为此工作好几天了 试图避免使用光标 但可能不得不这样做 这是我正在查看的数据的示例 顺便说一句 这是在 Oracle 11g 中
  • 如何将对象传输到 Azure Blob 存储而不将文件保存在本地存储上?

    我一直在关注这个来自 GitHub 的示例 https github com Azure Samples storage blobs dotnet quickstart将文件传输到 Azure Blob 存储 程序在本地创建一个文件MyDo
  • UIPageViewController所有页面上的UIButton

    我正在开发一个 iPhone 应用程序 并创建了一个UIPageViewController 我们称其为容器 其中包含多个UIViewController页面 我们称它们为subpages The subpages过渡样式是滚动 现在 我喜
  • 如何让 Selenium WebDriver 等待一段时间?

    我可以编写以下代码让WebDriver等待一段时间 new WebDriverWait driver 20 until ExpectedConditions presenceOfElementLocated By id loginBox B
  • 如何让 PowerShell 4 cmdlet(例如 Test-NetConnection)在 Windows 7 上运行?

    情况 在 Windows 7 SP1 计算机上 我已更新为 Windows6 1 KB2819745 x64 MultiPkg msu 此外 在 PowerShell 中 PSVersionTable 现在报告 PSVersion 4 0
  • Python 进程在 Numpy 数组中仅使用 1.6 GB RAM Ubuntu 32 位

    我有一个学习人工神经网络的程序 它需要一个二维 numpy 数组作为训练数据 我想要使 用的数据数组的大小约为 300 000 x 400 个浮点数 我不能在这里使用分块 因为我正在使用的库 DeepLearningTutorials 采用
  • Azure Pipelines - 使用 azcopy 下载文件

    我可以看到有一个任务将本地文件上传到Azure存储或VM 但是我们如何从 blob 或文件共享下载到管道代理中呢 目前我正在使用 azcopy 和 SAS URI Pipelines 中是否有一个任务可以使用服务连接来执行此操作 因此 由于
  • 在存储位置找不到存档:Google 功能

    我有一个正在运行的 Google 函数 我在代码中使用它并且工作正常 但是当我去 Google 函数查看源代码时 它显示 在存储位置找不到存档 https i stack imgur com NoOOI png为什么我看不到我的源代码 我应
  • swing 中的框架、窗格或面板有什么用?

    我读到 JFrame 由多个窗格组成 什么是窗格以及为什么 Jframe 由窗格组成 为什么会有 JPanel 而 JFrame 看起来与 JPanel 完全一样 但有一个菜单栏和一个关闭按钮 那么 JPanel 需要什么 谁能清楚地向我解
  • Sidekiq 作业中的重试次数

    有没有办法获取当前作业的重试次数 我希望作业在 x 次重试后停止 而不是崩溃 我想询问执行方法中的重试计数 这样如果重试计数等于 x 我可以简单地返回 def perform args return if retry count gt 5
  • 带列表的 SwiftUI 自定义导航栏

    我制作了一个类似于下面看到的苹果列表的列表 但我真的不喜欢 UInavigation 栏的样子 理想情况下 我希望它更小或将其隐藏 以便我可以将自己的视图放在那里 我尝试使用苹果外观 api 中的以下内容来隐藏它 init UINaviga
  • 如何将 L1 正则化准确添加到张量流误差函数中

    嘿 我是张量流的新手 即使经过很多努力也无法添加 L1 正则化项到误差项 x tf placeholder float None n input Weights and biases to hidden layer ae Wh1 tf Va