Pytorch 简明教程
本文最后更新于 2025年6月16日 下午
一、Tensor
性质 | Features
tensor是一个特殊的数据结构,与array和matrix类似常见用法:在 PyToch 中,用
tensor来编码模型的input,output和paramater区别:与 NumPy 中的
ndarray相似,唯一不同的就是tensor可以跑在 GPUs 以及其他硬件加速器上面Bridge with NumPy:
tensor与ndarray可以用过共享内存的方式直接转换,而省去了copy这一操作自微分优化:
tensor可以automatic differentiation
创建 | Initialization
- 从数据:
torch.tensor(data) - 从NumPy ndarray:
torch.from_numpy(np_array) - 从其他Tensor:
torch.ones_like(tensor) - 随机数创建:
torch.rand() - 常数创建:
torch.ones(),torch.zeros()
属性 | Attributes
shape:描述 tensor 形状dtype:描述 tensor 数据类型device:描述 tensor 运行设备
操作 | Operations
- 所有的
1200+个操作,都支持在不同的设备上运行 - 默认的
tensor存储在CPU上,转存其他设备用tensor.to()方法 - 转存
tensor费时费内存
- Standard numpy-like indexing and slicing
- Joining tensors
- Arithmetic operations
- In-place operations:add suffix
_to method names of operations
桥接 | Bridge with NumPy
- Tensor to NumPy array:
tensor.numpy() - NumPy array to Tensor:
tensor.from_numpy()
二、Datasets & DataLoaders
通常处理 data sample 的操作代码十分繁琐并且难以维护, 为了将 dataset code 从 training code 部分解耦出来,提升其可读性和模块化程度。
PyTorch 提供了两个基本构件(primitives):
torch.utils.data.Datasettorch.utils.data.DataLoader
自定义 | Customized Datasets
官方示例:
1 | |