Ошибка округления при сохранении с использованием np.savetxt - PullRequest
0 голосов
/ 25 апреля 2019

Вот часть более длинного кода:

factors = torch.from_numpy(variables)
factors = factors.cuda()
factors = factors.float()

product = torch.from_numpy(f_dependent)
product = product.cuda()
product = product.float()

data_translated = factors.clone()
data_translated[:,0] = factors[:,0]*factors[:,1]
data_translated =  np.delete(data_translated, 1, axis=1)
data_translated = np.column_stack((data_translated,product))

np.savetxt("data.txt", data_translated)

Например, первая запись коэффициентов [:, 0] равна 1.6893829269675686, а для факторов [:, 1] - 1.0080762023262633. Если я умножу их вместе с помощью калькулятора (или просто простого питона), я получу это: 1.7030267252922935. Однако, когда я проверяю файл data.txt, это номер 1.703026652336120605e + 00. Начиная с 7-го знака после запятой они различаются, и это действительно имеет значение для моего кода. Также меняются и другие числа (которые я вообще не касаюсь), начиная с 6-7-го знака после запятой. Может кто-нибудь сказать мне, почему это происходит и как я могу это исправить? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...