我有一个Keras模型,用于解决多类分类问题。我正在这样做:
model.compile(
loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'],
)
我目前有〜100个功能,并且有〜2000个可能的类。一键编码该类会导致内存问题。
是否可以在此Keras模型中使用categorical_crossentropy
,而 not 对类标签进行一次热编码。例如。而不是使目标看起来像这样:
[0, 0, 0, 1, 0, 0, ...]
那将是:
3
我在Keras中查看了categorical_crossentropy
的来源,它假设两个相同形状的张量。有没有办法解决这个问题并使用我描述的方法?
谢谢!
答案 0 :(得分:4)
如果目标是一键编码的,请使用categorical_crossentropy
。
一键编码的示例:
[1,0,0]
[0,1,0]
[0,0,1]
但是,如果目标是整数,请使用sparse_categorical_crossentropy
。
整数编码的示例:
1
2
3
答案 1 :(得分:1)