Pytorch

#主要组成模块

机器/深度学习的 整体流程

对数据预处理(格式统一和必要的数据变换)——>选择模型(设定损失函数和优化方法以及对应的超参数)——>用模型去拟合训练集数据,宁在验证集/训练集上计算模型表现;

1.基本配置

对于一个Pytorch项目,需要导入一些常用包来快速实现功能,如os、numpy等,还需要调用一些自身模块,如Torch、torch.nn等;以下为一些建议导入的包导入方式;

import os

import numpy as np

import torch.nn

import torch.nn as nn

from torch.utils.data import Dateset,DataLoader

import torch.optim as optimizer

可以统一设置的超参数,方便后续调试修改:

batch size;初始学习率(初始);训练次数(max-epochs);GPU配置;

GPU的两种常见设置方式:

方案一:使用os.environ,如果使用GPU不用设置;

os.environ['CUDA_VISIBLE_DEVICES']=‘0,1’

方案二:使用device,后续对要使用的GPU变量用.to(device)即可;

device=torch.device("cuda:1" if torch.cuda.is_available()

2.数据读入

数据读入是通过Dataset+DataLoader的方式完成,Dataset定义数据的格式和数据变换形式,DataLoader用iterative的方式不断读入批次数据;

可用定义的Dataset类来实现灵活的数据读取,定义的类需要继承Pytorch自身的Dataset类;主要包含三个函数:

_init_:用于向类中传入外部参数,同时定义样本集;

_getitem_:用于逐个读取样本集合中的元素,可以进行一定的变换,并将返回训练、验证所需数据;

_len_:返回数据集的样本数;

构建好Dataset后,可以使用DataLoader来按批次读入数据。

3.模型构建

神经网络的构造方法

Module类是nn模块里提供的一个模型构造类,是所有神经网络模块的基类,我们可以继承它来定义想要的模型;

神经网络中特殊层的构造

a.不含模型参数的层

下面构造的MyLayer类通过继承Module类自定义了一个将输入减掉均值后输出的层,并将层的计算定义在了forward函数里,这个层不含模型参数;

import torch

form torch import nn

class MyLayer(nn.Module):

def_init_(self,**kwargs):

super(MyLayer,self)._init_(**kwargs)

def forward(self ,x):

return x-x.mean()

测试,实例化该层,然后做向前计算

layer =MyLayer()

layer(torch.tensor([1,2,3,4,5],dtype=torch.float))

tensor([-2.,-1.,0.,1.,2.])

含模型参数的层

可以自定义含模型参数的自定义层,其中的模型参数可以通过训练学出;

二维卷积层

二维卷积层将输入和卷积核做互相关运算,并加上一个标量偏差来得到输出。卷积层的模型参数包括了卷积核和标量偏差。在训练模型的时候,通常先对卷积核随机初始化,然后不断迭代卷积核和偏差;

池化层

池化层每次对输入数据的一个固定形状窗口中的元素计算输出;不同于卷积层里计算输入和核的互相关性,池化层直接计算池化窗口内元素的最大值或平均值。

神经网络的典型训练过程如下:

a.定义包含一些可学习参数的神经网络;

b.在输入数据集上迭代;

c.通过网络处理输入;

d.计算loss(输出和正确的答案);

e.将梯度反向传播给网络的参数;

f.更新网络的权重,一般使用一个简单的规则:weight = weight - learning_rate *gradient

4.模型初始化

……未完

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值