Код: Выделить всё
class SubModel(nn.Module):
def __init__(self):
super(SubModel, self).__init__()
self.conv1 = nn.Conv1d(in_channels=1, out_channels=16, kernel_size=2)
def forward(self, x):
...
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.subModel = nn.Conv1d(in_channels=1, out_channels=16, kernel_size=2)
def forward(self, x):
...
RuntimeError: Тип ввода (torch.cuda.FloatTensor ) и тип веса (torch.FloatTensor) должны быть одинаковыми
Затем я попытался переместить подмодель в cuda в конце:
Код: Выделить всё
model.subModel.to(device)
Наконец, я перемещаю conv1D из подмодели в cuda:
Код: Выделить всё
class SubModel(nn.Module):
def __init__(self):
super(SubModel, self).__init__()
self.conv1 = nn.Conv1d(in_channels=1, out_channels=16, kernel_size=2).to(torch.device('cuda' if torch.cuda.is_available() else 'cpu'))
Мой вопрос: существует ли удобный способ переместить модель в cuda, включая все подмодели внутри него? Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/786 ... submodules