4-基础实战
文章目录
2.1-神经网络学习机制
2.2-深度学习在实现上的特殊性
- 样本量大,需要分批(Batch)加载
- 逐层、模块化搭建网络(卷积层、全连接层、LSTM层)
- 多样化的损失函数和优化器设计*
- GPU使用
- 以上各个模块的配合
2.3-PyTorch的深度学习模块
- 边学边练,通过实战案例巩固模块知识学习
- 任务:FashionMINIST时装分类
- 数据简介
- 10类图片
- 32*32px
2.3.1-基本配置
- 导入基本包
os
,numpy
,pandas
,torch.nn
,torch.optim
,torch.utils.data
- 超参数
batch size
,learning rate
,max_epochs
,num_workers
- 硬件
import os
import numpy as np
import pandas as pd
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import Dataset, DataLoader
# 配置GPU,这里有两种方式
## 方案一:使用os.environ
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
# 方案二:使用“device”,后续对要使用GPU的变量用.to(device)即可
device = torch.device("cuda:1" if torch.cuda.is_available() else "cpu")
## 配置其他超参数,如batch_size, num_workers, learning rate, 以及总的epochs
batch_size = 256
num_workers = 4 # 对于Windows用户,这里应设置为0,否则会出现多线程错误
lr = 1e-4
epochs = 20
设置数字变换
# 首先设置数据变换
from torchvision import transforms
# 图片大小为32,手写数字为28,当然多少没关系
image_size = 28
data_transform = transforms.Compose([
# 使用 PIL 库图像
# 取决于内置数据集
transforms.ToPILImage(),
# 这一步取决于后续的数据读取方式,如果使用内置数据集读取方式则不需要
transforms.Resize(image_size),
transforms.ToTensor() # 以tensor形式输入到表格中
])
2.3.2-数据读入
通过Dataset类读取数据
函数:__init__
,__getitem__
,__len__
通过DataLoader
加载数据以供模型输入
用自带方法读取数据
from torchvision import datasets
train_data = datasets.FashionMNIST(root='./', train=True, download=True, transform=data_transform)
test_data = datasets.FashionMNIST(root='./', train<