Pytorch避坑之:RuntimeError: Input type(torch.cuda.FloatTensor) and weight type(torch.FloatTensor) shoul
问题分析
细节举例
# @Time : 2022/1/19 17:57
# @Author : PeinuanQin
# @File : test.py
import torch.nn as nn
import torch
import torch.utils.data as Data
from tqdm import tqdm
from torchvision import transforms,datasets
import numpy as np
import torchvision
from torch.optim import lr_scheduler
class A(nn.Module):
def __init__(self):
super(A,self).__init__()
self.conv = nn.Conv2d(in_channels=3
,out_channels=8
,kernel_size=3)
self.relu = nn.ReLU(inplace=True)
def forward(self,x):
out = self.conv(x)
out = self.relu(out)
B_model = B()
out = B_model(out)
return out
class B(nn.Module):
def __init__(self):
super(B,self).__init__()
self.conv = nn.Conv2d(in_channels=8
,out_channels=16
,kernel_size=3)
self.relu = nn.ReLU(inplace=True)
def forward(self, x):
out = self.conv(x)
out = self.relu(out)
return out

改错思路

class A(nn.Module):
def __init__(self):
super(A,self).__init__()
self.conv = nn.Conv2d(in_channels=3
,out_channels=8
,kernel_size=3)
self.relu = nn.ReLU(inplace=True)
self.b_module = B()
def forward(self,x):
out = self.conv(x)
out = self.relu(out)
out = self.b_module(out)
return out
class B(nn.Module):
def __init__(self):
super(B,self).__init__()
self.conv = nn.Conv2d(in_channels=8
,out_channels=16
,kernel_size=3)
self.relu = nn.ReLU(inplace=True)
def forward(self, x):
out = self.conv(x)
out = self.relu(out)
return out
来源:暖仔会飞