pytorch笔记——基础

一、概览

使用流程,手写数字为例

1.构建网络模型

在这里插入图片描述

2.加载数据集

在这里插入图片描述

3.实例化网络,损失函数,优化器

在这里插入图片描述

4.批量梯度下降训练

在这里插入图片描述

二、Dataset、Model、Loss、Optimizer

1.加载自己的数据集

1)继承torch.utils.data.Dataset类,并重写__ len() __ 和__ getitem __()函数,在__getitem()__中对数据进行预处理。
2) 用torch.utils.data.DataLoader()函数对数据集进行封装。

2.网络模型Model

继承torch.nn.Module类, __ init__()中初始化网络各层,forward()中按网络结构实现计算图。

常用层:
1)卷积层:输出尺寸:floor((W-K+2P)/S+1)
torch.nn.Conv2d(in_channels,out_channels,kernel_size,stride,padding,dilation,groups,bias)
2)池化层:
torch.nn.MaxPool2d(kernel_size,stride,padding,dilation,return_indices,ceil_mode)
torch.nn.AvgPool2d()
3)全连接层:
torch.nn.Linear(in_channels,out_channels)
4)激活函数层:
torch.nn.Sigmoid(inpalce)
torch.nn.ReLU(inplace)
torch.nn.Softmax(dim)
5)Dropout层:torch.nn.Dropout(p,inplace) 每个神经元以概率p保留,增强泛化性能
BN层:torch.nn.BatchNorm2d(num_features) 改变内部节点数据分布,避免参数陷入饱和区
6)反卷积:torch.nn.ConvTranspose2d(in_channels,out_channels,kernel_size,stride,padding,output_padding,bias)

3.损失函数Loss:

1)内置
MSE均方差损失:torch.nn.MSELoss()
MAE平均绝对损失:torch.nn.L1Loss()
交叉熵损失:torch.nn.CrossEntropyLoss()

2)自定义损失函数
继承torch.nn.Module类,自定义计算过程,同网络定义类似。

4.优化器

SGD(小批量梯度下降算法):torch.nn.optim.SGD(paras,lr)
Adam(学习率自适应):torch.nn.optim.Adam()

三、常用语句块

1.设备选择

use_gpu=True
gpu_name=0
if torch.cuda.is_available() and use_gpu:
    DEVICE = torch.device("cuda:"+str(gpu_name))
    # 每次训练计算图改动较小使用,在开始前选取较优的基础算法(比如选择一种当前高效的卷积算法)
    torch.backends.cudnn.benchmark = True
else:
    DEVICE=torch.device("cpu")

2.固定随机

random.seed(1)
np.random.seed(1)
torch.manual_seed(1)
if use_cuda:
    torch.cuda.manual_seed(1)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值