【Pytorch笔记-01】一个测试例子

Pytorch笔记-01:一个测试例子

Pytorch的文档网站
https://pytorch.org/docs/stable/nn.html


'''
Pytorch的文档网站
https://pytorch.org/docs/stable/nn.html
'''
import torch
from torch import nn

class test_nn(nn.Module):
    '''
    Module:
        Base class for all neural network modules.

    Module也是最常用的一个模块
    '''
    def __init__(self):
        super().__init__()

    def forward(self, input):
        output = input + 1
        return output

test_modal = test_nn()
x = torch.tensor(1.0)  # x = tensor(1.)
output = test_modal(x)
print(output)   # tensor(2.)

nn.Module

import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.conv1 = nn.Conv2d(1, 20, 5)
        self.conv2 = nn.Conv2d(20, 20, 5)

    def forward(self, x):
        x = F.relu(self.conv1(x))
        return F.relu(self.conv2(x))

卷积

在这里插入图片描述

Stride

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]])

'''这里, 1: 表示batch size =1, 1:表示一个channel,这里其实就是RGB,如果是彩色的,这里就是3
5*5: 表示一张图片的size'''
input = torch.reshape(input, (1, 1, 5, 5))
kernel = torch.reshape(kernel, (1, 1, 3, 3))

print('input size: ', input.shape)
print('kernel size: ', kernel.shape)

output = F.conv2d(input=input, weight=kernel, stride=1)
print('output: ', output)
'''
output:  tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
'''

output2 = F.conv2d(input=input, weight=kernel, stride=2)
print('output2: ', output2)
'''
output2:  tensor([[[[10, 12],
          [13,  3]]]])
'''

padding

在这里插入图片描述

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]])

'''这里, 1: 表示batch size =1, 1:表示一个channel,这里其实就是RGB,如果是彩色的,这里就是3
5*5: 表示一张图片的size'''
input = torch.reshape(input, (1, 1, 5, 5))
kernel = torch.reshape(kernel, (1, 1, 3, 3))

print('input size: ', input.shape)
print('kernel size: ', kernel.shape)

output = F.conv2d(input=input, weight=kernel, stride=1)
print('output: ', output)
'''
output:  tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
'''

output2 = F.conv2d(input=input, weight=kernel, stride=2)
print('output2: ', output2)
'''
output2:  tensor([[[[10, 12],
          [13,  3]]]])
'''


output3 = F.conv2d(input=input, weight=kernel, stride=1, padding=1)
print('output3: ', output3)
'''
output3:  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]]]])

'''

channel

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值