torch.nn
class torch.nn.
Conv2d
(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
stride:控制交叉相关、单个数字或元组的跨步。
padding:控制两侧隐式零边线的数量,用于填充每个维度的点数。
dilation:控制核点之间的间距;也被称为a trous算法。这很难描述,但是这个链接很好地展示了膨胀的作用。
groups:控制输入和输出之间的连接。in_channels和out_channels都必须可以被组整除。
bias:如果为真,则在输出中添加一个可学习的偏差。
class torch.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))
torchvision.transforms
class torchvision.transforms.
Normalize
(mean, std)
用均值和标准差对张量图像进行标准化处理。给定平均值:(M1,…,Mn)和std:(S1,…,Sn)对于n个通道,这个变换将标准化每个通道的输入。
注意:这种转换是就地进行的,即它改变了输入张量。
class torchvision.transforms.
ToTensor
转换PIL图像或numpy为tensor。ndarray (H x W x C)在[0,255]范围内。FloatTensor(C x H x W)在[0.0,1.0]范围内。
class torchvision.transforms.
RandomCrop
(size, padding=None, pad_if_needed=False, fill=0, padding_mode='constant')
裁剪后期望的输出大小。如果size是int而不是序列(h, w),则生成一个正方形裁剪(size, size)。
class torchvision.transforms.
RandomHorizontalFlip
(p=0.5)
水平翻转给定的PIL图像,用给定的概率随机翻转。
p:图像被翻转的概率。默认值为0.5(float)