今天学到了一个带参数调试的方式,记录一下,一般人家的代码会是
一般人家论文的代码都是这样的,特别是计算机那边的论文,如果我想跟着人家的代码跑一遍,就涉及到带参数的代码调试
测试代码
"""Main script for ADDA."""
import sys
import torch
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-e', '--expList', nargs="+", default=None)
parser.add_argument('-b', '--borgy', default=0, type=int)
parser.add_argument('-br', '--borgy_running', default=0, type=int)
parser.add_argument('-m', '--mode', default="max")
parser.add_argument('-rs', '--reset_src', default=0, type=int)
parser.add_argument('-rt', '--reset_tgt', default=0, type=int)
parser.add_argument('-g', '--gpu', type=int)
parser.add_argument('-s', '--summary', type=int, default=0)
parser.add_argument('-c', '--configList', nargs="+", default=None)
parser.add_argument('-l', '--lossList', nargs="+", default=None)
parser.add_argument('-d', '--datasetList', nargs="+", default=None)
parser.add_argument('-metric', '--metricList', nargs="+", default=None)
parser.add_argument('-model', '--modelList', nargs="+", default=None)
parser.add_argument('-aa', '--testpara', nargs="+", default=None)
parser.add_argument('-n', '--nepochs', default=0,type =int)
args = parser.parse_args()
print("parser argument done.!!!!!!!")
for i in range(args.nepochs):
print(i)
print("done")
首先第一步,
点击 运行 --> 添加配置,那么就会打开一个launch.json文件
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": ["-e","indfdaf", "-n","10","-aa","xiaokang"]
}
]
}
注意这个文件,可以在最后的加入一行代码
"args": ["-e","indfdaf", "-n","10","-aa","xiaokang"]
然后进行点击运行---->启动调试,然后运行时就可以发现
结果如下
这里可以看到这个结果就已经把参数带上了
最终调试的结果是
但是需要注意的是,如果不是调试模式,这个参数是没有用的,如果直接运行的话,结果如下
parser = argparse.ArgumentParser("Matilda")
parser.add_argument('--seed', type=int, default=1, help='seed')
parser.add_argument('--augmentation', type=bool, default= True, help='if augmentation or not')
############# for data build ##############
parser.add_argument('--rna', metavar='DIR', default='NULL', help='path to train rna data')
parser.add_argument('--adt', metavar='DIR', default='NULL', help='path to train adt data')
parser.add_argument('--atac', metavar='DIR', default='NULL', help='path to train atac data')
parser.add_argument('--cty', metavar='DIR', default='NULL', help='path to train cell type label')
############## for training #################
parser.add_argument('--batch_size', type=int, default=64, help='batch size')
parser.add_argument('--epochs', type=int, default=30, help='num of training epochs')
parser.add_argument('--lr', type=float, default=0.02, help='init learning rate')
############# for model build ##############
parser.add_argument('--z_dim', type=int, default=100, help='the number of neurons in latent space')
parser.add_argument('--hidden_rna', type=int, default=185, help='the number of neurons for RNA layer')
parser.add_argument('--hidden_adt', type=int, default=30, help='the number of neurons for ADT layer')
parser.add_argument('--hidden_atac', type=int, default=185, help='the number of neurons for ATAC layer')
args = parser.parse_args()
并没有缩写
配置文件如下
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": ["--rna","../data/TEAseq/train_rna.h5",
"--adt","../data/TEAseq/train_adt.h5",
"--atac", "../data/TEAseq/train_atac.h5",
"--cty","../data/TEAseq/train_cty.csv",]
}
]
}