Основными строительными блоками являются архитектуры Encoder-Decoder RNN и механизм внимания.
Пакет был в значительной степени реализован с использованием последних (1.2) модулей tf.contrib.seq2seq
Пакет поддерживает
Чтобы предварительно обработать необработанные параллельные данные sample_data.src и sample_data.trg , просто запустите
cd data /
. / preprocess . sh src trg sample_data $ { max_seq_len }Запуск вышеуказанного кода выполняет широко используемые шаги предварительной обработки для машинного перевода (MT).
Для обучения модели 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 ...Запустить обученную модель для декодирования,
$ 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
If --beam_width=1 , жадное декодирование выполняется при каждом шаге.
Параметры данных
--source_vocabulary : Путь к источнику словаря--target_vocabulary : Path to Target Ocabulary--source_train_data : путь к исходному обучению--target_train_data : Путь к целевым обучающим данным--source_valid_data : данные об проверке источника--target_valid_data : путь к целевой проверке данныхСетевые параметры
--cell_type : ячейка RNN для использования для Encoder и Decoder (по умолчанию: LSTM)--attention_type : механизм внимания (Бахданау, Луонг), (по умолчанию: Бахданау)--depth : количество скрытых единиц для каждого уровня в модели (по умолчанию: 2)--embedding_size : встраивание размеров входов кодеров и декодера (по умолчанию: 500)--num_encoder_symbols : Размер словарного запаса источника (по умолчанию: 30000)--num_decoder_symbols : Целевой словарной размер для использования (по умолчанию: 30000)--use_residual : Используйте остаточное соединение между слоями (по умолчанию: true)--attn_input_feeding : используйте метод подачи ввода в декодере внимания (Luong et al., 2015) (по умолчанию: true)--use_dropout : Используйте выпуск в выходе ячейки RNN (по умолчанию: true)--dropout_rate : вероятность отсева для выходов ячеек (0,0: без выбытия) (по умолчанию: 0,3)Обучающие параметры
--learning_rate : количество скрытых единиц для каждого уровня в модели (по умолчанию: 0,0002)--max_gradient_norm : градиенты клипа на эту норму (по умолчанию 1.0)--batch_size : размер партии--max_epochs : максимальные эпохи обучения--max_load_batches : максимальное количество партий для предварительного вычинения за один раз.--max_seq_length : максимальная длина последовательности--display_freq : отображать статус обучения каждую итерацию--save_freq : Сохранить модель Контрольной точки каждой итерации--valid_freq : оценить модель каждую эту итерацию: valid_data необходим--optimizer : оптимизатор для обучения: (Adadelta, Adam, RMSProp) (по умолчанию: Адам)--model_dir : путь к сохранению контрольных точек модели--model_name : имя файла, используемое для контрольных точек модели--shuffle_each_epoch : набор данных обучения для каждой эпохи (по умолчанию: true)--sort_by_length : сортируйте предварительно выселенные Minibatches по их целевой длине последовательности (по умолчанию: true)Декодирование параметров
--beam_width : ширина луча, используемая в Beamsearch (по умолчанию: 1)--decode_batch_size : размер партии, используемый при декодировании--max_decode_step : максимальный ограничение временного шага в декодировании (по умолчанию: 500)--write_n_best : write beamsearch n-best list (n = beam_width) (по умолчанию: false)--decode_input : путь ввода файла в декодирование--decode_output : выходной путь файла выхода декодированияПарамы времени выполнения
--allow_soft_placement : разрешить мягкое размещение устройства--log_device_placement : Размещение журнала OPS на устройствах Реализация основана на следующих проектах:
Для любых комментариев и отзывов, пожалуйста, напишите мне по адресу [email protected] или откройте здесь проблему.