bad input shape():训练分类器时的Openface问题

时间:2017-10-24 11:20:06

标签: python scikit-learn deep-learning face-recognition dlib

我正按照我在网上找到的这篇精彩教程的说明,通过照片识别人物:Modern Face Recognition with Deep Learning

这个项目使用Python,Openface和dlib来完成任务

我已经能够设置一切并正常工作但在运行以下命令时遇到问题:

python3 ./demos/classifier.py train ./generated-embeddings/

在终端上执行上述命令会出现以下错误:

> /usr/local/lib/python3.5/dist-packages/sklearn/utils/fixes.py:64: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
 if ‘order’ in inspect.getargspec(np.copy)[0]:
Loading embeddings.
Traceback (most recent call last):
 File “./demos/classifier.py”, line 291, in <module>
 train(args)
 File “./demos/classifier.py”, line 112, in train
 le = LabelEncoder().fit(labels)
 File “/usr/local/lib/python3.5/dist-packages/sklearn/preprocessing/label.py”, line 110, in fit
 y = column_or_1d(y, warn=True)
 File “/usr/local/lib/python3.5/dist-packages/sklearn/utils/validation.py”, line 485, in column_or_1d
 raise ValueError(“bad input shape {0}”.format(shape))
ValueError: bad input shape ()

我的设置

  • UBUNTU 16.04 LTS 64 BIT
  • Python 3.5.2
  • dlib 19.7.0
  • openface

有没有人知道发生了什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我解决了错误,我在这里发布了解决方案,希望它对遇到此问题的任何其他用户都有用。

来自执行命令的错误输入形状错误

python3 ./demos/classifier.py train ./generated-embeddings/
通过添加以下代码行修改文件 openface / demos / classifier.py 可以轻松解决

labels=list(labels)
在拟合函数调用之前

le = LabelEncoder().fit(labels)

默认情况下,type(labels)返回map以及导致错误的原因,因为LabelEncoder.fit()函数接受类似于shape(n_samples,)的数组而不是map对象。 / p>

希望这个帮助