import torch
from torch import nn
def corr2d(X,K):
h,w=K.shape
Y=torch.zeros((X.shape[0]-h+1,X.shape[1]-w+1))
for i in range(Y.shape[0]):
for j in range(Y.shape[1]):
Y[i,j]=(X[i:i+h,j:j+w]*K).sum()
return Y
# X=torch.tensor([[0.0,1.0,2.0],[3.0,4.0,5.0],[6.0,7.0,8.0]])
# K=torch.tensor([[0.0,1.0],[2.0,3.0]])
#
# print(corr2d(X,K))
# 二维实现卷积层
class Conv2d(nn.Module):
def __init__(self,kernel_size):
super().__init__()
self.weight=nn.Parameter(torch.rand(kernel_size))
self.bias=nn.Parameter(torch.zeros(1))
def forward(self,x):
return corr2d(x,self.weight)+self.bias
X=torch.tensor([[0.0,1.0,2.0],[3.0,4.0,5.0],[6.0,7.0,8.0]])
ney=Conv2d((2,2))
print(ney(X))
# X=torch.ones((6,8))
# X[:,2:6]=0
# print(X)
# K=torch.tensor([[1.0,-1.0]])
# print(corr2d(X,K))
实现二维卷积层
最新推荐文章于 2024-08-01 16:55:04 发布
这篇博客展示了如何用Python和PyTorch从零开始实现一个二维卷积层。通过定义`corr2d`函数进行卷积操作,并在此基础上创建了一个自定义的`Conv2d`类,该类在输入张量上应用卷积并添加偏置项。示例中给出了卷积操作的实例,用于理解其工作原理。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
PyTorch 2.5
PyTorch
Cuda
PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理
3586

被折叠的 条评论
为什么被折叠?



