• windows系统使用cmd执行.py文件并且传入参数 | 神经网络模型训练 | 主打能用就行


    0. 本文概括/ 需求

    1. 这个文章cover了一下需求:

      • python环境由annaconda (conda同理)控制
      • 指定3个random seed,并且使用cmd命令依次执行train.py
      • train.py文件需要传入参数seed
      • train.py文件中,需要import位于其他.py文件中自定义的class/ function
    2. 本文涉及到的文件的组织架构为:

    - PAProj
    	- GT_model
    		- GT_2.py   # 含有自定义的函数,被train.py import
    	- MLP
    		- net_saved # 保存模型的路径
    		- train.py  # 最终执行的文件
    	- Data	  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1. 必要检查/ 语句

    1. 因为 train.py需要import位于其他.py文件中自定义的class/ function,例如 train.py中的这一句:
    from GT_model.GT_2 import eq1 as EQ1
    
    • 1
    • 注意,自己在编译器,比如pycharm,中执行train.py时,如果GT_model这个路径下没有__init__.py文件,其实也是可以运行的
    • 但是使用cmd执行时会“看不到”,因此必须添加GT_model/__init__.py
      • __init__.py文件用于标记一个目录为Python的包(package),这样该目录下的Python文件就能被组织进同一个命名空间。
      • __init__.py文件不是强制性的,但是是标准的。
    1. train.py使用的路径最好写成绝对路径,一种常见的格式为:
        data_root = "D:/Desktop/PROJ/PAProj"
        net_root_path =  os.path.join(data_root, "MLP/net_saved/")
    
    • 1
    • 2
    1. 设置工作环境:
    import sys
    sys.path.insert(0, 'D:\\Desktop\\PROJ\\PAProj')
    
    • 1
    • 2

    这个语句将指定的目录D:\\Desktop\\PROJ\\PAProj添加到Python的模块搜索路径的最前面。因此当我们尝试导入一个模块时,Python解释器将首先在这个目录下查找该模块

    1. argparse语句
    import argparse
    # 创建一个解析器对象
    parser = argparse.ArgumentParser(description="Train under a specific seed.")
    # 添加一会我们要在cmd中传入的seed参数
    parser.add_argument("--seed", type=int, required=True, help="Train under a specific seed.")
    # 解析命令行参数
    args = parser.parse_args()
    seed = args.seed
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2. cmd命令

    1. 首先打开cmd后,激活conda环境,笔者这里使用的就是base环境
    # base环境:
    conda activate 
     # xx环境
    conda activate xx
    
    • 1
    • 2
    • 3
    • 4
    1. 定位到python工程:
    D:
    cd D:\Desktop\PROJ\PAProj
    
    • 1
    • 2
    1. 最后一步:执行命令,读入seed,在不同seed下,循环运行3次train.py
    for %i in (62 149 508) do D:\Anaconda\python.exe "MLP\train.py" --seed %i
    
    • 1
    • 最保险的版本是:显式的指定了用哪个版本的python去执行 D:\Anaconda\python.exe
    • 因为当前的工作环境是PAProj,我们想要运行的文件可以写相对路径,但是一定要加引号"MLP\train.py"

    以上教程有很多不合适的地方,主打一个能用就行:)

  • 相关阅读:
    索引优化分析_预热_JOIN
    vue循环列表点击选中,默认选中第一个
    Spark(1)-wordCount入门
    DDR PCB设计布线时,拓扑结构的选择
    理解session,Cookie,token以及js-cookie在实际开发中的使用
    Promise基础知识
    Python爬虫实战:京东商品信息爬取
    MES系统在制造业中的SOP工艺标准管理
    【JavaSE】抽象类与接口(上篇)
    Shell编程-02-正则表达式
  • 原文地址:https://blog.csdn.net/qq_42147816/article/details/133823754