computer-vision - Google colab:RuntimeError:后端 CPU 的预期对象,但为参数 #4 'mat1' 获得了后端 CUDA
问题描述
我在 MNIST 数据集上训练我的模型,将 Google Colab 用于 GPU 目的设备是 cuda 仍然出现错误,我尝试了其他解决方案它不起作用以及代码在本地 pc 中正常工作,colab 需要什么不同的吗?我之前在aws上做过培训,代码没有问题
epoch = 22
steps = 0
print_every_step = 5
total_train_loss, total_test_loss = [], []
for e in range(epoch):
train_loss = 0
test_loss = 0
accuracy = 0
for images, labels in train_loader:
# clear the gradients of all optimized variables
optimizer.zero_grad()
steps += 1
images, labels = images.to(device), labels.to(device)
# forward pass: compute predicted outputs by passing inputs to the model
log_ps = model(images)
loss = criterion(log_ps, labels)
loss.backward()
optimizer.step()
train_loss += loss.item()
if(steps % print_every_step == 0 ):
model.eval()
with torch.no_grad():
for images, labels in test_loader:
images, labels = images.to(device), labels.to(device)
log_ps = model(images)
loss = criterion(log_ps, labels)
test_loss += loss.item()
#calculate accuracy
ps = torch.exp(log_ps)
top_p, top_class = ps.topk(1, dim=1)
equals = top_class == labels.view(*top_class.shape)
accuracy += torch.mean(equals.type(torch.FloatTensor)).item()
print(f"Epoch {epoch+1}/{epochs}.. "
f"Train loss: {train_loss/print_every_step:.3f}.. "
f"Test loss: {test_loss/len(test_loader):.3f}.. "
f"Test accuracy: {accuracy/len(testl_oader):.3f}")
model.train()
total_train_loss.append(train_loss/print_every_step)
total_test_loss.append(test_loss/len(testloader))
解决方案
推荐阅读
- r - 将 geom_point 与 geom_col 和 faceting 一起使用
- java - 如何在 Spark 框架中使用 OPTIONS HTTP 方法?
- html - 可打印的 CSS 页面
- vba - Msxml2.XMLHTTP 会进行不需要的 URL 编码翻译吗?
- vb6 - 在我的 VB6 IDE 中设置 ImageMagick 时遇到问题
- java - 如何在 Java Spark 的列中按唯一名称排序?
- c++ - c++中降序排序是如何工作的?
- html - CSS(引导程序):未突出显示活动/当前选项卡式菜单项
- android - Kotlin /Android Studio 错误:必需可编辑!找到字符串?
- c# - HTML 标记中的 XPath 选择属性