【发布时间】:2020-05-05 02:27:48
【问题描述】:
我正在尝试在 pytorch 中实现此代码:
self.scale_var = tf.Variable(
0.1, name='scale_var',
trainable=True,
dtype=tf.float32,
constraint=lambda x: tf.clip_by_value(x, 0, np.infty))
我想要一个可训练的标量值,并希望在损失函数中使用该值缩放一个常数。下面提到的代码合适吗?
class pytorch_variable(nn.Module):
def __init__(self):
super(pytorch_variable,self).__init__()
self.var = nn.Parameter(torch.tensor(0.1))
def forward(self):
return self.var
现在发生的情况是梯度流过它,但可训练的标量值慢慢减少到零,从初始值 0.1 减少了 0.001(直到零,因为我在 loss.backward() 调用后剪切了数据) .
【问题讨论】:
标签: tensorflow pytorch