Проблема с 3D — свертками с PyTorch с использованием ROCM/MIOpen-Прямая свертка не может быть выполнена из-за неправильных параметров

#pytorch #amd-rocm

#пыторч #amd-rocm

Вопрос:

Я пытаюсь использовать nn.Conv3d PyTorch для сверточных автокодеров в системе с графическими процессорами AMD. У нас есть последние версии ROCM (4.5) и MIOpen (2.14). Тот же сценарий обучения работает с графическими процессорами NVIDIA. Мне удалось пройти такое же обучение с nn.Conv2D, но для Conv3D я получаю эту ошибку:

 return forward_call(*input, **kwargs)  File ".../lib/python3.9/site-packages/torch/nn/modules/conv.py", line 587, in forward  return self._conv_forward(input, self.weight, self.bias)  File ".../lib/python3.9/site-packages/torch/nn/modules/conv.py", line 582, in _conv_forward  return F.conv3d( RuntimeError: miopenStatusUnknownError MIOpen Error: /MIOpen/src/ocl/convolutionocl.cpp:831: Forward Convolution cannot be executed due to incorrect params  

вот такая сеть:

 class autoencoder(nn.Module):  def __init__(self):  super(autoencoder, self).__init__()  self.conv_en = nn.Conv3d(in_channels=3, out_channels=32, kernel_size=3, stride=1, padding=1)   def forward(self, inp_x):  x = self.conv_en(inp_x)  

вот цикл обучения:

 for inputs, labels in train_loader:  inputs = inputs.permute(0,2,1,3,4).to(torch.device('cuda'))  predictions = distrib_model(inputs)  

Есть какие-нибудь идеи?