Я хотел бы чередовать вывод и обучение модели в PyTorch, но мне нужно изменить его во время вывода, и у меня есть несколько вопросов по этому поводу.
Могу ли я выгрузить модель из графического процессора с помощью вызывая model.to ('cpu'), сделайте измененную копию (и запустите ее на графическом процессоре), а затем переместите оригинал обратно в gpu, вызвав model.to ('gpu')? Другими словами, является ли перемещение модели gpu-> cpu-> gpu операцией без потерь? Что происходит с параметрами, переданными оптимизатору? Я не хочу терять состояние оптимизатора
Как лучше всего сделать копию модели в памяти? Я могу сохранить его, а затем перезагрузить копию, но не уверен, что это необходимо просто для копирования.
Если я хочу выполнить вывод с половинной точностью (в данном случае более чем в 2 раза быстрее), могу ли я изменить модель на половину, а потом поменять обратно? Это без потерь? (Сохраняет ли модель всю точную копию всего или заменяет гири с половинной точностью на месте?)
Модель похожа на ResNet50. Недостаточно памяти GPU для двух моделей :)