我正在构建一个基于VGG-16的卷积神经网络,用于根据两张RGB图像(文件类型:jpg)预测人的年龄。我使用的是Anaconda环境中的TensorFlow后端,Python版本为2.7。
然而,总是会引发一个错误:
Traceback (most recent call last):
File “train2.py”, line 167, in shuffle=True)
File “/Users/name/anaconda/lib/python2.7/sitepackages/keras/models.py”,line 973, in fit validation_steps=validation_steps)
File “/Users/name/anaconda/lib/python2.7/sitepackages/keras/engine/training.py”, line 1581, in fit batch_size=batch_size)
File “/Users/name/anaconda/lib/python2.7/sitepackages/keras/engine/training.py”, line 1418, in _standardize_user_data exception_prefix=’target’)
File “/Users/name/anaconda/lib/python2.7/sitepackages/keras/engine/training.py”, line 141, in _standardize_input_data str(array.shape))
ValueError: Error when checking target: expected activation_17 to
have 2 dimensions, but got array with shape (1, 256, 256, 3)
如何解决这个错误?这是我的代码:
回答:
我认为“activation_17”指的是最后一个激活层,即“softmax”层。由于图像在各层之间传播没有问题,我认为问题出在标签的维度上。
在查看了sklearn.model_selection.train_test_split
的文档后,似乎你在分配train_test_split()
的返回值时犯了一个错误。
试试这样做:
train_data, test_data, train_label, test_label= train_test_split(X, y, test_size=0.5, random_state=4)