理解神经网络的基本组成部分,如张量、张量运算和梯度递减等算法
[TOC]网络
2.1 安装PyTorch
使用pip或者conda来安装,推荐使用Anaconda Python3发行版dom
最新版本的安装:conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
函数
2.2 实现第一个神经网络
准备数据
- 标量(0维张量)
- 向量(1维张量)
- 矩阵(2维张量)
- 3维张量
- 切片张量
- 4维张量
- 5维张量
- GPU张量
建立数据
- 建立学习参数 变量的建立,requires_grad的值是False;初始化学习参数,requires_grad的值是True
- 神经网络模型
- 网络的实现 PyTorch在torch.nn中提供了称为层(layer)的高级抽象,层将负责多数常见的技术都须要用到的后台初始化和运算工做。
- 损失函数 torch.nn库中有不一样的损失函数,如均方差(又称方差,MSE)损失和交叉熵损失。
- 优化神经网络 不一样的优化器,如Adam、RmsProp和SGD,已在torch.optim包中实现好
加载数据
两个重要的工具类:Dataset类和DataLoader类工具
- Dataset类 任何自定义的数据集类,都要继承自PyTorch的数据集类。 自定义的类必须实现两个函数:len(self)和__getitem__(self,idx)
- DataLoader类 DataLoader类经过提取出大部分复杂度来帮助建立批数据。 DataLoader类位于PyTorch的utils类中,它将数据集对象和不一样的取样器联合,如SequentialSampler和RandomSampler,并使用单进程或多进程的迭代器,为咱们提供批量图片。 取样器是为算法提供数据的不一样策略。 PyTorch团队也维护了两个有用的库,即torchvision和torchtext,这两个库基于Dataset和DataLoader类构建。