parent
dd96a65892
commit
716bf6f1dd
@ -1 +1,3 @@
|
|||||||
* s0 is for deepspeech
|
# ASR
|
||||||
|
* s0 is for deepspeech2
|
||||||
|
* s1 is for U2
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
data
|
||||||
|
exp
|
||||||
|
log
|
@ -1,90 +1,115 @@
|
|||||||
|
# https://yaml.org/type/float.html
|
||||||
|
data:
|
||||||
|
train_manifest: data/manifest.tiny
|
||||||
|
dev_manifest: data/manifest.tiny
|
||||||
|
test_manifest: data/manifest.tiny
|
||||||
|
vocab_filepath: data/vocab.txt
|
||||||
|
unit_type: 'spm'
|
||||||
|
spm_model_prefix: 'data/bpe_unigram_200'
|
||||||
|
mean_std_filepath: ""
|
||||||
|
augmentation_config: conf/augmentation.json
|
||||||
|
batch_size: 4
|
||||||
|
min_input_len: 0.5
|
||||||
|
max_input_len: 20.0
|
||||||
|
min_output_len: 0.0
|
||||||
|
max_output_len: 400.0
|
||||||
|
min_output_input_ratio: 0.05
|
||||||
|
max_output_input_ratio: 10.0
|
||||||
|
raw_wav: True # use raw_wav or kaldi feature
|
||||||
|
specgram_type: fbank #linear, mfcc, fbank
|
||||||
|
feat_dim: 80
|
||||||
|
delta_delta: False
|
||||||
|
dither: 1.0
|
||||||
|
target_sample_rate: 16000
|
||||||
|
max_freq: None
|
||||||
|
n_fft: None
|
||||||
|
stride_ms: 10.0
|
||||||
|
window_ms: 25.0
|
||||||
|
use_dB_normalization: True
|
||||||
|
target_dB: -20
|
||||||
|
random_seed: 0
|
||||||
|
keep_transcription_text: False
|
||||||
|
sortagrad: True
|
||||||
|
shuffle_method: batch_shuffle
|
||||||
|
num_workers: 2
|
||||||
|
|
||||||
|
|
||||||
# network architecture
|
# network architecture
|
||||||
# encoder related
|
model:
|
||||||
encoder: conformer
|
cmvn_file: "data/mean_std.json"
|
||||||
encoder_conf:
|
cmvn_file_type: "json"
|
||||||
output_size: 256 # dimension of attention
|
# encoder related
|
||||||
attention_heads: 4
|
encoder: conformer
|
||||||
linear_units: 2048 # the number of units of position-wise feed forward
|
encoder_conf:
|
||||||
num_blocks: 12 # the number of encoder blocks
|
output_size: 256 # dimension of attention
|
||||||
dropout_rate: 0.1
|
attention_heads: 4
|
||||||
positional_dropout_rate: 0.1
|
linear_units: 2048 # the number of units of position-wise feed forward
|
||||||
attention_dropout_rate: 0.0
|
num_blocks: 12 # the number of encoder blocks
|
||||||
input_layer: conv2d # encoder input type, you can chose conv2d, conv2d6 and conv2d8
|
dropout_rate: 0.1
|
||||||
normalize_before: true
|
positional_dropout_rate: 0.1
|
||||||
cnn_module_kernel: 15
|
attention_dropout_rate: 0.0
|
||||||
use_cnn_module: True
|
input_layer: conv2d # encoder input type, you can chose conv2d, conv2d6 and conv2d8
|
||||||
activation_type: 'swish'
|
normalize_before: True
|
||||||
pos_enc_layer_type: 'rel_pos'
|
use_cnn_module: True
|
||||||
selfattention_layer_type: 'rel_selfattn'
|
cnn_module_kernel: 15
|
||||||
causal: true
|
activation_type: 'swish'
|
||||||
use_dynamic_chunk: true
|
pos_enc_layer_type: 'rel_pos'
|
||||||
cnn_module_norm: 'layer_norm' # using nn.LayerNorm makes model converge faster
|
selfattention_layer_type: 'rel_selfattn'
|
||||||
use_dynamic_left_chunk: false
|
causal: True
|
||||||
|
use_dynamic_chunk: True
|
||||||
|
cnn_module_norm: 'layer_norm' # using nn.LayerNorm makes model converge faster
|
||||||
|
use_dynamic_left_chunk: false
|
||||||
|
|
||||||
# decoder related
|
# decoder related
|
||||||
decoder: transformer
|
decoder: transformer
|
||||||
decoder_conf:
|
decoder_conf:
|
||||||
attention_heads: 4
|
attention_heads: 4
|
||||||
linear_units: 2048
|
linear_units: 2048
|
||||||
num_blocks: 6
|
num_blocks: 6
|
||||||
dropout_rate: 0.1
|
dropout_rate: 0.1
|
||||||
positional_dropout_rate: 0.1
|
positional_dropout_rate: 0.1
|
||||||
self_attention_dropout_rate: 0.0
|
self_attention_dropout_rate: 0.0
|
||||||
src_attention_dropout_rate: 0.0
|
src_attention_dropout_rate: 0.0
|
||||||
|
|
||||||
# hybrid CTC/attention
|
# hybrid CTC/attention
|
||||||
model_conf:
|
model_conf:
|
||||||
ctc_weight: 0.3
|
ctc_weight: 0.3
|
||||||
lsm_weight: 0.1 # label smoothing option
|
lsm_weight: 0.1 # label smoothing option
|
||||||
length_normalized_loss: false
|
length_normalized_loss: false
|
||||||
|
|
||||||
|
|
||||||
# use raw_wav or kaldi feature
|
training:
|
||||||
raw_wav: true
|
n_epoch: 20
|
||||||
|
accum_grad: 1
|
||||||
|
global_grad_clip: 5.0
|
||||||
|
optim: adam
|
||||||
|
optim_conf:
|
||||||
|
lr: 0.001
|
||||||
|
weight_decay: 1e-06
|
||||||
|
scheduler: warmuplr # pytorch v1.1.0+ required
|
||||||
|
scheduler_conf:
|
||||||
|
warmup_steps: 25000
|
||||||
|
lr_decay: 1.0
|
||||||
|
log_interval: 1
|
||||||
|
|
||||||
# feature extraction
|
|
||||||
collate_conf:
|
|
||||||
# waveform level config
|
|
||||||
wav_distortion_conf:
|
|
||||||
wav_dither: 1.0
|
|
||||||
wav_distortion_rate: 0.0
|
|
||||||
distortion_methods: []
|
|
||||||
speed_perturb: true
|
|
||||||
feature_extraction_conf:
|
|
||||||
feature_type: 'fbank'
|
|
||||||
mel_bins: 80
|
|
||||||
frame_shift: 10
|
|
||||||
frame_length: 25
|
|
||||||
using_pitch: false
|
|
||||||
# spec level config
|
|
||||||
# spec_swap: false
|
|
||||||
feature_dither: 0.0 # add dither [-feature_dither,feature_dither] on fbank feature
|
|
||||||
spec_aug: true
|
|
||||||
spec_aug_conf:
|
|
||||||
warp_for_time: False
|
|
||||||
num_t_mask: 2
|
|
||||||
num_f_mask: 2
|
|
||||||
max_t: 50
|
|
||||||
max_f: 10
|
|
||||||
max_w: 80
|
|
||||||
|
|
||||||
# dataset related
|
decoding:
|
||||||
dataset_conf:
|
batch_size: 64
|
||||||
max_length: 40960
|
error_rate_type: wer
|
||||||
min_length: 0
|
decoding_method: attention # 'attention', 'ctc_greedy_search', 'ctc_prefix_beam_search', 'attention_rescoring'
|
||||||
batch_type: 'static' # static or dynamic
|
lang_model_path: data/lm/common_crawl_00.prune01111.trie.klm
|
||||||
# the size of batch_size should be set according to your gpu memory size, here we used 2080ti gpu whose memory size is 11GB
|
alpha: 2.5
|
||||||
batch_size: 16
|
beta: 0.3
|
||||||
sort: true
|
beam_size: 10
|
||||||
|
cutoff_prob: 1.0
|
||||||
|
cutoff_top_n: 0
|
||||||
|
num_proc_bsearch: 8
|
||||||
|
ctc_weight: 0.0 # ctc weight for attention rescoring decode mode.
|
||||||
|
decoding_chunk_size: -1 # decoding chunk size. Defaults to -1.
|
||||||
|
# <0: for decoding, use full chunk.
|
||||||
|
# >0: for decoding, use fixed chunk size as set.
|
||||||
|
# 0: used for training, it's prohibited here.
|
||||||
|
num_decoding_left_chunks: -1 # number of left chunks for decoding. Defaults to -1.
|
||||||
|
simulate_streaming: False # simulate streaming inference. Defaults to False.
|
||||||
|
|
||||||
grad_clip: 5
|
|
||||||
accum_grad: 1
|
|
||||||
max_epoch: 180
|
|
||||||
log_interval: 100
|
|
||||||
|
|
||||||
optim: adam
|
|
||||||
optim_conf:
|
|
||||||
lr: 0.001
|
|
||||||
scheduler: warmuplr # pytorch v1.1.0+ required
|
|
||||||
scheduler_conf:
|
|
||||||
warmup_steps: 25000
|
|
@ -1,83 +1,108 @@
|
|||||||
|
# https://yaml.org/type/float.html
|
||||||
|
data:
|
||||||
|
train_manifest: data/manifest.tiny
|
||||||
|
dev_manifest: data/manifest.tiny
|
||||||
|
test_manifest: data/manifest.tiny
|
||||||
|
vocab_filepath: data/vocab.txt
|
||||||
|
unit_type: 'spm'
|
||||||
|
spm_model_prefix: 'data/bpe_unigram_200'
|
||||||
|
mean_std_filepath: ""
|
||||||
|
augmentation_config: conf/augmentation.json
|
||||||
|
batch_size: 4
|
||||||
|
min_input_len: 0.5 # second
|
||||||
|
max_input_len: 20.0 # second
|
||||||
|
min_output_len: 0.0 # tokens
|
||||||
|
max_output_len: 400.0 # tokens
|
||||||
|
min_output_input_ratio: 0.05
|
||||||
|
max_output_input_ratio: 10.0
|
||||||
|
raw_wav: True # use raw_wav or kaldi feature
|
||||||
|
specgram_type: fbank #linear, mfcc, fbank
|
||||||
|
feat_dim: 80
|
||||||
|
delta_delta: False
|
||||||
|
dither: 1.0
|
||||||
|
target_sample_rate: 16000
|
||||||
|
max_freq: None
|
||||||
|
n_fft: None
|
||||||
|
stride_ms: 10.0
|
||||||
|
window_ms: 25.0
|
||||||
|
use_dB_normalization: True
|
||||||
|
target_dB: -20
|
||||||
|
random_seed: 0
|
||||||
|
keep_transcription_text: False
|
||||||
|
sortagrad: True
|
||||||
|
shuffle_method: batch_shuffle
|
||||||
|
num_workers: 2
|
||||||
|
|
||||||
|
|
||||||
# network architecture
|
# network architecture
|
||||||
# encoder related
|
model:
|
||||||
encoder: transformer
|
cmvn_file: "data/mean_std.json"
|
||||||
encoder_conf:
|
cmvn_file_type: "json"
|
||||||
output_size: 256 # dimension of attention
|
# encoder related
|
||||||
attention_heads: 4
|
encoder: transformer
|
||||||
linear_units: 2048 # the number of units of position-wise feed forward
|
encoder_conf:
|
||||||
num_blocks: 12 # the number of encoder blocks
|
output_size: 256 # dimension of attention
|
||||||
dropout_rate: 0.1
|
attention_heads: 4
|
||||||
positional_dropout_rate: 0.1
|
linear_units: 2048 # the number of units of position-wise feed forward
|
||||||
attention_dropout_rate: 0.0
|
num_blocks: 12 # the number of encoder blocks
|
||||||
input_layer: conv2d # encoder architecture type
|
dropout_rate: 0.1
|
||||||
normalize_before: true
|
positional_dropout_rate: 0.1
|
||||||
use_dynamic_chunk: true
|
attention_dropout_rate: 0.0
|
||||||
use_dynamic_left_chunk: false
|
input_layer: conv2d # encoder input type, you can chose conv2d, conv2d6 and conv2d8
|
||||||
|
normalize_before: true
|
||||||
|
use_dynamic_chunk: true
|
||||||
|
use_dynamic_left_chunk: false
|
||||||
|
|
||||||
# decoder related
|
# decoder related
|
||||||
decoder: transformer
|
decoder: transformer
|
||||||
decoder_conf:
|
decoder_conf:
|
||||||
attention_heads: 4
|
attention_heads: 4
|
||||||
linear_units: 2048
|
linear_units: 2048
|
||||||
num_blocks: 6
|
num_blocks: 6
|
||||||
dropout_rate: 0.1
|
dropout_rate: 0.1
|
||||||
positional_dropout_rate: 0.1
|
positional_dropout_rate: 0.1
|
||||||
self_attention_dropout_rate: 0.0
|
self_attention_dropout_rate: 0.0
|
||||||
src_attention_dropout_rate: 0.0
|
src_attention_dropout_rate: 0.0
|
||||||
|
|
||||||
# hybrid CTC/attention
|
# hybrid CTC/attention
|
||||||
model_conf:
|
model_conf:
|
||||||
ctc_weight: 0.3
|
ctc_weight: 0.3
|
||||||
lsm_weight: 0.1 # label smoothing option
|
lsm_weight: 0.1 # label smoothing option
|
||||||
length_normalized_loss: false
|
length_normalized_loss: false
|
||||||
|
|
||||||
# use raw_wav or kaldi feature
|
|
||||||
raw_wav: true
|
|
||||||
|
|
||||||
# feature extraction
|
training:
|
||||||
collate_conf:
|
n_epoch: 20
|
||||||
# waveform level config
|
accum_grad: 1
|
||||||
wav_distortion_conf:
|
global_grad_clip: 5.0
|
||||||
wav_dither: 0.0
|
optim: adam
|
||||||
wav_distortion_rate: 0.0
|
optim_conf:
|
||||||
distortion_methods: []
|
lr: 0.002
|
||||||
speed_perturb: false
|
weight_decay: 1e-06
|
||||||
feature_extraction_conf:
|
scheduler: warmuplr # pytorch v1.1.0+ required
|
||||||
feature_type: 'fbank'
|
scheduler_conf:
|
||||||
mel_bins: 80
|
warmup_steps: 25000
|
||||||
frame_shift: 10
|
lr_decay: 1.0
|
||||||
frame_length: 25
|
log_interval: 1
|
||||||
using_pitch: false
|
|
||||||
# spec level config
|
|
||||||
# spec_swap: false
|
|
||||||
feature_dither: 0.0 # add dither [-feature_dither,feature_dither] on fbank feature
|
|
||||||
spec_aug: true
|
|
||||||
spec_aug_conf:
|
|
||||||
warp_for_time: False
|
|
||||||
num_t_mask: 2
|
|
||||||
num_f_mask: 2
|
|
||||||
max_t: 50
|
|
||||||
max_f: 10
|
|
||||||
max_w: 80
|
|
||||||
|
|
||||||
|
|
||||||
# dataset related
|
decoding:
|
||||||
dataset_conf:
|
batch_size: 64
|
||||||
max_length: 40960
|
error_rate_type: wer
|
||||||
min_length: 0
|
decoding_method: attention # 'attention', 'ctc_greedy_search', 'ctc_prefix_beam_search', 'attention_rescoring'
|
||||||
batch_type: 'static' # static or dynamic
|
lang_model_path: data/lm/common_crawl_00.prune01111.trie.klm
|
||||||
# the size of batch_size should be set according to your gpu memory size, here we used 2080ti gpu whose memory size is 11GB
|
alpha: 2.5
|
||||||
batch_size: 16
|
beta: 0.3
|
||||||
sort: true
|
beam_size: 10
|
||||||
|
cutoff_prob: 1.0
|
||||||
|
cutoff_top_n: 0
|
||||||
|
num_proc_bsearch: 8
|
||||||
|
ctc_weight: 0.0 # ctc weight for attention rescoring decode mode.
|
||||||
|
decoding_chunk_size: -1 # decoding chunk size. Defaults to -1.
|
||||||
|
# <0: for decoding, use full chunk.
|
||||||
|
# >0: for decoding, use fixed chunk size as set.
|
||||||
|
# 0: used for training, it's prohibited here.
|
||||||
|
num_decoding_left_chunks: -1 # number of left chunks for decoding. Defaults to -1.
|
||||||
|
simulate_streaming: False # simulate streaming inference. Defaults to False.
|
||||||
|
|
||||||
grad_clip: 5
|
|
||||||
accum_grad: 1
|
|
||||||
max_epoch: 180
|
|
||||||
log_interval: 100
|
|
||||||
|
|
||||||
optim: adam
|
|
||||||
optim_conf:
|
|
||||||
lr: 0.002
|
|
||||||
scheduler: warmuplr # pytorch v1.1.0+ required
|
|
||||||
scheduler_conf:
|
|
||||||
warmup_steps: 25000
|
|
@ -1,80 +1,106 @@
|
|||||||
|
# https://yaml.org/type/float.html
|
||||||
|
data:
|
||||||
|
train_manifest: data/manifest.tiny
|
||||||
|
dev_manifest: data/manifest.tiny
|
||||||
|
test_manifest: data/manifest.tiny
|
||||||
|
vocab_filepath: data/vocab.txt
|
||||||
|
unit_type: 'spm'
|
||||||
|
spm_model_prefix: 'data/bpe_unigram_200'
|
||||||
|
mean_std_filepath: ""
|
||||||
|
augmentation_config: conf/augmentation.json
|
||||||
|
batch_size: 4
|
||||||
|
min_input_len: 0.5 # second
|
||||||
|
max_input_len: 20.0 # second
|
||||||
|
min_output_len: 0.0 # tokens
|
||||||
|
max_output_len: 400.0 # tokens
|
||||||
|
min_output_input_ratio: 0.05
|
||||||
|
max_output_input_ratio: 10.0
|
||||||
|
raw_wav: True # use raw_wav or kaldi feature
|
||||||
|
specgram_type: fbank #linear, mfcc, fbank
|
||||||
|
feat_dim: 80
|
||||||
|
delta_delta: False
|
||||||
|
dither: 1.0
|
||||||
|
target_sample_rate: 16000
|
||||||
|
max_freq: None
|
||||||
|
n_fft: None
|
||||||
|
stride_ms: 10.0
|
||||||
|
window_ms: 25.0
|
||||||
|
use_dB_normalization: True
|
||||||
|
target_dB: -20
|
||||||
|
random_seed: 0
|
||||||
|
keep_transcription_text: False
|
||||||
|
sortagrad: True
|
||||||
|
shuffle_method: batch_shuffle
|
||||||
|
num_workers: 2
|
||||||
|
|
||||||
|
|
||||||
# network architecture
|
# network architecture
|
||||||
# encoder related
|
model:
|
||||||
encoder: transformer
|
cmvn_file: "data/mean_std.json"
|
||||||
encoder_conf:
|
cmvn_file_type: "json"
|
||||||
output_size: 256 # dimension of attention
|
# encoder related
|
||||||
attention_heads: 4
|
encoder: transformer
|
||||||
linear_units: 2048 # the number of units of position-wise feed forward
|
encoder_conf:
|
||||||
num_blocks: 12 # the number of encoder blocks
|
output_size: 256 # dimension of attention
|
||||||
dropout_rate: 0.1
|
attention_heads: 4
|
||||||
positional_dropout_rate: 0.1
|
linear_units: 2048 # the number of units of position-wise feed forward
|
||||||
attention_dropout_rate: 0.0
|
num_blocks: 12 # the number of encoder blocks
|
||||||
input_layer: conv2d # encoder architecture type
|
dropout_rate: 0.1
|
||||||
normalize_before: true
|
positional_dropout_rate: 0.1
|
||||||
|
attention_dropout_rate: 0.0
|
||||||
|
input_layer: conv2d # encoder input type, you can chose conv2d, conv2d6 and conv2d8
|
||||||
|
normalize_before: true
|
||||||
|
|
||||||
# decoder related
|
# decoder related
|
||||||
decoder: transformer
|
decoder: transformer
|
||||||
decoder_conf:
|
decoder_conf:
|
||||||
attention_heads: 4
|
attention_heads: 4
|
||||||
linear_units: 2048
|
linear_units: 2048
|
||||||
num_blocks: 6
|
num_blocks: 6
|
||||||
dropout_rate: 0.1
|
dropout_rate: 0.1
|
||||||
positional_dropout_rate: 0.1
|
positional_dropout_rate: 0.1
|
||||||
self_attention_dropout_rate: 0.0
|
self_attention_dropout_rate: 0.0
|
||||||
src_attention_dropout_rate: 0.0
|
src_attention_dropout_rate: 0.0
|
||||||
|
|
||||||
# hybrid CTC/attention
|
# hybrid CTC/attention
|
||||||
model_conf:
|
model_conf:
|
||||||
ctc_weight: 0.3
|
ctc_weight: 0.3
|
||||||
lsm_weight: 0.1 # label smoothing option
|
lsm_weight: 0.1 # label smoothing option
|
||||||
length_normalized_loss: false
|
length_normalized_loss: false
|
||||||
|
|
||||||
# use raw_wav or kaldi feature
|
|
||||||
raw_wav: true
|
|
||||||
|
|
||||||
# feature extraction
|
training:
|
||||||
collate_conf:
|
n_epoch: 20
|
||||||
# waveform level config
|
accum_grad: 1
|
||||||
wav_distortion_conf:
|
global_grad_clip: 5.0
|
||||||
wav_dither: 0.1
|
optim: adam
|
||||||
wav_distortion_rate: 0.0
|
optim_conf:
|
||||||
distortion_methods: []
|
lr: 0.002
|
||||||
speed_perturb: true
|
weight_decay: 1e-06
|
||||||
feature_extraction_conf:
|
scheduler: warmuplr # pytorch v1.1.0+ required
|
||||||
feature_type: 'fbank'
|
scheduler_conf:
|
||||||
mel_bins: 80
|
warmup_steps: 25000
|
||||||
frame_shift: 10
|
lr_decay: 1.0
|
||||||
frame_length: 25
|
log_interval: 1
|
||||||
using_pitch: false
|
|
||||||
# spec level config
|
|
||||||
feature_dither: 0.0 # add dither [-feature_dither,feature_dither] on fbank feature
|
|
||||||
spec_aug: true
|
|
||||||
spec_aug_conf:
|
|
||||||
warp_for_time: False
|
|
||||||
num_t_mask: 2
|
|
||||||
num_f_mask: 2
|
|
||||||
max_t: 50
|
|
||||||
max_f: 10
|
|
||||||
max_w: 80
|
|
||||||
|
|
||||||
|
|
||||||
# dataset related
|
decoding:
|
||||||
dataset_conf:
|
batch_size: 64
|
||||||
max_length: 40960
|
error_rate_type: wer
|
||||||
min_length: 0
|
decoding_method: attention # 'attention', 'ctc_greedy_search', 'ctc_prefix_beam_search', 'attention_rescoring'
|
||||||
batch_type: 'static' # static or dynamic
|
lang_model_path: data/lm/common_crawl_00.prune01111.trie.klm
|
||||||
# the size of batch_size should be set according to your gpu memory size, here we used 2080ti gpu whose memory size is 11GB
|
alpha: 2.5
|
||||||
batch_size: 26
|
beta: 0.3
|
||||||
sort: true
|
beam_size: 10
|
||||||
|
cutoff_prob: 1.0
|
||||||
|
cutoff_top_n: 0
|
||||||
|
num_proc_bsearch: 8
|
||||||
|
ctc_weight: 0.0 # ctc weight for attention rescoring decode mode.
|
||||||
|
decoding_chunk_size: -1 # decoding chunk size. Defaults to -1.
|
||||||
|
# <0: for decoding, use full chunk.
|
||||||
|
# >0: for decoding, use fixed chunk size as set.
|
||||||
|
# 0: used for training, it's prohibited here.
|
||||||
|
num_decoding_left_chunks: -1 # number of left chunks for decoding. Defaults to -1.
|
||||||
|
simulate_streaming: False # simulate streaming inference. Defaults to False.
|
||||||
|
|
||||||
grad_clip: 5
|
|
||||||
accum_grad: 1
|
|
||||||
max_epoch: 240
|
|
||||||
log_interval: 100
|
|
||||||
|
|
||||||
optim: adam
|
|
||||||
optim_conf:
|
|
||||||
lr: 0.002
|
|
||||||
scheduler: warmuplr # pytorch v1.1.0+ required
|
|
||||||
scheduler_conf:
|
|
||||||
warmup_steps: 25000
|
|
@ -0,0 +1,23 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
if [ $# != 2 ];then
|
||||||
|
echo "usage: ${0} ckpt_dir avg_num"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ckpt_dir=${1}
|
||||||
|
average_num=${2}
|
||||||
|
decode_checkpoint=${ckpt_dir}/avg_${average_num}.pdparams
|
||||||
|
|
||||||
|
python3 -u ${MAIN_ROOT}/utils/avg_model.py \
|
||||||
|
--dst_model ${decode_checkpoint} \
|
||||||
|
--ckpt_dir ${ckpt_dir} \
|
||||||
|
--num ${average_num} \
|
||||||
|
--val_best
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed in avg ckpt!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
@ -1,18 +1,31 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
if [ $# != 2 ];then
|
||||||
|
echo "usage: CUDA_VISIBLE_DEVICES=0 ${0} config_path ckpt_name"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
ngpu=$(echo $CUDA_VISIBLE_DEVICES | awk -F "," '{print NF}')
|
ngpu=$(echo $CUDA_VISIBLE_DEVICES | awk -F "," '{print NF}')
|
||||||
echo "using $ngpu gpus..."
|
echo "using $ngpu gpus..."
|
||||||
|
|
||||||
|
config_path=$1
|
||||||
|
ckpt_name=$2
|
||||||
|
device=gpu
|
||||||
|
if [ ngpu != 0 ];then
|
||||||
|
device=cpu
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p exp
|
||||||
|
|
||||||
python3 -u ${BIN_DIR}/train.py \
|
python3 -u ${BIN_DIR}/train.py \
|
||||||
--device 'gpu' \
|
--device ${device} \
|
||||||
--nproc ${ngpu} \
|
--nproc ${ngpu} \
|
||||||
--config conf/conformer.yaml \
|
--config ${config_path} \
|
||||||
--output ckpt-${1}
|
--output exp/${ckpt_name}
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Failed in training!"
|
echo "Failed in training!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
Loading…
Reference in new issue