在Pytorch中创建具有固定权重的线性模型

2024-10-04 05:21:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在PyTorch下创建一个单层的线性网络,但我想手动初始化权重并保持固定

例如,模型的权重值:

layer = nn.Linear(4, 1, bias=False)
weights = tensor([[ 0.6],
                  [0.25],
                  [ 0.1],
                  [0.05]], dtype=torch.float64)

enter image description here

这是可以实现的吗?如果是,我怎么做?还是有一个替代的线性函数


Tags: 模型layerfalsenntorchpytorch手动权重
1条回答
网友
1楼 · 发布于 2024-10-04 05:21:29

您可以通过将^{}设置为False来冻结图层:

layer.requires_grad_(False)

这样就不会计算layer参数的梯度

或者在初始化参数时直接定义so:

layer = nn.Linear(4, 1, bias=False)
layer.weight = nn.Parameter(weights, requires_grad=False)

或者,给定一个x形的(n, 4)输入,您可以使用简单的矩阵乘法计算结果,如下所示:

>>> x@weights 
# equivalent to torch.matmul(x, weights)

相关问题 更多 >