Я использовал setattr
, чтобы сохранить некоторую информацию с помощью тензора Pytorch, который можно получить, как и ожидалось:
import torch
before_write = torch.Tensor()
setattr(before_write, "features", "my_features")
print(before_write.features)
> 'my_features'
Неожиданно, когда я записываю тензор на диск, а затем снова читаю его обратно , функции исчезли:
torch.save(before_write, "~/my_tensor")
after_write = torch.load("~/my_tensor")
print(after_write.features)
> AttributeError: 'Tensor' object has no attribute 'features'
Почему атрибут теряется при записи тензора на диск? Это ожидаемое поведение? Будет ли обходной путь для сохранения объектов вместе с тензором?
Примечание: используя пустой класс Python и записывая его с помощью pickle, действительно сохраняет атрибуты.