我正在尝试在keras中重写SimpleHTR模型。当我来到CTC中有tf.SparseTensor
的行时,我感到很沮丧。我在喀拉拉邦没有找到类似物。我应该怎么用喀拉拉邦写?任何帮助。谢谢。
def setupCTC(self):
"create CTC loss and decoder and return them"
# BxTxC -> TxBxC
self.ctcIn3dTBC = tf.transpose(self.rnnOut3d, [1, 0, 2])
# ground truth text as sparse tensor
self.gtTexts = tf.SparseTensor(tf.placeholder(tf.int64, shape=[None, 2]) , tf.placeholder(tf.int32, [None]), tf.placeholder(tf.int64, [2]))
# calc loss for batch
self.seqLen = tf.placeholder(tf.int32, [None])
self.loss = tf.reduce_mean(tf.nn.ctc_loss(labels=self.gtTexts, inputs=self.ctcIn3dTBC, sequence_length=self.seqLen, ctc_merge_repeated=True))
# calc loss for each element to compute label probability
self.savedCtcInput = tf.placeholder(tf.float32, shape=[Model.maxTextLen, None, len(self.charList) + 1])
self.lossPerElement = tf.nn.ctc_loss(labels=self.gtTexts, inputs=self.savedCtcInput, sequence_length=self.seqLen, ctc_merge_repeated=True)
...
...
我写的时候:
# SimpleHTR model on keras.
model = Sequential()
# CNN layer on keras.
...
...
...
# RNN layer on keras.
...
...
...
# CTC on keras.
model.add(Lambda(lambda x: backend.transpose(x)))