【问题标题】:ValueError: Expected 2D array, got 1D array instead: array=[0.33913043 0.36086956 0.4173913 ... 0.52608699 0.56956524 0.53913045]ValueError:预期的二维数组,得到一维数组:array=[0.33913043 0.36086956 0.4173913 ... 0.52608699 0.56956524 0.53913045]
【发布时间】:2019-05-10 23:21:09
【问题描述】:

我正在使用 openCV 进行微笑识别,我编写了代码并到达下面的命令行:

def test_recognition(c1, c2):
    subplot(121)
    extracted_face1 = extract_face_features(gray1, face1[0], (c1, c2))
    imshow(extracted_face1, cmap='gray')
    print(predict_face_is_smiling(extracted_face1))
    subplot(122)
    extracted_face2 = extract_face_features(gray2, face2[0], (c1, c2))
    imshow(extracted_face2, cmap='gray')
    print(predict_face_is_smiling(extracted_face2))

然后当我运行下面的代码时:

interact(test_recognition,
         c1=(0.0, 0.3, 0.01),
         c2=(0.0, 0.3, 0.01))

它给了我这个错误:

ValueError Traceback(最近调用 最后)~\Anaconda3\lib\site-packages\ipywidgets\widgets\interaction.py 在更新中(自我,* args) 249 价值 = 小部件.get_interact_value() 250 self.kwargs[widget._kwarg] = 价值 --> 251 self.result = self.f(**self.kwargs) 第252章 253 如果 self.auto_display 和 self.result 不是 None:

在 test_recognition(c1, c2) 3 extract_face1 = extract_face_features(gray1, face1[0], (c1, c2)) 4 imshow(extracted_face1,cmap='灰色') ----> 5 print(predict_face_is_smiling(extracted_face1)) 6 次情节(122) 7 extract_face2 = extract_face_features(gray2, face2[0], (c1, c2))

在 predict_face_is_smiling(extracted_face) 1 def predict_face_is_smiling(extracted_face): ----> 2 return svc_1.predict(extracted_face.ravel())

~\Anaconda3\lib\site-packages\sklearn\svm\base.py in predict(self, X) X 中样本的 574 个类别标签。 第575章 --> 576 y = super(BaseSVC, self).predict(X) 第577章 第578章

~\Anaconda3\lib\site-packages\sklearn\svm\base.py in predict(self, X) 323 y_pred:数组,形状(n_samples,) 第324章 --> 325 X = self._validate_for_predict(X) 326 predict = self._sparse_predict if self._sparse else self._dense_predict 327 返回预测(X)

~\Anaconda3\lib\site-packages\sklearn\svm\base.py 在 _validate_for_predict(自我,X) 456 第457章, --> 458 接受大稀疏=假) 459 如果 self._sparse 而不是 sp.isspmatrix(X): 460 X = sp.csr_matrix(X)

~\Anaconda3\lib\site-packages\sklearn\utils\validation.py 在 check_array(数组,accept_sparse,accept_large_sparse,dtype,顺序, 复制,force_all_finite,ensure_2d,allow_nd,ensure_min_samples, ensure_min_features、warn_on_dtype、估计器) 550 “如果使用 array.reshape(-1, 1) 重塑你的数据” 551 “你的数据有一个单一的特征或 array.reshape(1, -1)” --> 552 "如果它包含单个样本。".format(array)) 553 554 # 未来 np.flexible dtypes 将像 object dtypes 一样处理

ValueError:预期二维数组,得到一维数组:array=[0.33913043 0.36086956 0.4173913 ... 0.52608699 0.56956524 0.53913045]。如果您的数据只有一个,请使用 array.reshape(-1, 1) 重塑您的数据 如果包含单个样本,则为 feature 或 array.reshape(1, -1)。

关于如何解决此问题的任何提示?

提前致谢

【问题讨论】:

    标签: python python-3.x opencv machine-learning jupyter-notebook


    【解决方案1】:

    代码的 TraceBack 字面上包含您问题的答案。

    Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

    您必须创建一个 Numpy NDArray 而不是 Array 并将其重新整形以被代码接受。

    【讨论】:

    • 我知道我必须这样做,但是在哪里?,我必须在哪一行添加这个?
    猜你喜欢
    • 1970-01-01
    • 2021-03-01
    • 2019-08-17
    • 2021-02-23
    • 2018-06-06
    • 2021-09-19
    • 2019-10-07
    • 2019-03-28
    • 2021-04-16
    相关资源
    最近更新 更多