Я пытаюсь запустить код на CPU и CUDA.
Проблема возникает, когда я создаю объекты, так как мне нужно знать, что ожидается.
Мне нужно определить, ожидает ли компьютер тензора CUDA или CPU, прежде чем он будет создан.
Код:
def initilize(self, input):
self.x = torch.nn.Parameter(torch.zeros((1,M))
def run(self,x,state):
B = torch.cat((self.x,h)
Это выводит:
Error: 'Expected object of backend CUDA but got backend CPU for argument #1'
Кодовая идея:
def initilize(self, input):
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
if (expecting_cuda == True):
self.x = torch.nn.Parameter(torch.zeros((1,M)).to(device))
else
self.x = torch.nn.Parameter(torch.zeros((1,M))
def run(self,h):
B = torch.cat((self.x,h)
Вопрос:
Как выяснить, что ожидает компьютер?
Ограничения:
Я выполняю предварительно определенную процедуру проверки, поэтому я не могу отправить аргумент в функцию 'initilize' с информацией о CUDA или CPU.