云服务器内容精选

  • 安装文件规范 请根据依赖包的类型,在代码目录下放置对应文件: 依赖包为开源安装包时 暂时不支持直接从github的源码中安装。 在“代码目录”中创建一个命名为“pip-requirements.txt”的文件,并且在文件中写明依赖包的包名及其版本号,格式为“包名==版本号”。 例如,“代码目录”对应的OBS路径下,包含模型文件,同时还存在“pip-requirements.txt”文件。“代码目录”的结构如下所示: |---模型启动文件所在OBS文件夹 |---model.py #模型启动文件。 |---pip-requirements.txt #定义的配置文件,用于指定依赖包的包名及版本号。 “pip-requirements.txt”文件内容如下所示: alembic==0.8.6bleach==1.4.3click==6.6 依赖包为whl包时 如果训练后台不支持下载开源安装包或者使用用户编译的whl包时,由于系统无法自动下载并安装,因此需要在“代码目录”放置此whl包,同时创建一个命名为“pip-requirements.txt”的文件,并且在文件中指定此whl包的包名。依赖包必须为“.whl”格式的文件。 例如,“代码目录”对应的OBS路径下,包含模型文件、whl包,同时还存在“pip-requirements.txt”文件。“代码目录”的结构如下所示: |---模型启动文件所在OBS文件夹 |---model.py #模型启动文件。 |---XXX.whl #依赖包。依赖多个时,此处放置多个。 |---pip-requirements.txt #定义的配置文件,用于指定依赖包的包名。 “pip-requirements.txt”文件内容如下所示: numpy-1.15.4-cp36-cp36m-manylinux1_x86_64.whltensorflow-1.8.0-cp36-cp36m-manylinux1_x86_64.whl
  • 训练作业如何调用shell脚本,是否可以执行.sh文件? ModelArts支持调用shell脚本,可以使用python调用“.sh”。具体操作步骤如下: 上传“.sh”脚本至OBS桶,例如“.sh”所在存储位置为 “ /bucket-name/code/test.sh”。 在本地创建“.py”文件,例如“test.py”。由于后台会自动将代码目录下载至容器的“/home/work/user-job-dir/”目录下,因此您可以在启动文件“test.py”中通过如下方式调用“.sh”文件: import osos.system('bash /home/work/user-job-dir/code/test.sh') 将“test.py”文件上传至OBS中,则该文件存储位置为“/bucket-name/code/test.py”。 创建训练作业时,指定的代码目录为“/bucket-name/code/”,启动文件目录为“/bucket-name/code/test.py”。 训练作业创建完成之后就可以使用python调用“.sh”文件。
  • 训练作业中如何判断文件夹是否拷贝完毕? 您可以在训练作业启动文件的脚本中,通过如下方式获取拷贝和被拷贝文件夹大小,根据结果判断是否拷贝完毕: import moxing as moxmox.file.get_size('obs://bucket_name/obs_file',recursive=True) 其中,“get_size”为获取文件或文件夹的大小。“recursive=True”表示类型为文件夹,“True”表示是文件夹,“False”为文件。 如果输出结果为一致,表示文件夹拷贝已完毕。如果输出结果不一致,表示拷贝未结束。
  • 如何在训练中加载部分训练好的参数? 在训练作业时,需要从预训练的模型中加载部分参数,初始化当前模型。请您通过如下方式加载: 通过如下代码,您可以查看所有的参数。 from moxing.tensorflow.utils.hyper_param_flags import mox_flagsprint(mox_flags.get_help()) 通过如下方式控制载入模型时需要恢复的参数名。其中,“checkpoint_include_patterns”为需要恢复的参数,“checkpoint_exclude_patterns”为不需要恢复的参数。 checkpoint_include_patterns: Variables names patterns to include when restoring checkpoint. Such as: conv2d/weights.checkpoint_exclude_patterns: Variables names patterns to include when restoring checkpoint. Such as: conv2d/weights. 通过以下方式控制需要训练的参数列表。其中,“trainable_include_patterns”为需要训练的参数列表,“trainable_exclude_patterns”为不需要训练的参数列表。 --trainable_exclude_patterns: Variables names patterns to exclude for trainable variables. Such as: conv1,conv2.--trainable_include_patterns: Variables names patterns to include for trainable variables. Such as: logits.
  • 如何安装C++的依赖库? 在训练作业的过程中,会使用到第三方库。以C++为例,请参考如下操作步骤进行安装: 将源码下载至本地并上传到OBS。使用OBS客户端上传文件的操作请参见上传文件。 将上传到OBS的源码使用Moxing拷贝到开发环境Notebook中。 以下为使用EVS挂载的开发环境,将数据拷贝至notebook中的代码示例: import moxing as moxmox.file.make_dirs('/home/ma-user/work/data')mox.file.copy_parallel('obs://bucket-name/data', '/home/ma-user/work/data') 在Jupyter页面的“Files”页签下,单击“New”,打开“Terminal”。执行如下命令进入目标路径,确认源码已下载,即“data”文件是否存在。 cd /home/ma-user/workls 在“Terminal”环境进行编译,具体编译方式请您根据业务需求进行。 将编译结果使用Moxing拷贝至OBS中 。代码示例如下: import moxing as moxmox.file.make_dirs('/home/ma-user/work/data')mox.file.copy_parallel('/home/ma-user/work/data', 'obs://bucket-name/file) 在训练时,将OBS中的编译结果使用Moxing拷贝到容器中使用。代码示例如下: import moxing as moxmox.file.make_dirs('/cache/data')mox.file.copy_parallel('obs://bucket-name/data', '/cache/data')
  • 训练作业的启动文件如何获取训练作业中的参数? 训练作业参数有两种来源,包括后台自动生成的参数和用户手动输入的参数。具体获取方式如下: 创建训练作业时,训练作业运行参数中的“train_url”指的是训练输出位置,“data_url”指的是选择的数据来源路径。“test”的参数为手动输入。 图1 创建训练作业(新版) 图2 创建训练作业(旧版) 训练作业运行成功之后,在训练作业列表中,您可以单击作业名称,查看该作业的详情。可从日志中获取参数的传入方式,如图3所示。 图3 查看日志 若需在训练中获取“train_url”、“data_url”和“test”参数的值,可在训练作业的启动文件中添加以下代码获取: import argparseparser = argparse.ArgumentParser()parser.add_argument('--data_url', type=str, default=None, help='test')parser.add_argument('--train_url', type=str, default=None, help='test')parser.add_argument('--test', type=str, default=None, help='test')
  • 训练代码中,如何获取依赖文件所在的路径? 由于用户本地开发的代码需要上传至ModelArts后台,训练代码中涉及到依赖文件的路径时,用户设置有误的场景较多。 推荐通用的解决方案:使用os接口得到依赖文件的绝对路径,避免报错。 示例: |---project_root #代码根目录 |---bootfile.py #启动文件 |---otherfileDirectory #其他依赖文件所在的目录 |---otherfile.py #其他依赖文件 在启动文件中,建议用户参考以下方式获取依赖文件所在路径,即示例中的otherfile_path。 import oscurrent_path = os.path.dirname(os.path.realpath(__file__)) # BootfileDirectory, 启动文件所在的目录project_root = os.path.dirname(current_path) # 工程的根目录,对应ModelArts训练控制台上设置的代码目录otherfile_path = os.path.join(project_root, "otherfileDirectory", "otherfile.py")
共7条