Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解决;ValueError:找到具有dim 3的数组。预计估计值<;=2.“;?_Python_Numpy_Opencv - Fatal编程技术网

Python 如何解决;ValueError:找到具有dim 3的数组。预计估计值<;=2.“;?

Python 如何解决;ValueError:找到具有dim 3的数组。预计估计值<;=2.“;?,python,numpy,opencv,Python,Numpy,Opencv,我有一个使用KNN分类器实时检测面具的程序。首先,我使用mask而不是mask在文件夹中捕捉人脸。然后将每个文件夹转换为.NPY文件,如以下程序代码所示: .npy文件在培训计划中处理如下代码: 但在测试时,会出现如下错误: (165, 165, 3) (100, 100, 3) --------------------------------------------------------------------------- ValueError

我有一个使用KNN分类器实时检测面具的程序。首先,我使用mask而不是mask在文件夹中捕捉人脸。然后将每个文件夹转换为.NPY文件,如以下程序代码所示:

.npy
文件在培训计划中处理如下代码:

但在测试时,会出现如下错误:

(165, 165, 3)
(100, 100, 3)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-29-0f61e7a9f47a> in <module>
     14             print(face.shape)
     15             #face=face.reshape(1,-1)
---> 16             face=pca.transform(face)
     17             face=std.transform(face)
     18             prediction=knn.predict(face)

c:\users\acer\appdata\local\programs\python\python39\lib\site-packages\sklearn\decomposition\_base.py in transform(self, X)
    124         check_is_fitted(self)
    125 
--> 126         X = self._validate_data(X, dtype=[np.float64, np.float32], reset=False)
    127         if self.mean_ is not None:
    128             X = X - self.mean_

c:\users\acer\appdata\local\programs\python\python39\lib\site-packages\sklearn\base.py in _validate_data(self, X, y, reset, validate_separately, **check_params)
    419             out = X
    420         elif isinstance(y, str) and y == 'no_validation':
--> 421             X = check_array(X, **check_params)
    422             out = X
    423         else:

c:\users\acer\appdata\local\programs\python\python39\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
     61             extra_args = len(args) - len(all_args)
     62             if extra_args <= 0:
---> 63                 return f(*args, **kwargs)
     64 
     65             # extra_args > 0

c:\users\acer\appdata\local\programs\python\python39\lib\site-packages\sklearn\utils\validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator)
    657                     "into decimal numbers with dtype='numeric'") from e
    658         if not allow_nd and array.ndim >= 3:
--> 659             raise ValueError("Found array with dim %d. %s expected <= 2."
    660                              % (array.ndim, estimator_name))
    661 

ValueError: Found array with dim 3. Estimator expected <= 2.

(165、165、3)
(100, 100, 3)
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
14打印(面部形状)
15#面=面。重塑(1,-1)
--->16面=主分量变换(面)
17面=标准变换(面)
18预测=knn.预测(面)
c:\users\acer\appdata\local\programs\python39\lib\site packages\sklearn\decomposition\\u base.py in transform(self,X)
124检查是否已安装(自身)
125
-->126 X=自我验证数据(X,数据类型=[np.float64,np.float32],重置=False)
127如果self.mean不是无:
128 X=X-自身平均值_
c:\users\acer\appdata\local\programs\python39\lib\site packages\sklearn\base.py in\u validate\u data(self、X、y、reset、validate\u单独,**检查参数)
419 out=X
420 elif isinstance(y,str)和y==“无验证”:
-->421 X=检查数组(X,**检查参数)
422 out=X
423其他:
c:\users\acer\appdata\local\programs\python39\lib\site packages\sklearn\utils\validation.py在内部文件中(*args,**kwargs)
61额外参数=len(参数)-len(所有参数)
62如果额外参数63返回f(*参数,**kwargs)
64
65#额外参数>0
检查数组中的c:\users\acer\appdata\local\programs\python39\lib\site packages\sklearn\utils\validation.py(数组、接受稀疏、接受大稀疏、数据类型、顺序、复制、强制所有有限、确保2d、允许nd、确保最小样本、确保最小特征、估计器)
657“转换为十进制数,其中dtype='numeric'”)来自e
658如果不允许且array.ndim>=3:

-->659升值错误("找到暗%d的数组。%s预期它可能需要图像的灰度版本。请尝试使用
pillow
将其转换为灰度,代码如下:@hypadr1v3我已将数据库中的所有图像更改为灰度,但错误仍然相同。问题似乎是由于不同类型的数组维度造成的数据集文件(.npy)中的。在我的数据集中,我有一个二维数组值,而对于PCA,它需要3个维度,但我不知道如何更改数组的维度。重塑