深度学习基本流程(pytorch-pycharm)

头文件:

import torch as t
import torchvision as tv
import torchvision.transforms as transforms
from torch.autograd import Variable
 
import torch.nn as nn
import torch.nn.functional as F


1.数据加载及预处理

1)主要函数:

tv.datasets: 数据路径,是训练集还是测试集,是否需要下载,预处理

t.utils.data.Dataloader:导入数据,制定batch_size

tv.transform.Compose:数据预处理的操作集,如将数据转为Tensor格式,归一化等

主要需要加载训练集和测试集

2)一些技巧:

数据加载:如果是常见开源库,可以用torchvision载入;

加载完以后可视化看一下



2.定义网络(Net)

用一个名为Net的类定义

需要继承torch.nn中的nn.Module(注意M大写)

Net类包括初始化函数和forward函数两部分

1)初始化:_init__(self):    放置有可学习参数的层(注意init前后均是两个下划线)

a)对nn.Module初始化: super(Net, self)__init__()

b)定义卷积和全连接操作(用到nn.Conv2d(), nn.Linear())

2)前向操作:forward(self, x)

输入x,按照网络前向传播步骤,调用初始化中定义的卷积和全连接操作,得到最后输出,并return



3.定义损失函数和优化器

损失函数评估结果与label间的差距,通过backward损失函数,可以计算出每个参数的梯度,然后通过优化器调整参数

损失函数nn中已定义好

import torch.optim as optim

优化器在optim中定义好,调用即可



4.训练网络(目的是得出最佳参数的网络)

Epoch

      i,data

            1)获取训练数据和标签

            2)数据输入网络,前向传播

            3)网络输出和标签输入损失函数,求得损失

            4)清零优化器

            5)损失反向传播

            6)更新优化器,更新参数

            7)累加损失,信息打印,用于监测每个batch的平均损失,主要看损失有没有变小

训练好网络类后创建一个网络,即net=Net()



5.测试网络

看实际标签和预测结果

把测试数据输入网络,将其输出和label比较,看二者一致样本占全部样本比重,即为测试结果



6.在GPU训练

将网络、数据、标签都转为CUDA



7.其他:4.26前的pytorch版本,网络输入为Variable,数据在输入net前需要从Tensor转为Variable,需要from torch.autograd import Variable

4.26 PYtorch中Variable和tensor区别不大,无需再转换

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值