接收到标签值为1,超出了有效范围[0, 1)-Python, Keras

我正在使用Keras和TensorFlow后台开发一个简单的卷积神经网络分类器。

def cnnKeras(training_data, training_labels, test_data, test_labels, n_dim):  print("Initiating CNN")  seed = 8  numpy.random.seed(seed)  model = Sequential()  model.add(Convolution2D(64, 1, 1, init='glorot_uniform',    border_mode='valid',input_shape=(16, 1, 1), activation='relu'))  model.add(MaxPooling2D(pool_size=(1, 1)))  model.add(Convolution2D(32, 1, 1, init='glorot_uniform',    activation='relu'))  model.add(MaxPooling2D(pool_size=(1, 1)))  model.add(Dropout(0.25))  model.add(Flatten())  model.add(Dense(128, activation='relu'))  model.add(Dropout(0.5))  model.add(Dense(64, activation='relu'))  model.add(Dense(1, activation='softmax'))  # Compile model  model.compile(loss='sparse_categorical_crossentropy',              optimizer='adam', metrics=['accuracy'])  model.fit(training_data, training_labels, validation_data=(    test_data, test_labels), nb_epoch=30, batch_size=8, verbose=2)  scores = model.evaluate(test_data, test_labels, verbose=1)  print("Baseline Error: %.2f%%" % (100 - scores[1] * 100))  # model.save('trained_CNN.h5')  return None

这是一个二分类问题,但我一直收到消息Received a label value of 1 which is outside the valid range of [0, 1),这让我感到困惑。有什么建议吗?


回答:

Range [0, 1)表示0到1之间的所有数字,不包括1。因此1不在[0, 1)范围内。

我不完全确定,但问题可能是因为您选择的损失函数。对于二分类问题,binary_crossentropy应该是更好的选择。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注