【问题标题】:bad input shape () : Openface issue when training the classifierbad input shape () : 训练分类器时的 Openface 问题
【发布时间】:2018-04-05 04:10:15
【问题描述】:

我正在尝试按照我在网上找到的这个很棒的教程的说明通过照片识别人: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 位
  • Python 3.5.2
  • dlib 19.7.0
  • 开放式

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

【问题讨论】:

  • 请发布labels对象的内容。是二维数组吗?

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


【解决方案1】:

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

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

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

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

labels=list(labels)

在fit函数调用之前

le = LabelEncoder().fit(labels)

默认情况下 type(labels) 返回地图,这就是导致错误的原因,因为 LabelEncoder.fit() 函数接受一个类似数组的形状 (n_samples,) 作为输入,而不是地图对象。

希望有帮助

【讨论】:

    猜你喜欢
    • 2015-09-27
    • 2023-03-19
    • 2012-03-05
    • 2021-04-14
    • 1970-01-01
    • 2016-01-22
    • 2021-01-22
    • 2017-08-30
    • 2019-09-28
    相关资源
    最近更新 更多