使用GPU运算麻烦点,如果你只使用cpu直接就可以了,cuda都不用了
pip3 install torch torchvision torchaudio
1、安装cuda,本人版本12.1,地址https://developer.nvidia.com/cuda-downloads
2、基本配置,安装python-3.11.4,torch-2.3.1+cu121,torchaudio-2.3.1+cu121,torchvision-0.18.1+cu121,下载地址
pytorch-wheels-cu121安装包下载_开源镜像站-阿里云
下载对应python后缀版本的,cu后缀的表示使用GPU的,包管理工具pip3,下载完了本地安装,官网指令下载速度很慢,
本地安装指令 ,本地下载文件路径就可以安装了
pip3 install package
3、安装所有包后,验证版本,查看cuda,torch版本号
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())
输出:
>>> import torch
>>> print(torch.__version__)
2.3.1+cu121
>>> print(torch.version.cuda)
12.1
>>> print(torch.cuda.is_available())
True
>>>
返回True表示所有安装成功了,可以使用GPU来运算了
4、所有配置成功后运行官方demo
Quickstart — PyTorch Tutorials 2.5.0+cu124 documentation
首先训练模型
epoch = 50
本人电脑训练50次准确率82.7%,电脑太卡了,训练慢,你可以加大运算次数让准确率到达90%以上
-------------------------------
loss: 0.371654 [ 64/60000]
loss: 0.492396 [ 6464/60000]
loss: 0.315301 [12864/60000]
loss: 0.531903 [19264/60000]
loss: 0.453852 [25664/60000]
loss: 0.470964 [32064/60000]
loss: 0.315301 [12864/60000]
loss: 0.531903 [19264/60000]
loss: 0.453852 [25664/60000]
loss: 0.470964 [32064/60000]
loss: 0.491820 [38464/60000]
loss: 0.605111 [51264/60000]
loss: 0.436173 [57664/60000]
Test Error:
Accuracy: 82.7%, Avg loss: 0.489933
Done!
Saved PyTorch Model State to model.pth
5、训练完了使用模型
def ai_work():
classes = [
"T-shirt/top",
"Trouser",
"Pullover",
"Dress",
"Coat",
"Sandal",
"Shirt",
"Sneaker",
"Bag",
"Ankle boot",
]
model.eval()
x, y = test_data[0][0], test_data[0][1]
with torch.no_grad():
x = x.to(device)
pred = model(x)
predicted, actual = classes[pred[0].argmax(0)], classes[y]
print(f'Predicted: "{predicted}", Actual: "{actual}"')
输出成功预测到结果:
Shape of X [N, C, H, W]: torch.Size([64, 1, 28, 28])
Shape of y: torch.Size([64]) torch.int64
Using cuda device
NeuralNetwork(
(flatten): Flatten(start_dim=1, end_dim=-1)
(linear_relu_stack): Sequential(
(0): Linear(in_features=784, out_features=512, bias=True)
(1): ReLU()
(2): Linear(in_features=512, out_features=512, bias=True)
(3): ReLU()
(4): Linear(in_features=512, out_features=10, bias=True)
)
)
Predicted: "Ankle boot", Actual: "Ankle boot"