Les principaux blocs de construction sont des architectures de coder RNN et un mécanisme d'attention.
Le package a été largement mis en œuvre en utilisant les dernières modules TF.Contrib.Seq2Seq
Le package prend en charge
Pour prétraiter les données parallèles brutes de sample_data.src et sample_data.trg , exécutez simplement
cd data /
. / preprocess . sh src trg sample_data $ { max_seq_len }L'exécution du code ci-dessus effectue des étapes de prétraitement largement utilisées pour la traduction automatique (MT).
Pour entraîner un modèle SEQ2SEQ,
$ python train . py -- cell_type 'lstm'
-- attention_type 'luong'
-- hidden_units 1024
-- depth 2
-- embedding_size 500
-- num_encoder_symbols 30000
-- num_decoder_symbols 30000 ...Pour gérer le modèle formé pour le décodage,
$ python decode . py -- beam_width 5
-- decode_batch_size 30
-- model_path $PATH_TO_A_MODEL_CHECKPOINT ( e . g . model / translate . ckpt - 100 )
-- max_decode_step 300
-- write_n_best False
-- decode_input $PATH_TO_DECODE_INPUT
-- decode_output $PATH_TO_DECODE_OUTPUT
Si --beam_width=1 , le décodage gourmand est effectué à chaque pas de temps.
Paramètres de données
--source_vocabulary : chemin vers le vocabulaire source--target_vocabulary : chemin vers le vocabulaire cibler--source_train_data : chemin vers les données de formation source--target_train_data : Chemin vers les données de formation cibler--source_valid_data : Path vers les données de validation de la source--target_valid_data : chemin vers les données de validation ciblerParamètres du réseau
--cell_type : cellule RNN à utiliser pour l'encodeur et le décodeur (par défaut: LSTM)--attention_type : Mécanisme d'attention (Bahdanau, Luong), (par défaut: Bahdanau)--depth : nombre d'unités cachées pour chaque couche du modèle (par défaut: 2)--embedding_size : Incorporer les dimensions des entrées d'encodeur et de décodeur (par défaut: 500)--num_encoder_symbols : taille du vocabulaire source à utiliser (par défaut: 30000)--num_decoder_symbols : taille de vocabulaire cible à utiliser (par défaut: 30000)--use_residual : Utilisez la connexion résiduelle entre les couches (par défaut: true)--attn_input_feeding : utilisez la méthode d'alimentation d'entrée dans le décodeur attentionnel (Luong et al., 2015) (par défaut: true)--use_dropout : Utilisez Dropout dans la sortie de la cellule RNN (par défaut: true)--dropout_rate : probabilité de dépôt pour les sorties de cellules (0,0: pas de dépôt) (par défaut: 0,3)Paramètres de formation
--learning_rate : nombre d'unités cachées pour chaque couche du modèle (par défaut: 0,0002)--max_gradient_norm : Clip gradients à cette norme (par défaut 1.0)--batch_size : Taille du lot--max_epochs : époques de formation maximale--max_load_batches : nombre maximum de lots à préflure en même temps.--max_seq_length : longueur de séquence maximale--display_freq : afficher le statut de formation chaque itération--save_freq : Enregistrer le point de contrôle du modèle chaque itération--valid_freq : évaluer le modèle chaque itération: valid_data nécessaire--optimizer : Optimiseur pour la formation: (Adadelta, Adam, RMSProp) (par défaut: Adam)--model_dir : chemin pour enregistrer les points de contrôle du modèle--model_name : nom de fichier utilisé pour les points de contrôle du modèle--shuffle_each_epoch : ensemble de données d'entraînement pour chaque époque (par défaut: true)--sort_by_length : trier les minibatchs pré-chargés par leurs longueurs de séquence cible (par défaut: true)Paramètres de décodage
--beam_width : Largeur du faisceau utilisé dans BeamSearch (par défaut: 1)--decode_batch_size : taille du lot utilisé dans le décodage--max_decode_step : limite de pas de temps maximale en décodage (par défaut: 500)--write_n_best : écriture de la liste de recherche N-Best (n = Beam_width) (par défaut: false)--decode_input : chemin d'entrée de fichier pour décoder--decode_output : chemin de fichier de sortie de la sortie du décodageParamètres d'exécution
--allow_soft_placement : permettez le placement souple de l'appareil--log_device_placement : placement du journal des opérations sur les appareils La mise en œuvre est basée sur les projets suivants:
Pour tout commentaire et commentaires, veuillez m'envoyer un e-mail à [email protected] ou ouvrir un problème ici.