【发布时间】:2021-08-12 17:09:06
【问题描述】:
在为分类问题构建张量流模型时,准确率和损失均获得零。
我在这里发布了一个示例时代:
model=Sequential()
model.add(Dense(100,input_dim=X_train.shape[1],activation='sigmoid'))
model.add(Dense(100))
model.add(Dense(1,activation='softmax'))
model.compile(loss='categorical_crossentropy',metrics=['accuracy'],
optimizer='rmsprop')
model.fit(X_train,y_train,epochs=5,verbose=1)
Epoch 2/5
33/33 [==============================] - 1s 41ms/step - loss: 0.0000e+00 - accuracy: 0.0000e+00
【问题讨论】:
-
你能显示 y_train.shape
-
# y_train.shape=(1043,) and X_train.shape is (1043, 22195)
-
@Netim 谢谢,我试过了,但没有任何改变
-
问题可能来自您使用的最后一层的激活函数。 AS Softmax 输出概率,因此要么切换到 sigmoid 和 binary_crossentropy 作为损失,要么将输出形状修改为 2,如果您决定使用大小为 2 的 Dense 层进行预测,则需要修改 y_true 形状(我删除了我的最后一条评论因为我想念你的代码)
-
谢谢@Netim,但它不适用于 binary_crossentropy 和 sigmoid .. 我必须对 4 个值进行分类,所以我使用了 softmax
标签: python tensorflow machine-learning keras neural-network