我想在Python中使用open source person re-identification library
为此,我必须遵循他们存款git上的说明:
git clone https://github.com/Cysu/open-reid.git
cd open-reid
python setup.py install
python examples/softmax_loss.py -d viper -b 64 -j 2 -a resnet50 --logs-dir logs/softmax-loss/viper-resnet50
我收到以下错误:
from sklearn.utils.extmath
import pinvh
ImportError:无法导入名称'pinvh'
我尝试使用PyTorch的早期版本(0.4.1、0.4.0和1.0.1)创建虚拟环境,但是我总是得到:
File "examples/softmax_loss.py", line 12, in <module>
from reid import datasets
ModuleNotFoundError: No module named 'reid'
我不知道如何解决。
编辑:
您好,谢谢您的回答,问题在于导入方式类似于:
from reid import datasets
from reid import models
from reid.dist_metric import DistanceMetric
from reid.trainers import Trainer
from reid.evaluators import Evaluator
from reid.utils.data import transforms as T
from reid.utils.data.preprocessor import Preprocessor
from reid.utils.logging import Logger
from reid.utils.serialization import load_checkpoint, save_checkpoint
我尝试过:
from ../reid import datasets
但是我有一个
File "examples/softmax_loss.py", line 12
from ../reid import datasets
^
SyntaxError: invalid syntax
编辑2: 重新安装Python 3.7.3和pytorch 1.1.0后,pinvh问题仍然存在...我仍然收到此消息:
ImportError: cannot import name 'pinvh' from 'sklearn.utils.extmath'
如果您可以告诉我如何解决它,或者尝试告诉我它是否有效,请
答案 0 :(得分:0)
由于目录结构如下:
/(root)-->|
|
|-->reid |--> (contents inside reid)
|
|
|-->examples | -->softmax_loss.py
|
|-->(Other contents in root directory)
可以观察到reid
与softmax_loss.py
不在同一目录中,而是在父目录中。
因此,在文件softmax_loss.py中的第12行及以下行中,将reid
替换为../reid
,这将在父目录中查找目录reid。
另一种方法是使用:import ../reid as R
或任何其他变量;然后使用from R import datasets
,依此类推
答案 1 :(得分:0)
utils.extmath.pinvh
在scikit-learn版本0.19中已弃用,在版本0.21中已删除。因此,简单的解决方法是使用早期版本的scikit-learn。