在keras-ocr示例中,他们正在使用CTC损失功能。在模型编译行中,
# the loss calc occurs elsewhere, so use a dummy lambda function for the loss
model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=sgd)
他们正在使用伪lambda函数,其中y_true,y_pred作为输入,而y_pred作为输出。但是y_pred先前已经定义为softmax激活。
y_pred = Activation('softmax', name='softmax')(inner)
如果y_pred是softmax激活,那么在哪里使用CTC损失? y_pred是否表示在keras中最后一个上一层的输出,而不管是否已定义? (因为在代码中,在编译行之前的图层输出是CTC损失)。
答案 0 :(得分:3)
正如评论中所述,损失计算已经在其他地方完成,因此DBIx::Class::Schema::Loader
仅接受{'ctc': lambda y_true, y_pred: y_pred}
中已经预先计算的损失,并根据需要丢弃y_pred
无需任何计算。