1、简单使用nn模型
简单使用nn模型,自定义一个模型,简单处理时输入数据+1作为输出
import torch
from torch import nn
class module(nn.Module):
def __init__(self):
super().__init__()
def forward(self,input):
output = input + 1
return output
mod = module()
x = torch.tensor(1.0)
output = mod(x)
print(output)
结果:
2、卷积层conv2d的相关知识
相关代码:
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]])
#显示尺寸,不满足conv2的输入尺寸,需要四个参数
print(input.shape)
print(kernel.shape)
#变换尺寸,input变换成batchsize为1,1通道,5x5
input = torch.reshape(input,(1,1,5,5))
kernel = torch.reshape(kernel,(1,1,3,3))
print(input.shape)
print(kernel.shape)
print("\n")
#stride=1,即横向,纵向每次跨度为1
output = F.conv2d(input,kernel,stride=1)
print(output)
#当stride=2时
output2 = F.conv2d(input,kernel,stride=2)
print(output2)
#padding
#padding=1时,把输入图片上下左右都增加一行元素
output3 = F.conv2d(input,kernel,stride=1,padding=1)
print(output3)
结果: