如何在 PyTorch 中自定义卷积核参数(亲测,已解决)

先说一下整体 流程

1.设置环境和导入库

首先,我们需要确保安装了 PyTorch,并导入必要的库

导入 PyTorch 和其他必备的库

复制代码
import torch
import torch.nn as nn
import torch.nn.functional as F

导入 PyTorch 库以及神经网络模块 nn 和函数模块 F。

2.创建一个自定义的卷积层

接下来,我们将定义一个自定义卷积层,继承自nn.Module

复制代码
#自定义卷积层
class CustomCovlayer(nn.Module):
    def __init__(self,in_channels, out_channels, kernel_size):
        super(CustomCovlayer,self).__init__()
        #初始化卷积层
        self.conv = nn.Conv2d(in_channels,out_channels,kernel_size)
    def forward(self,x):
        # 前向传播
        return self.conv(x)

这里我们创建了一个名为 CustomconvLayer 的卷积层。init方法中创建一个 Conv2d 对象,forward 方法定义了输入数据如何通过卷积层。

3.手动初始化卷积核参数

现在需要手动设置卷积核的参数。

并组成完整网络

复制代码
#自定义卷积层
class CustomCovlayer(nn.Module):
    def __init__(self,in_channels, out_channels, kernel_size):
        super(CustomCovlayer,self).__init__()
        #初始化卷积层
        self.conv = nn.Conv2d(in_channels,out_channels,kernel_size)
        # 在初始化方法中,调用自定义初始化函数
        self.init_weights()
    def forward(self,x):
        # 前向传播
        return self.conv(x)
    def init_weights(self):
        # 初始化卷积核为自定义值
        with torch.no_grad():
            self.conv.weight = nn.Parameter(torch.tensor([[[[1.0,0.0,-1.0],
                                                           [1.0,0.0,-1.0],
                                                           [1.0,0.0,-1.0]
                                                            ]]]))
    def forward(self,x):
        # 前向传播
        return self.conv(x)

5.测试自定义卷积层

创建一些假的图像数据来测试自定义卷积层。

复制代码
conv_layer = CustomConvlayer(in_channels=1,out_channels=1,kernel_size=1)

#创建数据,形状为(batch_size,channels, height,width)
input_data = torch.tensor([[[[1.0,2.0,3.0],
                             [0.0,1.0,0.0],
                             [1.0,2.0,3.0]]]])
# 前向传播测试
output = conv_layer(input_data)

#打印输出
print(output)

输出结果:

欢迎点赞 收藏 加 关注

相关推荐
九年义务漏网鲨鱼1 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
元宇宙时间1 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享2 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾2 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码2 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5892 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij2 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
雷羿 LexChien2 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
两棵雪松3 小时前
如何通过向量化技术比较两段文本是否相似?
人工智能
heart000_13 小时前
128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器
人工智能·自然语言处理·pdf