| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| [common] |
| # method can be one of the followings - train,predict,load |
| mode = train |
| #ex: gpu0,gpu1,gpu2,gpu3 |
| context = gpu0 |
| # checkpoint prefix, check point will be saved under checkpoints folder with prefix |
| prefix = test_fc |
| # when mode is load or predict, model will be loaded from the file name with model_file under checkpoints |
| model_file = test_fc-0040 |
| batch_size = 2 |
| # log will be saved by the log_filename |
| log_filename = test.log |
| # checkpoint set n to save checkpoints after n epoch |
| save_checkpoint_every_n_epoch = 20 |
| save_checkpoint_every_n_batch = 1000 |
| is_bi_graphemes = False |
| tensorboard_log_dir = tblog/libri_sample |
| # if random_seed is -1 then it gets random seed from timestamp |
| mx_random_seed = 1234 |
| random_seed = 1234 |
| kvstore_option = device |
| |
| [data] |
| max_duration = 16.0 |
| train_json = ./Libri_sample.json |
| test_json = ./Libri_sample.json |
| val_json = ./Libri_sample.json |
| |
| language = en |
| width = 161 |
| height = 1 |
| channel = 1 |
| stride = 1 |
| |
| [arch] |
| channel_num = 32 |
| conv_layer1_filter_dim = [11, 41] |
| conv_layer1_stride = [2, 2] |
| conv_layer2_filter_dim = [11, 21] |
| conv_layer2_stride = [1, 2] |
| |
| num_rnn_layer = 1 |
| num_hidden_rnn_list = [1760] |
| num_hidden_proj = 0 |
| |
| num_rear_fc_layers = 0 |
| num_hidden_rear_fc_list = [] |
| act_type_rear_fc_list = [] |
| |
| #network: lstm, bilstm, gru, bigru |
| rnn_type = bigru |
| #vanilla_lstm or fc_lstm (no effect when network_type is gru, bigru) |
| lstm_type = fc_lstm |
| is_batchnorm = True |
| is_bucketing = False |
| buckets = [] |
| |
| [train] |
| num_epoch = 50 |
| learning_rate = 0.005 |
| # constant learning rate annealing by factor |
| learning_rate_annealing = 1.1 |
| initializer = Xavier |
| init_scale = 2 |
| factor_type = in |
| # show progress every nth batches |
| show_every = 1 |
| save_optimizer_states = True |
| normalize_target_k = 2 |
| # overwrite meta files(feats_mean,feats_std,unicode_en_baidu_bi_graphemes.csv) |
| overwrite_meta_files = True |
| overwrite_bi_graphemes_dictionary = False |
| # save feature extracted from soundfile as csvfile, it can take too much disk space |
| save_feature_as_csvfile = False |
| enable_logging_train_metric = True |
| enable_logging_validation_metric = True |
| |
| [load] |
| load_optimizer_states = True |
| is_start_from_batch = False |
| |
| [optimizer] |
| optimizer = adam |
| # define parameters for optimizer |
| # optimizer_params_dictionary should use " not ' as string wrapper |
| # sgd/nag |
| # optimizer_params_dictionary={"momentum":0.9} |
| # dcasgd |
| # optimizer_params_dictionary={"momentum":0.9, "lamda":1.0} |
| # adam |
| optimizer_params_dictionary={"beta1":0.9,"beta2":0.999} |
| # adagrad |
| # optimizer_params_dictionary={"eps":1e-08} |
| # rmsprop |
| # optimizer_params_dictionary={"gamma1":0.9, "gamma2":0.9,"epsilon":1e-08} |
| # adadelta |
| # optimizer_params_dictionary={"rho":0.95, "epsilon":1e-08} |
| # set to 0 to disable gradient clipping |
| clip_gradient = 0 |
| weight_decay = 0. |