Skip to content

Commit

Permalink
add st1 of mini_an4
Browse files Browse the repository at this point in the history
  • Loading branch information
D-Keqi authored Apr 19, 2022
1 parent 1800b0b commit 48fcab7
Show file tree
Hide file tree
Showing 10 changed files with 147 additions and 0 deletions.
110 changes: 110 additions & 0 deletions egs2/mini_an4/st1/cmd.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# ====== About run.pl, queue.pl, slurm.pl, and ssh.pl ======
# Usage: <cmd>.pl [options] JOB=1:<nj> <log> <command...>
# e.g.
# run.pl --mem 4G JOB=1:10 echo.JOB.log echo JOB
#
# Options:
# --time <time>: Limit the maximum time to execute.
# --mem <mem>: Limit the maximum memory usage.
# -–max-jobs-run <njob>: Limit the number parallel jobs. This is ignored for non-array jobs.
# --num-threads <ngpu>: Specify the number of CPU core.
# --gpu <ngpu>: Specify the number of GPU devices.
# --config: Change the configuration file from default.
#
# "JOB=1:10" is used for "array jobs" and it can control the number of parallel jobs.
# The left string of "=", i.e. "JOB", is replaced by <N>(Nth job) in the command and the log file name,
# e.g. "echo JOB" is changed to "echo 3" for the 3rd job and "echo 8" for 8th job respectively.
# Note that the number must start with a positive number, so you can't use "JOB=0:10" for example.
#
# run.pl, queue.pl, slurm.pl, and ssh.pl have unified interface, not depending on its backend.
# These options are mapping to specific options for each backend and
# it is configured by "conf/queue.conf" and "conf/slurm.conf" by default.
# If jobs failed, your configuration might be wrong for your environment.
#
#
# The official documentation for run.pl, queue.pl, slurm.pl, and ssh.pl:
# "Parallelization in Kaldi": http://kaldi-asr.org/doc/queue.html
# =========================================================~


# Select the backend used by run.sh from "local", "stdout", "sge", "slurm", or "ssh"
cmd_backend='local'

# Local machine, without any Job scheduling system
if [ "${cmd_backend}" = local ]; then

# The other usage
export train_cmd="run.pl"
# Used for "*_train.py": "--gpu" is appended optionally by run.sh
export cuda_cmd="run.pl"
# Used for "*_recog.py"
export decode_cmd="run.pl"

# Local machine logging to stdout and log file, without any Job scheduling system
elif [ "${cmd_backend}" = stdout ]; then

# The other usage
export train_cmd="stdout.pl"
# Used for "*_train.py": "--gpu" is appended optionally by run.sh
export cuda_cmd="stdout.pl"
# Used for "*_recog.py"
export decode_cmd="stdout.pl"


# "qsub" (Sun Grid Engine, or derivation of it)
elif [ "${cmd_backend}" = sge ]; then
# The default setting is written in conf/queue.conf.
# You must change "-q g.q" for the "queue" for your environment.
# To know the "queue" names, type "qhost -q"
# Note that to use "--gpu *", you have to setup "complex_value" for the system scheduler.

export train_cmd="queue.pl"
export cuda_cmd="queue.pl"
export decode_cmd="queue.pl"


# "qsub" (Torque/PBS.)
elif [ "${cmd_backend}" = pbs ]; then
# The default setting is written in conf/pbs.conf.

export train_cmd="pbs.pl"
export cuda_cmd="pbs.pl"
export decode_cmd="pbs.pl"


# "sbatch" (Slurm)
elif [ "${cmd_backend}" = slurm ]; then
# The default setting is written in conf/slurm.conf.
# You must change "-p cpu" and "-p gpu" for the "partition" for your environment.
# To know the "partion" names, type "sinfo".
# You can use "--gpu * " by default for slurm and it is interpreted as "--gres gpu:*"
# The devices are allocated exclusively using "${CUDA_VISIBLE_DEVICES}".

export train_cmd="slurm.pl"
export cuda_cmd="slurm.pl"
export decode_cmd="slurm.pl"

elif [ "${cmd_backend}" = ssh ]; then
# You have to create ".queue/machines" to specify the host to execute jobs.
# e.g. .queue/machines
# host1
# host2
# host3
# Assuming you can login them without any password, i.e. You have to set ssh keys.

export train_cmd="ssh.pl"
export cuda_cmd="ssh.pl"
export decode_cmd="ssh.pl"

# This is an example of specifying several unique options in the JHU CLSP cluster setup.
# Users can modify/add their own command options according to their cluster environments.
elif [ "${cmd_backend}" = jhu ]; then

export train_cmd="queue.pl --mem 2G"
export cuda_cmd="queue-freegpu.pl --mem 2G --gpu 1 --config conf/queue.conf"
export decode_cmd="queue.pl --mem 4G"

else
echo "$0: Error: Unknown cmd_backend=${cmd_backend}" 1>&2
return 1
fi
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/db.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../TEMPLATE/st1/db.sh
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/downloads.tar.gz
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../../egs/mini_an4/asr1/downloads.tar.gz
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/path.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../TEMPLATE/st1/path.sh
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/pyscripts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../TEMPLATE/asr1/pyscripts
29 changes: 29 additions & 0 deletions egs2/mini_an4/st1/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Set bash to 'debug' mode, it will exit on :
# -e 'error', -u 'undefined variable', -o ... 'error in pipeline', -x 'print commands',
set -e
set -u
set -o pipefail

src_case=lc.rm
tgt_case=lc.rm
st_config=conf/train_st.yaml

./st.sh \
--src_lang en \
--tgt_lang en \
--src_token_type "bpe" \
--src_nbpe 30 \
--tgt_token_type "bpe" \
--tgt_nbpe 30 \
--src_case ${src_case} \
--tgt_case ${tgt_case} \
--src_bpe_train_text "data/train_nodev/text.${src_case}.en" \
--tgt_bpe_train_text "data/train_nodev/text.${tgt_case}.en" \
--use_lm false \
--token_joint false \
--st_config "${st_config}" \
--train_set "train_nodev" \
--valid_set "train_dev" \
--test_sets "train_dev test test_seg" \
--lm_train_text "data/train_nodev/text.${tgt_case}.en" "$@"
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/scripts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../TEMPLATE/asr1/scripts
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/st.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../TEMPLATE/st1/st.sh
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/steps
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../../tools/kaldi/egs/wsj/s5/steps
1 change: 1 addition & 0 deletions egs2/mini_an4/st1/utils
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../../tools/kaldi/egs/wsj/s5/utils

0 comments on commit 48fcab7

Please sign in to comment.