DiffProtect: как исправить «Нет модуля с именем numpy.lib.function_base» при загрузке модели PyTorch Lightning из контроPython

Программы на Python
Ответить
Anonymous
 DiffProtect: как исправить «Нет модуля с именем numpy.lib.function_base» при загрузке модели PyTorch Lightning из контро

Сообщение Anonymous »

Я пытаюсь загрузить предварительно обученную модель PyTorch Lightning из репозитория DiffProtect (опубликованного в 2023 году) в Google Colab, но сталкиваюсь с ошибкой совместимости.
Среда:
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)
Ошибка:

Код: Выделить всё

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.lib.function_base был удален в NumPy 2.0, но контрольная точка была создана в NumPy 1.x.
В руководстве по миграции NumPy 2.0 упоминается:

Код: Выделить всё

numpy.lib.function_base
устарел
PyTorch Lightning менял формат контрольной точки между версиями
Последний раз репозиторий DiffProtect обновлялся в 2023 году (до NumPy 2.0)

Вопрос:
Как я могу успешно загрузить эту старую контрольную точку в современной среде Google Colab? Мне нужно решение, которое:
  • Работает в Google Colab (среда 2024/2025)
  • Загружает контрольную точку PyTorch Lightning 2023 года
  • Не нарушает другие зависимости
  • Позволяет модели выполнять логические выводы на графическом процессоре


Подробнее здесь: https://stackoverflow.com/questions/798 ... en-loading
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»