Ubuntu批量运行命令/批量代码调参
最近对代码结果进行调参,需要进行统计实验,一开始坐在电脑前傻傻的调参,改个参数重新点‘run’运行,效率非常低下。
实际上,代码包括其参数可以通过命令行完成,而批量命令行可以通过.sh文件完成
- 在代码中导入argparse库,使参数可在命令行调整
import argparse
""" 设置系统参数及CPU """
parser = argparse.ArgumentParser(description='相关参数 可在命令行编辑')
parser.add_argument('--dataset', type=str, default='Houston', help='数据集')
parser.add_argument('--numTrain', type=int, default=20, help='每类训练样本数量')
args = parser.parse_args()
""" 获取原始数据及基本信息 """
data_hsi = matDataLoad('./datasets/' + args.dataset + '.mat')
gt_hsi = matDataLoad('./datasets/' + args.dataset + '_gt.mat')
train_idx, test_idx = split_dataset_equal(gt_hsi_1D, args.numTrain) # 分割训练集和测试集,每类数量一致
# ...
- 整理成命令行格式
python main_ASCL_final.py --dataset=Houston --numTrain=20
- 新建auto-code.sh文件,放入批量命令
#!/bin/bash
python main_ASCL_final.py --dataset=Houston --numTrain=20
python main_ASCL_final.py --dataset=PaviaU --numTrain=20
python main_ASCL_final.py --dataset=Salinas --numTrain=20
python main_ASCL_final.py --dataset=Houston --numTrain=15
python main_ASCL_final.py --dataset=PaviaU --numTrain=15
python main_ASCL_final.py --dataset=Salinas--numTrain=15
- 为该文件赋予权限,并运行
chmod +x auto-code.sh
sh auto-code.sh
代码跑一晚上,明天批量复制结果!