• 华为ModelArts训练Alexnet模型


    一、参考资料

    ModelArts Web训练

    二、关键步骤

    2.1 上传源码到obs

    .
    |-- dataset  # 数据集
    |   |-- train
    |   `-- val
    `-- train
        |-- data.py
        |-- model.py
        `-- train_npu.py  # 启动文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.2 obs创建目录

    obs目录结构

    log:日志存放路径
    output:训练输出路径
    
    • 1
    • 2

    在这里插入图片描述

    2.3 创建算法

    算法管理
    	---》创建
    
    • 1
    • 2
    名称:自定义
    描述:自定义
    创建方式:自定义
    	AI引擎:tensorflow_1.15-cann_5.0.3-py_3.7-euler_2.8.3-aarch64
    	代码目录:/xxx/alexnet/train/
    	启动文件:/xxx/alexnet/train/train_npu.py
    输入数据配置:数据集路径
    	映射名称:自定义(默认即可)
    	代码路径参数:data_url
    输出数据配置:训练输出路径
    	映射名称:自定义(默认即可)
    	代码路径参数:train_url
    其他:默认即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    2.4 创建训练作业

    训练管理
    	---》训练作业
    		---》创建
    
    • 1
    • 2
    • 3
    名称:自定义
    描述:自定义
    算法:
    	---》我的算法
    		---》勾选刚创建的算法
    训练输入:
    	---》data_url:/xxx/alexnet/dataset/
    训练输出:
    	---》train_url:/xxx/alexnet/output/
    资源池:根据实际需求
    资源类型:Ascend
    规格:根据实际需求
    计算节点个数:根据实际需求
    作业日志路径:/xxx/alexnet/log/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    2.5 训练完成

    在这里插入图片描述

    三、FAQ

    Q:The input shape of GeOp5_0 is dynamic

    【南京大学】【MEMNET】【ID1085】 模型 npu迁移时报错: The input shape of GeOp5_0 is dynamic

    File "/home/ma-user/modelarts/user-job-dir/train/train_npu.py", line 114, in main
        test_loss, test_acc, summary = sess.run([cost, accuracy, summary_op], feed_dict=val_feed)
      File "/home/ma-user/anaconda/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 956, in run
        run_metadata_ptr)
      File "/home/ma-user/anaconda/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1180, in _run
        feed_dict_tensor, options, run_metadata)
      File "/home/ma-user/anaconda/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1359, in _do_run
        run_metadata)
      File "/home/ma-user/anaconda/lib/python3.7/site-packages/tensorflow_core/python/client/session.py", line 1384, in _do_call
        raise type(e)(node_def, op, message)
    tensorflow.python.framework.errors_impl.InternalError: The input shape of GeOp5_0 is dynamic, please ensure that npu option[dynamic_input] is set correctly, for more details please refer to the migration guide.
    	 [[{{node GeOp5_0}}]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    错误原因:
    模型训练过程中存在输入shape变化的问题
    
    解决办法:
    train_npu.py中添加
    custom_op.parameter_map["dynamic_input"].b = True
    custom_op.parameter_map["dynamic_graph_execute_mode"].s = tf.compat.as_bytes("lazy_recompile")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    Vue 3实战:打造交互丰富的任务管理应用
    【压缩感知 SDA】A Deep Learning Approach to Structured Signal Recovery
    java计算机毕业设计游戏账号交易源程序+mysql+系统+lw文档+远程调试
    C语言排序代码汇总测试
    【LeetCode】310c:将区间分为最少组数
    python基础命令
    【网络安全】——sql注入之云锁bypass
    API是什么&API管理存在哪些问题,如何解决?
    ElementUI之el-table标题列中显示el-tooltip
    tensor的不同维度种类
  • 原文地址:https://blog.csdn.net/m0_37605642/article/details/125475010