Pytorch学习笔记(二):卷积神经网络中常见的函数解读

 一、Torch函数

1.torch.tensor(data*dtype=Nonedevice=Nonerequires_grad=Falsepin_memory=False)

        将一个数据转换为tensor数据类型。

2.torch.reshape(inputshape)

       返回一个张量,该张量具有与输入相同的数据和元素数,但具有指定的形状。一般的数据形状为(x,y),而一般在神经网络中输入的数据要满足(m,n,x,y)。

3.torch.zeros(*size*out=Nonedtype=Nonelayout=torch.strideddevice=Nonerequires_grad=False)

        返回一个用标量值0填充的张量,形状由变量参数大小定义。即产生一个全为0的tensor数据,形状可以自己设置

4.torch.ones(*size*out=Nonedtype=Nonelayout=torch.strideddevice=Nonerequires_grad=False)

        返回一个用标量值1填充的张量,形状由变量参数大小定义。即产生一个全为1的tensor数据,形状可以自己设置

5.torch.flatten(inputstart_dim=0end_dim=- 1)

        通过将输入重塑为一维张量,将其展平。

6.torch.save(objfpickle_module=picklepickle_protocol=DEFAULT_PROTOCOL_use_new_zipfile_serialization=True)

        保存一个训练好的模型文件并指定其文件名。

7.torch.load(fmap_location=Nonepickle_module=pickle**pickle_load_args)

        加载已训练好的模型。

8.torch.optim.SGD(paramslr=required parametermomentum=0dampening=0weight_decay=0nesterov=False*maximize=Falseforeach=None)

        设置优化器,实现随机梯度下降

 二、TorchVision函数 

1.torchvision.datasets.CIFAR10(root:strtrain:bool= Truetransform: Optional[Callable] = Nonetarget_transform: Optional[Callable] = Nonedownload: bool = False)

        torchvision.datasetsx.xxxxxxx 来加载一些常见的开源数据集,将download设置为True可以在官网下载到root设定的文件夹。如果下载太慢,也可以自己去官网下载,再利用这个函数加载即可。

2.torchvision.transforms.ToTensor()

       将PIL图像或将numpy的ndarray转换为(H,W,C)的Tensor数据类型,且如果PIL图像属于其中一种模式(L、LA、P、I、F、RGB、YCbCr、RGBA、CMYK、1)或numpy中的元素为uint类型时,将图像从[0,255归一化到[0,1.0]之间。

3.torchvision.transforms.Normalize(meanstdinplace=False)

        输入均值和标准差后,用平均值和标准偏差对张量图像进行归一化。此转换不支持PIL图像

4.torchvision.transforms.Resize(sizeinterpolation=InterpolationMode.BILINEAR: 'bilinear'max_size=Noneantialias=None)

        将输入图像调整为给定大小。

5.torchvision.transforms.Cpmpose(transforms)

        将多种要进行的操作组合在一起一起进行。比如以下代码。将图片转换为Tensor数据类型和改变数据的形状组合在一起进行。

tensor_trans = transforms.ToTensor()  
trans_resize_2 = transforms.Resize(512)
trans_compose = transforms.Compose([trans_resize_2, tensor_trans])
img_resize_2 = trans_compose(img)

6.torchvision.transforms.RandomCrop(sizepadding=Nonepad_if_needed=Falsefill=0padding_mode='constant')

        在给定图像上随机裁剪size大小的图像,其余参数一般默认。

 三、torch.nn函数(搭建卷积神经网络)

1.torch.nn.Conv2d(in_channelsout_channelskernel_sizestride=1padding=0dilation=1groups=1bias=Truepadding_mode='zeros'device=Nonedtype=None)

        设置一个卷积层。常用参数为:in_channels=输入通道,out_channels=输出通道,kernel_size=卷积核大小,stride=卷积步数,padding=周边填充的大小。

2.torch.nn.MaxPool2d(kernel_sizestride=Nonepadding=0dilation=1return_indices=Falseceil_mode=False)

        设置一个池化层。常用参数为:kernel_size=池化核大小,stride=池化步数。

3.torch.nn.ReLU(inplace=False)

        设置一个ReLU激活函数。

4.torch.nn.Linear(in_featuresout_featuresbias=Truedevice=Nonedtype=None)

        设置一个全连接层。in_features为输入样本的大小,out_features为输出样本的大小,bias默认为true。如果设置bias = false那么该层将不会学习一个加性偏差。

5.torch.nn.L1Loss(size_average=Nonereduce=Nonereduction='mean')

        创建一个标准来测量输入x和目标y中每个元素之间的平均绝对误差。

6.torch.nn.CrossEntropyLoss(weight=Nonesize_average=Noneignore_index=- 100reduce=Nonereduction='mean'label_smoothing=0.0)

        创建一个计算输入和目标之间的交叉熵损失函数。

7.torch.nn.MSELoss(size_average=Nonereduce=Nonereduction='mean')

        创建一个用于测量输入xx和目标yy中每个元素之间的均方误差损失函数。

8.torch.nn.Flatten()

        将连续的几个维度展平成一个tensor。在卷积神经网络中通常用来将二维图像压缩成一维。

你可能感兴趣的:(pytorch,学习,神经网络)