Я использую double в качестве входов и выходов моей модели, поэтому я пытаюсь настроить torch на использование float64 вместо float32.В чем именно разница между
torch.set_default_tensor_type(torch.DoubleTensor)
Устанавливает факел по умолчанию. Тип тензора - тип тензора с плавающей запятой t.Этот тип также будет использоваться как тип с плавающей точкой по умолчанию для вывода типа в torch.tensor ().
torch.set_default_dtype(torch.float64)
Устанавливает dtype с плавающей точкой по умолчанию равным d,Этот тип будет использоваться как тип с плавающей точкой по умолчанию для вывода типа в torch.tensor ().
В документации говорится, что установка типа тензора также устанавливает тип d, но я не уверен, когдаЯ бы использовал один над другим.
Я должен упомянуть, что любой оператор исправляет ошибку, которую я видел после перехода от числа с плавающей запятой к двойному:
Traceback (most recent call last):
File "train.py", line 122, in train_model
output = net(action)
File "/opt/anaconda3/lib/python3.7/site- packages/torch/nn/modules/module.py", line 489, in __call__
result = self.forward(*input, **kwargs)
File "models.py", line 25, in forward
return self.fc2(F.relu(self.fc1(x)))
File "/opt/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 489, in __call__
result = self.forward(*input, **kwargs)
File "/opt/anaconda3/lib/python3.7/site-packages/torch/nn/modules/linear.py", line 67, in forward
return F.linear(input, self.weight, self.bias)
File "/opt/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py", line 1352, in linear
ret = torch.addmm(torch.jit._unwrap_optional(bias), input, weight.t())
RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #4 'mat1'