2024-10-04 05:21:29 发布
网友
我想在PyTorch下创建一个单层的线性网络,但我想手动初始化权重并保持固定
例如,模型的权重值:
layer = nn.Linear(4, 1, bias=False) weights = tensor([[ 0.6], [0.25], [ 0.1], [0.05]], dtype=torch.float64)
这是可以实现的吗?如果是,我怎么做?还是有一个替代的线性函数
您可以通过将^{}设置为False来冻结图层:
False
layer.requires_grad_(False)
这样就不会计算layer参数的梯度
layer
或者在初始化参数时直接定义so:
layer = nn.Linear(4, 1, bias=False) layer.weight = nn.Parameter(weights, requires_grad=False)
或者,给定一个x形的(n, 4)输入,您可以使用简单的矩阵乘法计算结果,如下所示:
x
(n, 4)
>>> x@weights # equivalent to torch.matmul(x, weights)
您可以通过将^{} 设置为
False
来冻结图层:这样就不会计算
layer
参数的梯度或者在初始化参数时直接定义so:
或者,给定一个
x
形的(n, 4)
输入,您可以使用简单的矩阵乘法计算结果,如下所示:相关问题 更多 >
编程相关推荐