gpt4 book ai didi

pytorch - 断言错误 : Torch not compiled with CUDA enabled

转载 作者:行者123 更新时间:2023-12-03 17:07:32 29 4
gpt4 key购买 nike

来自 https://pytorch.org/

在 MacOS 上安装 pytorch 说明如下:

conda install pytorch torchvision -c pytorch
# MacOS Binaries dont support CUDA, install from source if CUDA is needed

为什么要在不启用 cuda 的情况下安装 pytorch?

我问的原因是我收到错误:

--------------------------------------------------------------------------- AssertionError Traceback (most recent call last) in () 78 # predicted = outputs.data.max(1)[1] 79 ---> 80 output = model(torch.tensor([[1,1]]).float().cuda()) 81 predicted = output.data.max(1)[1] 82

~/anaconda3/lib/python3.6/site-packages/torch/cuda/init.py in _lazy_init() 159 raise RuntimeError( 160 "Cannot re-initialize CUDA in forked subprocess. " + msg) --> 161 _check_driver() 162 torch._C._cuda_init() 163 _cudart = _load_cudart()

~/anaconda3/lib/python3.6/site-packages/torch/cuda/init.py in _check_driver() 73 def _check_driver(): 74 if not hasattr(torch._C, '_cuda_isDriverSufficient'): ---> 75 raise AssertionError("Torch not compiled with CUDA enabled") 76 if not torch._C._cuda_isDriverSufficient(): 77 if torch._C._cuda_getDriverVersion() == 0:

AssertionError: Torch not compiled with CUDA enabled



尝试执行代码时:
x = torch.tensor([[0,0] , [0,1] , [1,0]]).float()
print(x)

y = torch.tensor([0,1,1]).long()
print(y)

my_train = data_utils.TensorDataset(x, y)
my_train_loader = data_utils.DataLoader(my_train, batch_size=2, shuffle=True)

# Device configuration
device = 'cpu'
print(device)

# Hyper-parameters
input_size = 2
hidden_size = 100
num_classes = 2


learning_rate = 0.001

train_dataset = my_train

train_loader = my_train_loader

pred = []


for i in range(0 , model_iters) :
# Fully connected neural network with one hidden layer
class NeuralNet(nn.Module):
def __init__(self, input_size, hidden_size, num_classes):
super(NeuralNet, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(hidden_size, num_classes)

def forward(self, x):
out = self.fc1(x)
out = self.relu(out)
out = self.fc2(out)
return out

model = NeuralNet(input_size, hidden_size, num_classes).to(device)

# Loss and optimizer
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)

# Train the model
total_step = len(train_loader)
for epoch in range(num_epochs):
for i, (images, labels) in enumerate(train_loader):
# Move tensors to the configured device
images = images.reshape(-1, 2).to(device)
labels = labels.to(device)

# Forward pass
outputs = model(images)
loss = criterion(outputs, labels)

# Backward and optimize
optimizer.zero_grad()
loss.backward()
optimizer.step()
{:.4f}'.format(epoch+1, num_epochs, i+1, total_step, loss.item()))

output = model(torch.tensor([[1,1]]).float().cuda())

要修复此错误,我需要从已安装 cuda 的源代码安装 pytorch 吗?

最佳答案

总结和扩展评论:

  • CUDA 是 Nvidia 专有(显然未经许可)技术,允许在 GPU 处理器上进行通用计算。
  • 很少有 Macbook Pro 拥有支持 Nvidia CUDA 的 GPU。看看here查看您的 MBP 是否具有 Nvidia GPU。然后,看表here查看该 GPU 是否支持 CUDA
  • iMac、iMac Pro 和 Mac Pro 的故事相同。
  • 因此,在 MacOS 上默认安装 PyTorch 时不支持 CUDA

  • 这个 PyTorch github 问题提到很少有 Mac 有 Nvidia 处理器: https://github.com/pytorch/pytorch/issues/30664

    如果您的 Mac 确实具有支持 CUDA 的 GPU,那么要在 MacOS 上使用 CUDA 命令,您需要使用正确的命令行选项从源代码重新编译 pytorch。

    关于pytorch - 断言错误 : Torch not compiled with CUDA enabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54014220/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com