我需要帮助来构建用于分类的keras模型 . 我有
输入:167个光谱点
输出11类被调查物质 .
但是在一个数据集中可能是具有多种物质的物质的幽灵(例如包含2,3,4类) . 我尝试使用 categorical_crossentropy
,但它仅适用于非交叉类 .
注意:当使用categorical_crossentropy损失时,您的目标应该是分类格式(例如,如果您有10个类,则每个样本的目标应该是一个10维向量,在对应于索引的索引处为全0期望为1样本的类) . 要将整数目标转换为分类目标,可以使用Keras实用程序to_categorical:
我的代码:
model = Sequential()
model.add(Dense(64, input_dim=167))
model.add(Dense(32))
model.add(Dense(11))
model.add(Activation('sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
我尝试了很多模型,但无法取得好成绩 .
1 回答
您可能应该选择
sigmoid
和binary_crossentropy
(See here)PS:这不是你的情况,但对于
categorial_crossentropy
,理想情况下你应该使用softmax
激活 . softmax输出优化的内容,仅最大化一个类 .(如果有人想用一个好的或更好的“优化器”补充这个答案,请随意) .