https://github.com/fenglinglwb/MAT
Однако во время обучения я постоянно получаю следующую ошибку:
Код: Выделить всё
ModuleNotFoundError: No module named 'losses.loss'; 'losses' is not a package
Я использую VS Code Remote SSH для подключения к контейнеру разработки на удаленном сервере.
Внутри контейнера я создал виртуальную среду conda и установил зависимости вручную.
Вот основные версии:
Код: Выделить всё
python version: 3.7.16 (default, Jan 17 2023, 22:20:44)
[GCC 11.2.0]
numpy version: 1.21.6
torch version: 1.13.1+cu117
CUDA available: True
CUDA version: 11.7
cuDNN version: 8500
opencv version: 4.5.5
**1) Добавлено
Код: Выделить всё
__init__.py
(Существование подтверждено с помощью ls loss/, поэтому папка является действительным пакетом Python.)
2) Добавлен каталог MAT в sys.path внутри train.py.
3) Проверено наличие любых других модулей «потери» во всей conda окружающая среда:
Код: Выделить всё
find /opt/conda/envs/py37 -type d -name "losses"
4) Подтверждено, что путь импорта разрешен правильно:
Код: Выделить всё
python -c "import losses; print(losses.__file__)"
Код: Выделить всё
import os, sys
current_dir = os.path.dirname(os.path.abspath(__file__))
if current_dir not in sys.path:
sys.path.insert(0, current_dir)
print(">>> PYTHONPATH:", sys.path[0])
Код: Выделить всё
cd /workspace/data/myname/MAT
python train.py
Несмотря на все это, та же ошибка сохраняется:
Код: Выделить всё
ModuleNotFoundError: No module named 'losses.loss'; 'losses' is not a package
Код: Выделить всё
MAT/
├── train.py
├── training/
│ └── training_loop.py
├── dnnlib/
├── metrics/
├── losses/
│ ├── __init__.py
│ ├── loss.py
│ └── ...
циклический импорт или
неправильная строка имени класса, переданная в dnnlib.util.construct_class_by_name() в Training_loop.py.
Кто-нибудь успешно настроил MAT или разрешил этот вид импорта ошибка?
Будем признательны за любые рекомендации
Подробнее здесь: https://stackoverflow.com/questions/797 ... package-er