下面是详细讲解“Linux安装Pytorch1.8GPU(CUDA11.1)的实现”的完整攻略。在进行安装之前,需要确保计算机上已经安装好了相应的CUDA和cuDNN。
第一步:安装Anaconda
可以在Anaconda官网上下载对应的安装程序,选择相应的操作系统和版本即可。
第二步:创建虚拟环境
在终端中输入以下命令来创建一个名为“pytorch”(也可以自己取一个名字)的虚拟环境:
conda create --name pytorch python=3.8
第三步:激活虚拟环境并安装PyTorch
在终端中输入以下命令激活虚拟环境:
conda activate pytorch
接着,使用pip安装PyTorch:
pip install torch torchvision torchaudio -f https://download.pytorch.org/whl/cu111/torch_stable.html
-f参数是指在指定的URL中寻找stable版的PyTorch。
第四步:测试安装
输入以下命令以测试PyTorch是否成功安装:
import torch
x = torch.randn(2, 3).cuda()
print(x)
如果没有报错,输出结果应该是类似于以下的内容:
tensor([[-0.6672, 1.1235, -0.8539],
[-0.2701, -1.2901, -2.0667]], device='cuda:0')
示例1:在代码中使用PyTorch
以下演示如何使用安装好的PyTorch来构建一个简单的神经网络,代码示例如下:
import torch
import torch.nn as nn
import torch.optim as optim
# 构建神经网络
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(784, 512)
self.fc2 = nn.Linear(512, 256)
self.fc3 = nn.Linear(256, 10)
def forward(self, x):
x = x.view(-1, 784)
x = torch.relu(self.fc1(x))
x = torch.relu(self.fc2(x))
x = self.fc3(x)
return x
# 训练模型
net = Net().cuda()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.01)
for epoch in range(10):
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data
inputs, labels = inputs.cuda(), labels.cuda()
optimizer.zero_grad()
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 1000))
running_loss = 0.0
示例2:使用CUDA加速矩阵计算
以下演示如何使用安装好的PyTorch和CUDA来加速矩阵计算,代码示例如下:
import torch
import time
# 定义矩阵大小
batch_size, matrix_size = 128, 8192
# 创建CPU和GPU上的随机矩阵
x_cpu, y_cpu = torch.randn(batch_size, matrix_size), torch.randn(batch_size, matrix_size)
x_gpu, y_gpu = x_cpu.cuda(), y_cpu.cuda()
# 用CPU计算矩阵乘法
start = time.time()
res_cpu = x_cpu.mm(y_cpu.t())
end = time.time()
print("CPU: ", end - start)
# 用GPU计算矩阵乘法
start = time.time()
res_gpu = x_gpu.mm(y_gpu.t())
end = time.time()
print("GPU: ", end - start)
输出结果应该类似于以下内容:
CPU: 3.500962495803833
GPU: 0.006424903869628906
可以看到,使用了GPU后,矩阵计算的速度大幅提升。