形状(无,10、2)和(无,10)不兼容[关闭]

问题描述 投票:0回答:0

Hola no se que podria hacer estoy usando los datos load_digits para hacer modelos neuronales y evaluarlos con k-fold Este es mi codigo:

from keras.layers import BatchNormalization
def def_model():
  model = Sequential()
  model.add(Conv2D(32, kernel_size=(3, 3), activation='relu',kernel_initializer='he_uniform', input_shape=(8,8,1)))
  model.add(BatchNormalization())
  model.add(MaxPooling2D(pool_size=(2, 2)))
  model.add(Flatten())
  model.add(Dense(100, activation='relu')) # layer 1
  model.add(Dense(10, activation='softmax')) # output 

  # summary
  model.summary()
  opt = SGD(learning_rate=0.01, momentum=0.9)
  model.compile(loss='categorical_crossentropy',optimizer=opt,metrics=['accuracy'])
scores, histories = list(), list()
n_folds=5
# prepare cross validation
kfold = KFold(n_folds, shuffle=True, random_state=1)
# enumerate splits
for train_ix, test_ix in kfold.split(x_train):
# define model
  model = def_model()
  # select rows for train and test
  x_train, y_train, x_test, y_test = x_train[train_ix], y_train[train_ix], x_train[test_ix], y_train[test_ix]
  # fit model
  history = model.fit(x_train, y_train, epochs=15, batch_size=128, validation_data=(x_test, y_test), verbose=0)
  # evaluate model
  _, acc = model.evaluate(x_test, y_test, verbose=0)
  print('> %.3f' % (acc * 100.0))
  # stores scores
  scores.append(acc)
  histories.append(history)

me da este 错误: ValueError Traceback(最后一次调用) 在 10 x_train,y_train,x_test,y_test = x_train[train_ix],y_train[train_ix],x_train[test_ix],y_train[test_ix] 11#合身款 ---> 12 history = model.fit(x_train, y_train, epochs=15, batch_size=128, validation_data=(x_test, y_test), verbose=0) 13#评估模型 14 _, acc = model.evaluate(x_test, y_test, 详细=0)

1帧 /usr/local/lib/python3.8/dist-packages/keras/engine/training.py 中的 tf__train_function(迭代器) 13 尝试: 14 do_return = 真 ---> 15 retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), 无, fscope) 16 除了: 17 do_return = 假

ValueError:在用户代码中:

File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1249, in train_function  *
    return step_function(self, iterator)
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1233, in step_function  **
    outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1222, in run_step  **
    outputs = model.train_step(data)
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1024, in train_step
    loss = self.compute_loss(x, y, y_pred, sample_weight)
File "/usr/local/lib/python3.8/dist-packages/keras/engine/training.py", line 1082, in compute_loss
    return self.compiled_loss(
File "/usr/local/lib/python3.8/dist-packages/keras/engine/compile_utils.py", line 265, in __call__
    loss_value = loss_obj(y_t, y_p, sample_weight=sw)
File "/usr/local/lib/python3.8/dist-packages/keras/losses.py", line 152, in __call__
    losses = call_fn(y_true, y_pred)
File "/usr/local/lib/python3.8/dist-packages/keras/losses.py", line 284, in call  **
    return ag_fn(y_true, y_pred, **self._fn_kwargs)
File "/usr/local/lib/python3.8/dist-packages/keras/losses.py", line 2004, in categorical_crossentropy
    return backend.categorical_crossentropy(
File "/usr/local/lib/python3.8/dist-packages/keras/backend.py", line 5532, in categorical_crossentropy
    target.shape.assert_is_compatible_with(output.shape)

ValueError: Shapes (None, 10, 2) and (None, 10) are incompatible

quiero imprimir algo asi: enter image description here

python deep-learning neural-network digits k-fold
© www.soinside.com 2019 - 2024. All rights reserved.