From ffe14fdd9fdfabe01af485b67dd021d19430aa31 Mon Sep 17 00:00:00 2001
From: Yann SOULLARD
Date: Wed, 3 Jan 2018 15:57:31 +0100
Subject: [PATCH] README update

README.md  12 ++++++++
1 file changed, 8 insertions(+), 4 deletions()
diff git a/README.md b/README.md
index e00b871..6b2ce74 100644
 a/README.md
+++ b/README.md
@@ 11,10 +11,12 @@ It directly inherits from the traditionnal Keras 2 Model and uses the TensorFlow
 Tensorflow
## Installation
$ git clone https://github.com/litislab/CTCModel
+$ git clone https://github.com/litislab/CTCModel
$ cd CTCModel
## Getting started
+Example of a standard recurrent neural network with CTCModel in Keras.
+
from keras.layers import LSTM, TimeDistributed, Dense, Activation, Input
from keras.optimizers import Adam
@@ 44,6 +46,7 @@ The standard inputs x and y of a Keras Model, where x is the observations and y
Here, y is not used in a standard way and must be defined for Keras methods (as the labels or an empty structure of length equal to the length of labels).
Let *x_train*, *y_train*, *x_train_len* and *y_train_len* those terms. Fit, evaluate and predict methods can be used as follow:
+
model.fit(x=[x_train,y_train,x_train_len,y_train_len], y=zeros(nb_train), batch_size=64)
@@ 54,7 +57,7 @@ model.predict([x_test, x_test_len])
## Under the hood
CTCModel works by adding three additionnal output layers to a recurrent network for computing the CTC loss, decoding and evaluating using standard metrics for sequence analysis (the sequence error rate and label error rate). Each one can be applied in a blind manner, by the use of standard Keras methods such as *fit*, *predict* and *evaluate*. Note that methods based on generator have been defined and can be used in a standard way provided that input x and label y that are return by the generator have the specific structure seen above.
+CTCModel works by adding three additionnal output layers to a recurrent network for computing the CTC loss, decoding and evaluating using standard metrics for sequence analysis (the sequence error rate and label error rate). Each one can be applied in a blind manner, by the use of standard Keras methods such as *fit*, *predict* and *evaluate*. Note that methods based on generator have been defined and can be used in a standard way, provided that input x and label y that are return by the generator have the specific structure seen above.
Except the three specific layers, CTCModel works as a standard Keras Model and most of the overriden methods just select the right output layer and call the related Keras Model method. There is also additional methods to save or load model parameters and other ones to get specific computations, e.g. the loss using *get_loss* or the input probabilities using *get_probas* (and the related *on_batch* and *generator* methods).
@@ 62,7 +65,7 @@ Except the three specific layers, CTCModel works as a standard Keras Model and m
CTCModel was developped at the LITIS laboratory, Normandie University (http://www.litislab.fr) by Cyprien RUFFINO and Yann SOULLARD, under the supervision of Thierry PAQUET.
CTCModel is under the terms of the GPL3.0 licence.

+
## References
F. Chollet et al.. Keras: Deep Learning for Python, https://github.com/kerasteam/keras, 2015.
+F. Chollet et al.. Keras: Deep Learning for Python, https://github.com/kerasteam/keras, 2015.
A. Graves, S. Fernández, F. Gomez, J. Schmidhuber. Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks. In Proceedings of the 23rd international conference on Machine learning (pp. 369376). ACM, June 2006.

GitLab