我正在尝试训练一个模型,该模型可以为一个词序列(RNN)返回一个类别。
我向模型输入一个嵌入序列:
[ batchSize, sequence_length, word_embedding ] as float[]
并得到一个独热编码数组序列:
[ batchSize, sequence_length, number_of_classes ] as bool[]
我将这些与相同格式的真实值进行比较。
因此,我想知道:
- 我应该使用什么
loss
? - 为了跟踪进展,我应该报告什么
metrics
?
回答:
听起来你是在训练一个执行多类分类任务的系统,每个样本恰好属于一个已知类别集合。对于这种任务,常见的选择是使用categorical_crossentropy
或sparse_categorical_crossentropy
。
有关损失函数的定义,请参见这里:https://keras.io/losses/
有关使用示例(用Python编写,但JS API与之匹配),请参见这里:https://colab.sandbox.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/beginner.ipynb