我们可以将 Keras 模型的准确度指标用于 Image Captioning 模型吗?
Can we use Keras model's accuracy metric for Image Captioning model?
请考虑以下代码行。
model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['accuracy'])
我可以将 metrics=['accuracy']
用于我的图片说明模型。我的模型定义如下:
inputs1 = Input(shape=(2048,))
fe1 = Dropout(0.2)(inputs1)
fe1=BatchNormalization()(fe1)
fe2 = Dense(256, activation='relu')(fe1)
inputs2 = Input(shape=(max_length,))
se1 = Embedding(vocabsize, embedding_dim, mask_zero=True)(inputs2)
se2 = Dropout(0.2)(se1)
se2=BatchNormalization()(se2)
se3 = LSTM(256)(se2)
decoder1 = add([fe2, se3])
decoder2 = Dense(256, activation='relu')(decoder1)
outputs = Dense(vocabsize, activation='softmax')(decoder2)
model = Model(inputs=[inputs1, inputs2], outputs=outputs)
训练这个模型给出如下输出:
我可以使用这个准确性指标来评估我的图像字幕模型吗?
如果是,那么内置计算是否考虑了预测字幕的语义?
如果问题 1 的答案是肯定的,那么 BLEU 分数和其他评估指标有什么用?
我的模型为给定的新图像提供了不错的说明。这个准确度指标值是否有必要大于 0.5?
回答所有问题我应该说:
对于语言模型,通常使用 bleu(双语评估替补)分数,因为它可以让您更好地了解模型性能
Keras 的 acc 指标还可以,但它实际上用于分类模型或具有确定性输出的模型,但语言模型不是这样的,例如("I am ok" 和 "I am good" 或 "I'm ok" 具有相同的含义,但 Keras 的准确性使它们之间有所不同)。我建议检查 Keras 实现:https://github.com/keras-team/keras/blob/master/keras/metrics.py#L439
请考虑以下代码行。
model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['accuracy'])
我可以将 metrics=['accuracy']
用于我的图片说明模型。我的模型定义如下:
inputs1 = Input(shape=(2048,))
fe1 = Dropout(0.2)(inputs1)
fe1=BatchNormalization()(fe1)
fe2 = Dense(256, activation='relu')(fe1)
inputs2 = Input(shape=(max_length,))
se1 = Embedding(vocabsize, embedding_dim, mask_zero=True)(inputs2)
se2 = Dropout(0.2)(se1)
se2=BatchNormalization()(se2)
se3 = LSTM(256)(se2)
decoder1 = add([fe2, se3])
decoder2 = Dense(256, activation='relu')(decoder1)
outputs = Dense(vocabsize, activation='softmax')(decoder2)
model = Model(inputs=[inputs1, inputs2], outputs=outputs)
训练这个模型给出如下输出:
我可以使用这个准确性指标来评估我的图像字幕模型吗?
如果是,那么内置计算是否考虑了预测字幕的语义?
如果问题 1 的答案是肯定的,那么 BLEU 分数和其他评估指标有什么用?
我的模型为给定的新图像提供了不错的说明。这个准确度指标值是否有必要大于 0.5?
回答所有问题我应该说:
对于语言模型,通常使用 bleu(双语评估替补)分数,因为它可以让您更好地了解模型性能
Keras 的 acc 指标还可以,但它实际上用于分类模型或具有确定性输出的模型,但语言模型不是这样的,例如("I am ok" 和 "I am good" 或 "I'm ok" 具有相同的含义,但 Keras 的准确性使它们之间有所不同)。我建议检查 Keras 实现:https://github.com/keras-team/keras/blob/master/keras/metrics.py#L439