Среда:
Google Colab (Python 3.12)
PyTorch Lightning: 2.5.6 (последняя версия)
NumPy: 2.2.1 (последняя версия от Colab)
PyTorch: 2.5.1+cu121
Контрольная точка: обучение на более старых версиях в 2023 году.
Код:
Код: Выделить всё
import pytorch_lightning as pl
from experiment import LitModel
# Attempt 1: Direct loading
model = LitModel.load_from_checkpoint(
'checkpoints/ffhq256_autoenc.ckpt',
map_location='cuda',
strict=False
)
```
### **Error:**
```
ModuleNotFoundError: No module named 'numpy.lib.function_base'
Traceback:
File "/content/DiffProtect/experiment.py", line 8, in
import pytorch_lightning as pl
...
Что я пробовал:
Попытка 1: альтернативный метод загрузки
Код: Выделить всё
import torch
checkpoint = torch.load('checkpoints/ffhq256_autoenc.ckpt', map_location='cuda')
model = LitModel(conf)
model.load_state_dict(checkpoint['state_dict'], strict=False)
Попытка 2: проверка версии numpy
Код: Выделить всё
import numpy as np
print(np.__version__) # 2.2.1
Исследование:
В руководстве по миграции NumPy 2.0 упоминается, что numpy.lib.function_base устарела.
PyTorch Lightning изменил формат контрольной точки между версиями.
Репозиторий DiffProtect последний раз обновлялся в 2023 году (до NumPy 2.0).
Вопрос:
Как мне успешно загрузить эту старую контрольную точку в современной среде Google Colab? Мне нужно решение, которое:
Дополнительный контекст:
Структура контрольной точки включает в себя:
state_dict: веса модели
hyper_parameters: конфигурация, включающая объект conf
Метаданные PyTorch Lightning
Есть ли способ:
безопасно понизить версию numpy до 1.x в Colab?
Загрузить контрольную точку в режиме совместимости?
Извлечь только веса модели и загрузить их вручную?
Будем признательны за любые рекомендации по загрузке контрольных точек старой модели ML в современных средах!
Подробнее здесь: https://stackoverflow.com/questions/798 ... en-loading
Мобильная версия