pytorch 目前在深度学习具有重要的地位,比起早先的caffe,tensorflow,keras越来越受到欢迎,其他的深度学习框架越来越显得小众。
数据分析
经典算法
LLM应用
import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets
from torchvision.transforms import ToTensor
pytorch 有两个处理数据的核心模块,torch.utils.data.DataLoader 和 torch.utils.data.Dataset 。
数据集 Dataset 存储样本和对应的标签,而DataLoader 则按设定数据包的大小把数据集迭代进行打包。
针对文本,视觉和音频数据,Pytorch还提供特定数据的模块,例如 TorchText, TorchVision, and TorchAudio, 包括样例数据集。为了方便起见,在此使用视觉数据集举例。
torchvision.datasets 模块的Dataset对象,就包含真实世界的很多图像数据,比如CIFAR, COCO。而常用举例的数据包括MNIST手写体,FashionMNIST 等等。
对于每个图像数据集而言,很关键的是有两个参数,方便大家使用,达到事半功倍的效果。它们是
transform 和 target_transform, 提供原始的图像数据转化功能,例如 转为tensor 的函数ToTensor:
# Download training data from open datasets.
training_data = datasets.FashionMNIST(
root="data",
train=True,
download=True,
transform=ToTensor(),
)
# Download test data from open datasets.
test_data = datasets.FashionMNIST(
root="data",
train=False,
download=True,
transform=ToTensor(),
)
深度学习训练数据集都很大,几乎不可能把所有数据一次加载进行训练,通常需要分批次进行加载。pytorch封装数据加载函数,把数据集作为参数,调用DataLoader函数。要把数据打包,一次次分批返回数据包。函数支持自动分批次,抽样,随机打乱,多次加载等功能。下面定义每批数据共有64个样本:
batch_size = 64
# Create data loaders.
train_dataloader = DataLoader(training_data, batch_size=batch_size)
test_dataloader = DataLoader(test_data, batch_size=batch_size)
for X, y in test_dataloader:
print(f"Shape of X [N, C, H, W]: {X.shape}")
print(f"Shape of y: {y.shape} {y.dtype}")
break
Shape of X [N, C, H, W]: torch.Size([64, 1, 28, 28])
Shape of y: torch.Size([64]) torch.int64
很简单吧,里面把数据按批次加载了,每批64个样本,样本为单通道数据,长和宽分别为28像素。
以上代码只是一个简单示例,示例代码中的表达式可以根据实际问题进行修改。
觉得有用 收藏 收藏 收藏
点个赞 点个赞 点个赞
End
GPT专栏文章:
GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案
GPT实战系列-LangChain + ChatGLM3构建天气查询助手
GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)
GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案