喀拉拉邦的tf.SparseTensor问题。将张量流模型重写为keras

时间:2020-09-22 11:07:48

标签: python tensorflow machine-learning keras ocr

我正在尝试在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)))

0 个答案:

没有答案