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