作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
tf.keras.layers.Embedding
有参数 embeddings_regularizer
.在 pyTorch 或 nn.Embedding
中等价于什么?
最佳答案
PyTorch 没有直接的等效项,因为 PyTorch 仅支持 L2
通过 torch.optim
对参数进行正则化优化器。
例如 torch.optim.SGD有 weight_decay
范围。如果你设置了 和 您优化您的 nn.Embedding
它将被 L2
正则化具有指定的强度(对于 nn.Embedding
,您只能传递 weight_decay
,请参阅优化器的 per-parameter-options)。
如果您想使用 L1
正则化你必须:
L1
对损失和反向传播进行正则化,但这是一种低效的方法。
L1
是符号值)。沿着这些路线的东西:
import torch
# Do this in your optimization loop AT THE TOP
embedding = torch.nn.Embedding(150, 100)
embedding.weight.grad = torch.sign(embedding.weight)
# Do the rest of optimization AND clear gradients!
...
虽然让它在一般情况下工作有点困难(比如批量累积等),而且 IMO 还不清楚。您可以申请
L2
最重要的是。
torchlayers
第三方库
torchlayers-nightly
并获得每层
L1
和
L2
正则化。
pip
安装:
pip install -U torchlayers-nightly
在您的代码中,您可以执行以下操作:
import torchlayers as tl
import torch
embedding = torch.nn.Embedding(150, 100)
regularized_embedding = tl.L1(embedding)
# Do the rest as per usual
这个功能现在是实验性的,但应该可以工作,我以前成功地使用过它。
tl.L2
同理,见
docstrings关于这个特定层的使用。
关于keras - 相当于 pyTorch 中的 embeddings_regularizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65163143/
tf.keras.layers.Embedding有参数 embeddings_regularizer .在 pyTorch 或 nn.Embedding 中等价于什么? 最佳答案 PyTorch 没
我是一名优秀的程序员,十分优秀!