【发布时间】:2022-10-02 02:53:24
【问题描述】:
我有一个没有类的 train.py 文件,只是一个函数列表。在导入语句之后的开头有几行:
parser = argparse.ArgumentParser(description=\'PyTorch ImageNet Training\')
parser.add_argument(\'data\', metavar=\'DIR\',
help=\'path to dataset\')
parser.add_argument(\'--model-dir\', type=str, default=\'\',
help=\'path to desired output directory for saving model \'
\'checkpoints (default: current directory)\')
parser.add_argument(\'-a\', \'--arch\', metavar=\'ARCH\', default=\'resnet18\',
choices=model_names,
help=\'model architecture: \' +
\' | \'.join(model_names) +
\' (default: resnet18)\')
我将此文件放在第二个 py 文件 app.py 的文件夹中,并希望从 app.py 运行它
import train as train
通常从命令行调用 train.py 为:
train.py --model-dir=\"sdcsdc\" --batch-size=333 .... path_to_datafolder
但我应该从 app.py 调用这个文件。如何导入这个 train.py 文件并在 app.py 中设置参数?
-
您为参数设置了一堆默认值,然后在
if __name__ == \"__main__\":块中(将在文件单独运行时执行),设置argparse选项。如果文件被导入,则忽略 argparse 选项。 -
此外,
import train as train是多余的。 -
我不想再次重写train.py,就用它。但是通过导入,我觉得我应该改变接收论点的逻辑。
标签: python import command-line module arguments