Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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:检查目标时出错:预期激活_6具有形状(70),但获得具有形状(71)的数组_Python_Tensorflow_Deep Learning_Conv Neural Network_Face Recognition - Fatal编程技术网

Python ValueError:检查目标时出错:预期激活_6具有形状(70),但获得具有形状(71)的数组

Python ValueError:检查目标时出错:预期激活_6具有形状(70),但获得具有形状(71)的数组,python,tensorflow,deep-learning,conv-neural-network,face-recognition,Python,Tensorflow,Deep Learning,Conv Neural Network,Face Recognition,我正在使用CNN创建人脸识别。我在学习一个教程。我使用的是Tensorflow==1.15 该程序将拍摄70张用户的面部照片,并将其保存在“数据集”文件夹中 我不断得到错误: ValueError:检查目标时出错:预期激活_6具有形状(70),但获得具有形状(71)的数组 输入形状-(32,32,1) 班级(n_班级)-70 输出 Model: "sequential_1" _____________________________________________

我正在使用CNN创建人脸识别。我在学习一个教程。我使用的是Tensorflow==1.15

该程序将拍摄70张用户的面部照片,并将其保存在“数据集”文件夹中

我不断得到错误:

ValueError:检查目标时出错:预期激活_6具有形状(70),但获得具有形状(71)的数组

输入形状-(32,32,1)

班级(n_班级)-70

输出







Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 30, 30, 32)        320       
_________________________________________________________________
activation_1 (Activation)    (None, 30, 30, 32)        0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 28, 28, 64)        18496     
_________________________________________________________________
batch_normalization_1 (Batch (None, 28, 28, 64)        256       
_________________________________________________________________
activation_2 (Activation)    (None, 28, 28, 64)        0         
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 28, 28, 64)        4160      
_________________________________________________________________
dropout_1 (Dropout)          (None, 28, 28, 64)        0         
_________________________________________________________________
batch_normalization_2 (Batch (None, 28, 28, 64)        256       
_________________________________________________________________
activation_3 (Activation)    (None, 28, 28, 64)        0         
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 26, 26, 128)       73856     
_________________________________________________________________
dropout_2 (Dropout)          (None, 26, 26, 128)       0         
_________________________________________________________________
activation_4 (Activation)    (None, 26, 26, 128)       0         
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 13, 13, 128)       0         
_________________________________________________________________
conv2d_5 (Conv2D)            (None, 13, 13, 64)        8256      
_________________________________________________________________
activation_5 (Activation)    (None, 13, 13, 64)        0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 10816)             0         
_________________________________________________________________
dense_1 (Dense)              (None, 32)                346144    
_________________________________________________________________
dense_2 (Dense)              (None, 70)                2310      
_________________________________________________________________
activation_6 (Activation)    (None, 70)                0         
=================================================================
Total params: 454,054
Trainable params: 453,798
Non-trainable params: 256
_________________________________________________________________
Shape of Data: (70, 32, 32, 1)
Number of unique faces : 70

我正在计算x_列,x_测试,y_列,y_测试,如下所示

x_train, x_test, y_train, y_test = train_test_split(faces,ids, test_size = 0.2, random_state = 0)

输出







Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 30, 30, 32)        320       
_________________________________________________________________
activation_1 (Activation)    (None, 30, 30, 32)        0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 28, 28, 64)        18496     
_________________________________________________________________
batch_normalization_1 (Batch (None, 28, 28, 64)        256       
_________________________________________________________________
activation_2 (Activation)    (None, 28, 28, 64)        0         
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 28, 28, 64)        4160      
_________________________________________________________________
dropout_1 (Dropout)          (None, 28, 28, 64)        0         
_________________________________________________________________
batch_normalization_2 (Batch (None, 28, 28, 64)        256       
_________________________________________________________________
activation_3 (Activation)    (None, 28, 28, 64)        0         
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 26, 26, 128)       73856     
_________________________________________________________________
dropout_2 (Dropout)          (None, 26, 26, 128)       0         
_________________________________________________________________
activation_4 (Activation)    (None, 26, 26, 128)       0         
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 13, 13, 128)       0         
_________________________________________________________________
conv2d_5 (Conv2D)            (None, 13, 13, 64)        8256      
_________________________________________________________________
activation_5 (Activation)    (None, 13, 13, 64)        0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 10816)             0         
_________________________________________________________________
dense_1 (Dense)              (None, 32)                346144    
_________________________________________________________________
dense_2 (Dense)              (None, 70)                2310      
_________________________________________________________________
activation_6 (Activation)    (None, 70)                0         
=================================================================
Total params: 454,054
Trainable params: 453,798
Non-trainable params: 256
_________________________________________________________________
Shape of Data: (70, 32, 32, 1)
Number of unique faces : 70

x_列车-(56,32,32,1)

y_列车-(56、71)

x_测试-(14,32,32,1)

y_试验-(14,71)

CNN层的尺寸有什么问题? 请帮助

在您的model.summary()输出中,您可以看到最终的致密层具有形状(无,70)。None代表当前未知的批次大小。70然后是每个图像的输出维度

从您的y_train和y_pred中,似乎您想要输出71个类,而不是70个,因此维度不匹配。您可以尝试将最后一个密集层更改为

model.add(Dense(num_classes+1))
这应该行得通。我不知道为什么y值的长度与类数不同。一个原因可能是,有一个类表示“nothing”,因此在其他类中不应选择的类是正确的。这可以解释为什么如果有70个类,就需要71维的输出

model.add(Dense(num_classes+1))