PyTorch
一、dataset
和dataloader
📌
- Dataset:存储数据样本和期望值
- Dataloader:将数据分组为批次,支持多进程
二、tensor
📌
- 概念:高维矩阵
- 1-D:声音
- 2-D:黑白图片
- 3-D:彩色照片
- ……
1、常见操作📌
-
查看大小、维度
-
直接从数据(列表或numpy.ndarray)创建张量
-
创建全零或全一的张量
-
转置
-
sqeeze
/unsqeeze
-
cat
2、设备📌
-
默认情况下,张量和模块将在CPU上进行计算,使用
.to()
方法将张量移动到适当的设备 -
CPU
- GPU
Tip
- 检查计算机是否有 NVIDIA GPU
- 使用
torch.cuda.is_available()
函数来检查你的计算机是否支持 NVIDIA GPU。
- 使用
这个函数会返回一个布尔值,如果计算机有可用的 NVIDIA GPU 并且正确安装了 CUDA,那么返回 True
,否则返回 False
。
3、自动求导📌
三、torch.nn
📌
1、激活函数📌
2、损失函数📌
- 均方误差(Mean Squared Error):用于回归任务。
- 交叉熵(Cross Entropy):用于分类任务。
- 计算损失:
四、torch.optim
📌
五、训练流程📌
- 设置
- 训练循环
- 交叉验证循环
- 测试集循环
- 保存
- 加载
Tip
-
model.eval()
- 改变某些模型层的行为,例如 dropout 和 batch normalization。
-
with torch.no_grad()
- 防止计算被添加到梯度计算图中。通常用于防止在验证/测试数据上意外进行训练。
MNIST
Train + Test | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
|
GUI | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
|