pytorch 修改卷积核的权重weights、偏置bias

本文介绍了如何在PyTorch中创建并修改卷积神经网络(Conv2d)的卷积核权重。通过示例展示了如何使用torch.rand生成随机卷积核,并将其赋值给nn.Conv2d模块的weight属性,从而实现卷积核权重的自定义。需要注意的是,conv.weight是一个Parameter对象,需要通过conv.weight.data来访问和修改实际的Tensor。
摘要由CSDN通过智能技术生成

生成卷积核以后如何去自定义修改卷积核的权重呢?

kernel_data = torch.rand(1,1,3,3)
print(kernel_data )
conv = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=(3,3),stride=1, padding=1, padding_mode='zeros', bias=False)
print(conv.weight.data)
conv.weight = nn.Parameter(kernel_data)
print(conv.weight.data)

三个输出分别如下

# kernerl data
tensor([[[[0.6293, 0.9107, 0.7624],
          [0.0922, 0.8235, 0.8948],
          [0.1554, 0.2220, 0.1744]]]])
# 初始化的卷积核权重
tensor([[[[ 0.2976,  0.1347, -0.1313],
          [ 0.2648, -0.1767,  0.2317],
          [-0.1537,  0.1266,  0.0860]]]])
# 修改过后的卷积核权重
tensor([[[[0.6293, 0.9107, 0.7624],
          [0.0922, 0.8235, 0.8948],
          [0.1554, 0.2220, 0.1744]]]])

注意

conv = nn.Conv2d()生成的对象,其属性conv.weight并不是一个tensor类,而是一个torch.nn.parameter.Parameter, conv.weight.data才是一个torch.Tensor

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值