Shell | Transformer-xl代码的shell代码实现
实现网址:https://github.com/kimiyoung/transformer-xl/tree/master/pytorch
图中的.sh
文件就是shell命令实现。可以从文件命名看出,中间段是对应的数据集,第三段是规格。我们点开一个看一下:
#!/bin/bash
if [[ $1 == 'train' ]]; then
echo 'Run training...'
python train.py \
--cuda \
--data ../data/wikitext-103/ \
--dataset wt103 \
--adaptive \
--n_layer 16 \
--d_model 410 \
--n_head 10 \
--d_head 41 \
--d_inner 2100 \
--dropout 0.1 \
--dropatt 0.0 \
--optim adam \
--lr 0.00025 \
--warmup_step 0 \
--max_step 200000 \
--tgt_len 150 \
--mem_len 150 \
--eval_tgt_len 150 \
--batch_size 60 \
--multi_gpu \
--gpu0_bsz 4 \
${@:2}
elif [[ $1 == 'eval' ]]; then
echo 'Run evaluation...'
python eval.py \
--cuda \
--data ../data/wikitext-103/ \
--dataset wt103 \
--tgt_len 64 \
--mem_len 640 \
--clamp_len 400 \
--same_length \
--split test \
${@:2}
else
echo 'unknown argment 1'
fi
执行命令:
-
Training
bash run_enwik8_base.sh train --work_dir PATH_TO_WORK_DIR
-
Evaluation
bash run_enwik8_base.sh eval --work_dir PATH_TO_WORK_DIR
如果你在命令行输入 bash run_wt103_base.sh train --work_dir PATH_TO_WORK_DIR
命令,
$0
:指的是命令中的run_wt103_base.sh
$1
:指的是命令中的train
$2
:指的是命令中的--work_dir
$3
:指的是命令中的PATH_TO_WORK_DIR
经过if判断语句,条件为 $1
位置的参数是否等于train
,如果是:
- 打印“Run training...”
- 然后执行python 指令,运行 train.py 文件。下面都是对应传入的参数。
- 其中有一行是
${@:2}
:表示从第二个参数开始的所有参数。在这个命令中则表示从第二个参数开始的所有参数,即--work_dir
和PATH_TO_WORK_DIR
。
在这个命令中,--work_dir PATH_TO_WORK_DIR
将被传递给 train.py
脚本,这将指定一个工作目录,以便 train.py
可以将模型文件和日志文件保存在这个目录中。可以在 train.py
脚本中使用 argparse
库来解析这些命令行参数,例如:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--work_dir', type=str, default='.', help='path to work directory')
args = parser.parse_args()
print(args.work_dir) # 输出:PATH_TO_WORK_DIR
在这个例子中,argparse
将解析命令行参数 --work_dir PATH_TO_WORK_DIR
,并将其作为一个字符串类型的参数传递给 train.py
脚本。args.work_dir
将包含 PATH_TO_WORK_DIR
,可以在脚本中使用这个参数来设置工作目录。
如果条件为 $1
位置的参数等于eval
:
同上,会执行对应python命令。
否则全不是,输出:"unknown argment 1"。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)