神经网络基本结构的使用(Convolution Layers的使用)1

torch.nn相当于把齿轮封装好的,直接提供给我们的方向盘
torch.nn.functional相当于开车时齿轮的运转

TORCH.NN.FUNCTIONAL.CONV2D

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor

在这里插入图片描述
在这里插入图片描述

代码实战:

import torch
import torch.nn.functional as F

# 写入二维矩阵
input = torch.tensor([[1, 2, 0, 3, 1],
                      [0, 1, 2, 3, 1],
                      [1, 2, 1, 0, 0],
                      [5, 2, 3, 1, 1],
                      [2, 1, 0, 1, 1]])
kernel = torch.tensor([[1, 2, 1],
                       [0, 1, 0],
                       [2, 1, 0]])
input = torch.reshape(input, (1, 1, 5, 5))
kernel = torch.reshape(kernel, (1, 1, 3, 3))

print(input.shape)
print(kernel.shape)
# stride = 1
output1 = F.conv2d(input, kernel, stride=1)
print(output1)
# stride = 2
output2 = F.conv2d(input, kernel, stride=2)
print(output2)
# padding = 1
output3 = F.conv2d(input, kernel, padding=1)
print(output3)
# padding = 2
output4 = F.conv2d(input, kernel, padding=2)
print(output4)

stride=1时输出:

torch.Size([1, 1, 5, 5])
torch.Size([1, 1, 3, 3])
tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])

stride=2时输出:

tensor([[[[10, 12],
          [13,  3]]]])

padding=1时输出:

tensor([[[[ 1,  3,  4, 10,  8],
          [ 5, 10, 12, 12,  6],
          [ 7, 18, 16, 16,  8],
          [11, 13,  9,  3,  4],
          [14, 13,  9,  7,  4]]]])

padding=2时输出:

tensor([[[[ 0,  1,  4,  4,  3,  7,  2],
          [ 0,  1,  3,  4, 10,  8,  2],
          [ 1,  5, 10, 12, 12,  6,  1],
          [ 0,  7, 18, 16, 16,  8,  3],
          [ 1, 11, 13,  9,  3,  4,  2],
          [ 5, 14, 13,  9,  7,  4,  1],
          [ 2,  5,  4,  2,  3,  3,  1]]]])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值