Как типизировать плавающий тензор в длинный тензор без ошибки округления? - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть тензор с плавающей запятой, умноженный матрицей на ее обратную (т. Е. Единичная матрица).Когда я конвертирую в int, это не единичная матрица, т. Е. 1.0000e00 становится 0. Мне нужен способ для Typecast с округлением.

Я пробовал Typecasting с использованием .int () и .long (), ноони округляются до нуля.В частности:

I = tensor([[ 1.0000e+00,  1.1921e-07, -1.1921e-07],
        [-5.9605e-08,  1.0000e+00,  0.0000e+00],
        [-2.9802e-08,  0.0000e+00,  1.0000e+00]])
I = I.long()
print(I)

дает:

tensor([[0, 0, 0],
        [0, 1, 0],
        [0, 0, 0]])

Что должно произойти, это то, что print(I) возвращает

tensor([[1, 0, 0],
        [0, 1, 0],
        [0, 0, 1]])

Какая строка кода изменит мой тензор наЯ хочу?Он должен занимать только одну строку.

1 Ответ

0 голосов
/ 04 февраля 2019

Ответ - перезапустите свой Jupyter kernal или подключитесь к python3.По какой-то причине эта ошибка произошла в ноутбуке Jupyter.

...