-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtrain-dynamic-tl.sh
executable file
·63 lines (49 loc) · 1.78 KB
/
train-dynamic-tl.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
PARENT_EXPID=$1 # 'pt-en'
EXPID=$2 # 'gl-en_progadapt'
DEVICES=$3 # -1 for cpu
export CUDA_VISIBLE_DEVICES=$DEVICES
EXPDIR=$PWD
ONMT=$EXPDIR/OpenNMT/opennmt
CONFIG=$EXPDIR/config_adapt.yml # update accordingly for different params
MODEL_DEFN=$EXPDIR/model_defn.py # update model capacity, if training single pair or multilingual
RUNDIR=$EXPDIR/models/$EXPID # dir where exp is run
DATADIR=$RUNDIR/data/spdata # preprocessed data
LOG=$RUNDIR/log.train.progadapt
# parent model
PARENTDIR=$EXPDIR/models/$PARENT_EXPID
PARENTMODEL=$PARENTDIR/model
PSRCVOCAB=$PARENTDIR/data/spdata/vocab.src
PTGTVOCAB=$PARENTDIR/data/spdata/vocab.tgt
#SHRDVOCAB=$PARENTDIR/data/spdata/vocab # only for shared vocab
# child model
CHILDDIR=$RUNDIR/model # progadapt model dir
SRCVOCAB=$RUNDIR/data/spdata/vocab.src
TGTVOCAB=$RUNDIR/data/spdata/vocab.tgt
#VOCAB=$RUNDIR/data/spdata/vocab # only for shared vocab
# update vocab setting
MODE="replace" # repalce, merge
INIT="zeros" # zeros, random
if [ -d $PARENTMODEL -a ! -d $CHILDDIR ]; then
echo -e "\nTRAINING PROGADAPT - TRANSFER PARENT TO CHILD MODEL: [$LOG]"
python $ONMT/bin/main.py update_vocab --config $CONFIG --model $MODEL_DEFN \
--checkpoint_path $PARENTMODEL \
--output_dir $CHILDDIR \
--src_vocab $PSRCVOCAB \
--new_src_vocab $SRCVOCAB \
--tgt_vocab $PTGTVOCAB \
--new_tgt_vocab $TGTVOCAB \
--mode $MODE --init $INIT > $LOG 2> $LOG
fi
if [ -d $CHILDDIR ]; then
echo -e "\nTRAINING PROGADAPT - TRAIN CHILD MODEL: [$LOG]"
python $ONMT/bin/main.py train --model $MODEL_DEFN \
--run_dir $RUNDIR --seed 1234 \
--data_dir $DATADIR \
--checkpoint_path $CHILDDIR \
--config $CONFIG \
--num_gpus 1 >> $LOG 2>> $LOG
#--auto_config \
else
echo -e "\nCHILD MODEL MISSING : $CHILDDIR "
fi