Python 多分类模型Keras中的早期终止

Python 多分类模型Keras中的早期终止,python,tensorflow,keras,Python,Tensorflow,Keras,我面临一个多重分类问题,我建立了以下模型: def model_building(): input = keras.Input(shape=(X_train[0]).shape) hidden1 = keras.layers.Dense(20)(input) dropout1 = keras.layers.Dropout(0.25)(hidden1) hidden2 = keras.layers.Dense(20)(dropout1) output = keras.layer

我面临一个多重分类问题,我建立了以下模型:

def model_building():
  input = keras.Input(shape=(X_train[0]).shape)
  hidden1 = keras.layers.Dense(20)(input)
  dropout1 = keras.layers.Dropout(0.25)(hidden1)
  hidden2 = keras.layers.Dense(20)(dropout1)
  output = keras.layers.Dense(1)(hidden3)
  model = keras.Model(inputs=input, outputs=output, name='ClassModel')
  model.compile(loss='sparse_categorical_crossentropy', optimizer=keras.optimizers.Nadam(learning_rate=0.01), metrics=[acc])
  return model
但是当安装时,它显示了这个错误

from keras import callbacks
earlystopping = callbacks.EarlyStopping(monitor ="loss", 
                                        mode ="min", patience = 5, 
                                        restore_best_weights = True)

history = model.fit(X_train, Y_train, epochs=40, validation_split=0.2, verbose=0,
                    shuffle=True, callbacks =[earlystopping])


# ERROR:
InvalidArgumentError:  Received a label value of 4 which is outside the valid range of [0, 1).  Label values: 2 3 1 3 2 3 2 2 3 2 2 2 3 3 3 3 4 2 2 2 2 3 3 2 2 3 2 2 3 2 2 4

在多重分类问题中是否可能建立一个
早期终止
?如果可能,怎么做?

这与回调本身无关,只是上一层的问题。它应该类似于
Dense(num_classes,activation=tf.nn.softmax)
您更改了什么,错误是什么?你需要使用softmax。@Frightera哦,就是这样。我忘了添加num_类,跟你说的早起没什么关系