You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用inception_v3做二分类遇RuntimeError:输入与权重张量类型不匹配

解决RuntimeError:输入与权重设备不匹配问题

问题根源

你只将输入图像和标签迁移到了CUDA设备,但模型本身仍在CPU上,导致输入(GPU张量)和模型权重(CPU张量)无法在同一设备上运算,触发类型不匹配错误。

修复步骤

  1. 将模型迁移到目标设备
    在训练循环开始前,添加代码把模型移到指定设备上:

    model = model.to(device)
    

    注意:如果是加载预训练的InceptionV3,要确保这行代码在加载权重、修改模型适配二分类(比如替换最后全连接层)之后执行。

  2. 迁移损失函数到设备(可选但建议)
    如果损失函数包含可训练参数,同样需要迁移到设备:

    criterion = criterion.to(device)
    
  3. 确保优化器在模型迁移后初始化
    优化器需要跟踪模型参数的设备位置,正确顺序是:

    # 1. 加载并修改模型
    model = torchvision.models.inception_v3(pretrained=True)
    num_ftrs = model.fc.in_features
    model.fc = nn.Linear(num_ftrs, 2)
    # 2. 迁移模型到设备
    model = model.to(device)
    # 3. 初始化优化器
    optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
    

修改后的代码片段示例

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

# --- 新增:迁移模型和损失函数到设备 ---
model = model.to(device)
criterion = criterion.to(device)

for epoch in range(n_epochs):
    print("Epoch: %d "%(epoch+1))
    model.train()
    running_loss = 0.0
    running_correct = 0.0
    total=0
    for i, data in enumerate(train_loader):
        images,labels=data
        images=images.to(device)
        labels=labels.to(device)
        total+=labels.size(0)
        output,aux1,aux2=model(images)
        aux1_loss=criterion(aux1, labels)
        aux2_loss=criterion(aux2, labels)
        output_loss = criterion(output, labels)
        loss = output_loss + 0.3*(aux1_loss + aux2_loss)
        running_loss += loss.item() * output.size(0)
        pred = output.max(1, keepdim=True)[1]
        running_correct+=pred.eq(labels.view_as(pred)).sum().item()
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        traning_accuracy = 100. * running_correct / len(train_loader.dataset)

额外检查点

  • 验证CUDA可用性:执行print(torch.cuda.is_available()),返回True说明GPU可用。
  • 核对张量设备:打印images.device和model.fc.weight.device,两者需一致(均为cuda:0)。

内容的提问来源于stack exchange,提问作者Bhanuprakash Vattikuti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:52:44