ValueError:检查目标时出错:预期dense_10具有形状(1,),但数组具有形状(19316,)

lr99

我正在运行一个 CNN 来检查图像但不分类。实际上,输出层是一个密集层,其参数为 1d 中标签中图像的大小。

如下代码所示,我使用的是 model.fit_generator() 而不是 model.fit 开始训练模型时出现以下错误:

ValueError: Error when checking target: expected dense_10 to have shape 
(1,) but got array with shape (19316,)

为什么这是一个错误?我的密集输出是一个包含 19316 个元素的数组,为什么它期望它具有 (1,) 的形状?

这里还附上了模型的摘要:


层(类型)输出形状参数#

conv2d_28 (Conv2D)(无、26、877、32)544


activation_37(激活)(无、26、877、32)0


max_pooling2d_28 (MaxPooling (None, 13, 438, 32) 0


conv2d_29 (Conv2D)(无、12、437、16)2064


activation_38(激活)(无、12、437、16)0


max_pooling2d_29 (MaxPooling (None, 6, 218, 16) 0


conv2d_30 (Conv2D) (None, 5, 217, 8) 520


activation_39(激活)(无、5、217、8)0


max_pooling2d_30 (MaxPooling (None, 2, 108, 8) 0


activation_40(激活)(无、2、108、8)0


flatten_10(扁平化)(无,1728)0


dropout_10(辍学)(无,1728)0


密集_10(密集)(无,19316)33397364

================================================== ================

总参数:33,400,492 可训练参数:33,400,492 不可训练参数:0


有什么建议么?

非常感谢!

def generator(data_arr, batch_size = 10):

num = len(data_arr) 

if num % batch_size != 0 : 
    num = int(num/batch_size)

# Loop forever so the generator never terminates
while True: 

for offset in range(0, num, batch_size):

    batch_samples = (data_arr[offset:offset+batch_size])

    samples = []
    labels = []

    for batch_sample in batch_samples:

        samples.append(batch_sample[0])
        labels.append((np.array(batch_sample[1].flatten)).transpose())

    X_ = np.array(samples)
    Y_ = np.array(labels)

    X_ = X_[:, :, :, newaxis]

    print(X_.shape)
    print(Y_.shape)

    yield (X_, Y_)

# compile and train the model using the generator function
train_generator = generator(training_data, batch_size = 10)
validation_generator = generator(val_data, batch_size = 10)

run_opts = tf.RunOptions(report_tensor_allocations_upon_oom = True)

model = Sequential()

model.add(Conv2D(32, (4, 4), strides=(2, 2), input_shape = (55, 1756, 
1)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size = (2, 2)))

model.add(Conv2D(16, (2, 2)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size = (2, 2)))

model.add(Conv2D(8, (2, 2)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size = (2, 2)))

model.add(Activation('softmax'))
model.add(Flatten())  # this converts our 3D feature maps to 1D feature 
vectors
model.add(Dropout(0.3))
model.add(Dense(19316))

model.compile(loss = 'sparse_categorical_crossentropy',
              optimizer = 'adam',
              metrics = ['accuracy'],
              options = run_opts)

model.summary()

batch_size = 20
nb_epoch = 6

model.fit_generator(train_generator, 
                    steps_per_epoch = len(training_data) ,
                    epochs = nb_epoch,
                    validation_data = validation_generator,
                    validation_steps = len(val_data))
史努比博士

您当前正在使用sparse_categorical_crossentropy损失,它需要整数标签并在内部进行单热编码,但您的标签已经是单热编码。

因此,对于这种情况,您应该恢复到categorical_crossentropy损失。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ValueError:检查目标时出错:预期dense_2具有形状(1,)但得到形状为(14,)的数组

来自分类Dev

ValueError:检查目标时出错:预期density_3具有形状(1,),但数组形状为(2,)角

来自分类Dev

Model.fit() ValueError:检查模型目标时出错:预期dense_21 具有形状(无,1)但得到具有形状的数组(1708、66)

来自分类Dev

ValueError:检查目标时出错:预期 c_acti 具有形状 (10,) 但得到形状为 (1,) 的数组

来自分类Dev

Python-Tensorflow-LSTM-ValueError:检查模型目标时出错:预期dense_16具有形状(无,100)但得到形状为(16、2)的数组

来自分类Dev

检查目标时出错:预期activation_5具有形状(1,),但数组的形状为(2,)

来自分类Dev

检查目标时出错:预期dense_8 具有形状(2,) 但得到形状为(1,) 的数组

来自分类Dev

ValueError:检查目标时出错:预期density_22具有形状(100,50),但数组的形状为(1,50)

来自分类Dev

ValueError:检查目标时出错:预期输出具有形状 (1,) 但得到形状为 (2,) 的数组

来自分类Dev

检查目标时出错:预期 activation_1 具有形状 (1,) 但得到形状为 (10,) 的数组

来自分类Dev

检查目标时:预期dense_2 具有形状(1,) 但得到形状为(2,) 的数组

来自分类Dev

预期density_8具有形状(2,),但具有形状(1,)的数组

来自分类Dev

ValueError:检查模型目标时出错:预期 activation_2 具有形状 (None, 761, 1) 但得到形状为 (1, 779, 1) 的数组

来自分类Dev

ValueError:检查模型目标时出错:预期卷积2d_2具有形状(无、26、26、64)但得到形状为(250、227、227、1)的数组

来自分类Dev

python 3.x Keras ValueError:检查目标时出错:预期seq_input具有形状(无,2)但得到形状为(16,1)的数组

来自分类Dev

ValueError:检查目标时出错:预期 activation_6 具有形状(无,2)但得到形状为(5760,1)的数组

来自分类Dev

检查输入时出错:预期dense_1_input 具有形状(3773,) 但得到形状为(111,) 的数组

来自分类Dev

ValueError:检查输入时出错:预期density_13_input具有形状(3,),但数组的形状为(1,)

来自分类Dev

Keras检查输入时出错:预期input_4具有形状(299、299、3),但数组具有形状(64、64、3)

来自分类Dev

嵌入输入形状时出错:预期embedding_1_input具有形状(25,),但数组的形状为(1,)

来自分类Dev

检查输入时出错:预期embedding_1输入具有形状但形状正常

来自分类Dev

Keras ValueError:检查目标时出错:预期dense_15具有3维,但得到了形状为(301390, 8)的数组

来自分类Dev

ValueError:检查输入时出错:预期conv2d_1_input具有形状(224,224,1),但数组的形状为(224,224,8)

来自分类Dev

检查输入时出错:预期density_203_input具有形状(1202),但数组形状为(1,)

来自分类Dev

ValueError:检查输入时出错:预期conv2d_5_input具有形状(6705,20,130),但数组形状为(20,130,1)

来自分类Dev

ValueError:检查输入时出错:预期 conv2d_9_input 具有形状 (64, 64, 3) 但得到形状为 (32, 32, 1) 的数组

来自分类Dev

如何修复:ValueError:检查输入时出错:预期conv2d_130_input具有形状(1,512,512)但具有形状(79,512,512)的数组

来自分类Dev

简单的机器学习算法不起作用:ValueError:检查输入时出错:预期dense_4_input具有形状(无,5)但得到形状为(5,1)的数组

来自分类Dev

ValueError:检查输入时出错:预期 lstm_1_input 有 3 个维度,但得到了具有形状的数组 (393613, 50)

Related 相关文章

  1. 1

    ValueError:检查目标时出错:预期dense_2具有形状(1,)但得到形状为(14,)的数组

  2. 2

    ValueError:检查目标时出错:预期density_3具有形状(1,),但数组形状为(2,)角

  3. 3

    Model.fit() ValueError:检查模型目标时出错:预期dense_21 具有形状(无,1)但得到具有形状的数组(1708、66)

  4. 4

    ValueError:检查目标时出错:预期 c_acti 具有形状 (10,) 但得到形状为 (1,) 的数组

  5. 5

    Python-Tensorflow-LSTM-ValueError:检查模型目标时出错:预期dense_16具有形状(无,100)但得到形状为(16、2)的数组

  6. 6

    检查目标时出错:预期activation_5具有形状(1,),但数组的形状为(2,)

  7. 7

    检查目标时出错:预期dense_8 具有形状(2,) 但得到形状为(1,) 的数组

  8. 8

    ValueError:检查目标时出错:预期density_22具有形状(100,50),但数组的形状为(1,50)

  9. 9

    ValueError:检查目标时出错:预期输出具有形状 (1,) 但得到形状为 (2,) 的数组

  10. 10

    检查目标时出错:预期 activation_1 具有形状 (1,) 但得到形状为 (10,) 的数组

  11. 11

    检查目标时:预期dense_2 具有形状(1,) 但得到形状为(2,) 的数组

  12. 12

    预期density_8具有形状(2,),但具有形状(1,)的数组

  13. 13

    ValueError:检查模型目标时出错:预期 activation_2 具有形状 (None, 761, 1) 但得到形状为 (1, 779, 1) 的数组

  14. 14

    ValueError:检查模型目标时出错:预期卷积2d_2具有形状(无、26、26、64)但得到形状为(250、227、227、1)的数组

  15. 15

    python 3.x Keras ValueError:检查目标时出错:预期seq_input具有形状(无,2)但得到形状为(16,1)的数组

  16. 16

    ValueError:检查目标时出错:预期 activation_6 具有形状(无,2)但得到形状为(5760,1)的数组

  17. 17

    检查输入时出错:预期dense_1_input 具有形状(3773,) 但得到形状为(111,) 的数组

  18. 18

    ValueError:检查输入时出错:预期density_13_input具有形状(3,),但数组的形状为(1,)

  19. 19

    Keras检查输入时出错:预期input_4具有形状(299、299、3),但数组具有形状(64、64、3)

  20. 20

    嵌入输入形状时出错:预期embedding_1_input具有形状(25,),但数组的形状为(1,)

  21. 21

    检查输入时出错:预期embedding_1输入具有形状但形状正常

  22. 22

    Keras ValueError:检查目标时出错:预期dense_15具有3维,但得到了形状为(301390, 8)的数组

  23. 23

    ValueError:检查输入时出错:预期conv2d_1_input具有形状(224,224,1),但数组的形状为(224,224,8)

  24. 24

    检查输入时出错:预期density_203_input具有形状(1202),但数组形状为(1,)

  25. 25

    ValueError:检查输入时出错:预期conv2d_5_input具有形状(6705,20,130),但数组形状为(20,130,1)

  26. 26

    ValueError:检查输入时出错:预期 conv2d_9_input 具有形状 (64, 64, 3) 但得到形状为 (32, 32, 1) 的数组

  27. 27

    如何修复:ValueError:检查输入时出错:预期conv2d_130_input具有形状(1,512,512)但具有形状(79,512,512)的数组

  28. 28

    简单的机器学习算法不起作用:ValueError:检查输入时出错:预期dense_4_input具有形状(无,5)但得到形状为(5,1)的数组

  29. 29

    ValueError:检查输入时出错:预期 lstm_1_input 有 3 个维度,但得到了具有形状的数组 (393613, 50)

热门标签

归档