在训练深度学习模型时,为了生产力,避免手动调参等,一般写成shell脚本的形式,执行一次shell就可以把所有的python程序给运行完毕。
例如,我需要探究batchsize的影响,一般新手入门可能这样做:
如果用shell就可以这样写:
train.sh:
#!/bin/bash
$python main.py --bs 8
$python main.py --bs 16
$python main.py --bs 32
$python main.py --bs
当然也可以这样写:
train.sh:
#!/bin/bash
# 指定参数范围
BS=(8 16 32 )
# 循环遍历所有的参数
for i in "${BS[@]}"
do
# 调用 main.py,并传递当前的i值作为参数
$python main.py --bs $i
done
然后,一行代码就可以执行上述train.sh文件:
$ bash train.sh
接下来是本文的重点,如何解决运行脚本路径问题?
一般我们会在python工程下新建一个scripts文件,并将所有的脚本.sh文件全面放在这里。下面介绍如何执行scripts文件下的脚本。
我的python工程文件树如下:
My_project
|-- datasets
|-- logs
|-- models
|-- scripts
| `-- train1.sh
| `-- train2.sh
| `-- train3.sh
|-- main.py
其中,train1.sh代码如下:
#!/bin/bash
$python main.py --bs 8
$python main.py --bs 16
$python main.py --bs 32
$python main.py --bs
正确运行train1.sh代码的方式:
- 通过
cd将路径切换到根目录My_project下 (不要进入scripts文件夹下)。
- 在当前My_project 路径下执行:
$ bash scripts/train1.sh