Implementierung des harten CTC -VerlustsPython

Python-Programme
Anonymous
 Implementierung des harten CTC -Verlusts

Post by Anonymous »

Betrachtet man die Tatsache, dass Sie ein ähnliches Basismodell haben: < /p>
input_layer = layers.Input(shape=(50,20))
layer = layers.Dense(123, activation = 'relu')
layer = layers.LSTM(128, return_sequences = True)(layer)
outputs = layers.Dense(20, activation='softmax')(layer)
model = Model(input_layer,outputs)
< /code>
Wie würden Sie einen CTC -Verlust implementieren? Ich habe etwas aus dem Keras -Code -Tutorial auf OCR wie folgt ausprobiert: < /p>
class CTCLayer(layers.Layer):
def __init__(self, name=None):
super().__init__(name=name)
self.loss_fn = keras.backend.ctc_batch_cost

def call(self, y_true, y_pred):
# Compute the training-time loss value and add it
# to the layer using `self.add_loss()`.
batch_len = tf.cast(tf.shape(y_true)[0], dtype="int64")
input_length = tf.cast(tf.shape(y_pred)[1], dtype="int64")
label_length = tf.cast(tf.shape(y_true)[1], dtype="int64")

input_length = input_length * tf.ones(shape=(batch_len, 1), dtype="int64")
label_length = label_length * tf.ones(shape=(batch_len, 1), dtype="int64")

loss = self.loss_fn(y_true, y_pred, input_length, label_length)
self.add_loss(loss)

# At test time, just return the computed predictions
return y_pred
labels = layers.Input(shape=(None,), dtype="float32")
input_layer = layers.Input(shape=(50,20))
layer = layers.Dense(123, activation = 'relu')
layer = layers.LSTM(128, return_sequences = True)(layer)
outputs = layers.Dense(20, activation='softmax')(layer)
output = CTCLayer()(labels,outputs)
model = Model(input_layer,outputs)
< /code>
Wenn es jedoch um das Modell ging. Fit Teil, fiel es auseinander, weil ich nicht wusste, wie das Modell das "Etikettierende" -Intragsschicht füttert. Ich denke, dass der Ansatz im Tutorial ziemlich eindeutig ist. Was wäre also eine bessere und effizientere Möglichkeit, den CTC -Verlust zu implementieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post