torchvision中数据集的使用
tochvision主要处理图像数据,包含一些常用的数据集、模型、转换函数等。torchvision独立于PyTorch,需要专门安装。
torchvision主要包含以下四部分: torchvision.models: 提供深度学习中各种经典的网络结构、预训练好的模型,如:Alex-Net、VGG、ResNet、Inception等。
torchvision.datasets:提供常用的数据集,设计上继承 torch.utils.data.Dataset,主要包括:MNIST(手写数字)、ImageNet、COCO(目标检测)等。
torchvision.transforms:提供常用的数据预处理操作,主要包括对Tensor及PIL Image对象的操作。
torchvision.utils:如保存张量作为图像到磁盘,给一个小批量创建一个图像网格。
张量: 基于向量和矩阵的推广,是一种新的数据类型
张量:基于向量和矩阵的推广,是一种新的数据类型 0维张量 代表的是标量(数字) 1维张量 代表的是向量 2维张量 代表的是矩阵 3维张量 时间序列数据 股价 文本数据 单张彩色图片(RGB) 4维 = 图像 5维 = 视频 它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此可以把它想象成一个数字的水桶。 for example: 表示一个图像可以用三个变量表示:(width, height, channel) = 3D
**创建tensor **
torch.tensor(data, dtype=None, device=None,requires_grad=False)
x = torch.empty(5, 3) # 构造一个未初始化的5*3的矩阵
x = torch.rand(5, 3) # 构造一个随机初始化的矩阵
x = torch.zeros(5, 3, dtype=torch.long) #构造一个矩阵全为 0,而且数据类型是 long(长整型,是long int的缩写,长度至少32位).
x = torch.tensor([5.5, 3]) #构造一个张量 输出:tensor([5.5000, 3.0000])
x = x.new_ones(4, 3, dtype=torch.double)
# 创建一个新的全1矩阵tensor,返回的tensor默认具有相同的torch.dtype tensor类型(dtype=torch.float64)和torch.device 返回的设备(device=torch.device('cuda:0'))
# 也可以像之前的写法 x = torch.ones(4, 3, dtype=torch.double)
pytorch的主要组成模块:
(1)、基本配置
import os
import numpy as np
import torch
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader
import torch.optim as optimizer
- 设置超参数
batch_size = 16
# 批次的大小
lr = 1e-4
# 优化器的学习率
max_epochs = 100
- 设置GPU:默认是CPU,为了加速模型的训练,需要调研GPU
# 方案一:使用os.environ,这种情况如果使用GPU不需要设置
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1' # 指明调用的GPU为0,1号
# 方案二:使用“device”,后续对要使用GPU的变量用.to(device)即可
device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu") # 指明调用的GPU为1号