云服务器内容精选

  • 从JupyterLab中下载大于100MB的文件到本地 大于100MB的文件需要先从Notebook中上传到OBS,再从OBS下载到本地,具体操作如下: 打开Python运行环境。 以下图为例,在Launcher页面的Notebook区域,单击“python-3.7.10”。请您以实际环境为准。 图2 打开Python运行环境 使用MoXing将目标文件从Notebook上传到OBS中。 上传txt、压缩后文件夹的Python示例代码如下。代码中的“/home/ma-user/work/xxx”为文件在Notebook中的存储路径,“obs://bucket_name/xxx”为该文件上传到OBS的存储路径,请您按照实际路径进行修改。 上传一个obs_file.txt文件,从Notebook上传至OBS。 在命令行输入以下代码,按需修改路径后,单击运行代码。在OBS控制台的桶中,可以看到txt对象存在,表明上传成功。 1 2 import moxing as mox mox.file.copy('/home/ma-user/work/obs_file.txt', 'obs://bucket_name/obs_file.txt') 图3 运行代码示例 上传一个压缩后的sub_dir_0文件夹,从Notebook上传至OBS。 在命令行输入以下代码,按需修改路径后,单击运行代码。在OBS控制台的桶中,可以看到文件夹对象存在,表明上传成功。 import moxing as mox mox.file.copy_parallel('/home/ma-user/work/sub_dir_0', 'obs://bucket_name/sub_dir_0') 使用OBS或ModelArts SDK将OBS中的文件下载到本地。 方式一:使用OBS进行下载 在OBS中,可以将样例中的“obs_file.txt”下载到本地。如果您的数据较多,推荐OBS Browser+下载数据或文件夹。使用OBS下载文件的操作指导,请参见下载文件。 方式二:使用ModelArts SDK进行下载 在您的本地环境下载并安装ModelArts SDK。 完成ModelArts SDK的Session鉴权。 将OBS中的文件下载到本地,详情请参见从OBS下载数据。示例代码如下: 1 2 3 4 5 6 7 8 9 10 from modelarts.session import Session # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 __AK = os.environ["HUAWEICLOUD_SDK_AK"] __SK = os.environ["HUAWEICLOUD_SDK_SK"] # 如果进行了加密还需要进行解密操作 session = Session(access_key=__AK,secret_key=__SK, project_id='***', region_name='***') session.download_data(bucket_path="/bucket_name/obs_file.txt",path="/home/user/obs_file.txt")
  • 上传本地超大文件(50GB以上)至JupyterLab 不支持在Notebook的JupyterLab中直接上传大小超过50GB的文件。 50GB以上的文件需要先从本地上传到OBS中,再在Notebook中调用ModelArts的Moxing接口或者SDK接口读写OBS中的文件。 图12 在Notebook中上传下载大文件 具体操作如下: 从本地上传文件至OBS。具体操作请参见上传文件至OBS桶。 将OBS中的文件下载到Notebook,可以通过在Notebook中运行代码的方式完成数据下载,具体方式有2种,ModelArts的SDK接口或者调用MoXing接口。 方法一:使用ModelArts SDK接口将OBS中的文件下载到Notebook后进行操作。 示例代码: 1 2 3 from modelarts.session import Session session = Session() session.obs.copy("obs://bucket-name/obs_file.txt","/home/ma-user/work/") 方法二:使用Moxing操作OBS文件将OBS中的文件同步到Notebook后进行操作。 import moxing as mox #下载一个OBS文件夹sub_dir_0,从OBS下载至Notebook mox.file.copy_parallel('obs://bucket_name/sub_dir_0', '/home/ma-user/work/sub_dir_0') #下载一个OBS文件obs_file.txt,从OBS下载至Notebook mox.file.copy('obs://bucket_name/obs_file.txt', '/home/ma-user/work/obs_file.txt') 如果下载到Notebook中的是zip文件,在Terminal中执行下列命令,解压压缩包。 unzip xxx.zip #在xxx.zip压缩包所在路径直接解压 代码执行完成后,参考图13打开Terminal后执行ls /home/ma-user/work命令查看下载到Notebook中的文件。或者在JupyterLab左侧导航中显示下载的文件,如果没有显示,请刷新后查看,如图14所示。 图13 打开Terminal 图14 查看下载到Notebook中的文件
  • 上传本地大文件(100MB~50GB)至JupyterLab 对于大小超过100MB不超过50GB的文件可以使用OBS中转,系统先将文件上传至OBS(对象桶或并行文件系统),然后从OBS下载到Notebook。下载完成后,ModelArts会将文件自动从OBS中删除。 例如,对于下面这种情况,可以通过“OBS中转”上传。 图5 通过OBS中转上传大文件 如果使用OBS中转需要提供一个OBS中转路径,可以通过以下三种方式提供: 图6 通过OBS中转路径上传 仅第一次单击“OBS中转”需要提供OBS中转路径,以后默认使用该路径直接上传,可以通过上传文件窗口左下角的设置按钮更新OBS中转路径。如图10所示。 方式一:在输入框中直接输入有效的OBS中转路径,然后单击“确定”完成。 图7 输入有效的OBS中转路径 方式二:打开OBS File Browser选择一个OBS中转路径,然后单击“确定”完成。 图8 打开OBS File Browser 方式三:单击“使用默认路径”完成。 图9 使用默认路径上传文件 图10 设置本地文件OBS中转路径 完成OBS中转路径设置后,开始上传文件。 图11 上传文件 解压缩文件包 将文件以压缩包形式上传至Notebook JupyterLab后, 可在Terminal中解压缩文件包。 unzip xxx.zip #在xxx.zip压缩包所在路径直接解压 解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。
  • 上传文件要求 对于大小不超过100MB的文件直接上传,并展示文件大小、上传进度及速度等详细信息。 对于大小超过100MB不超过50GB的文件可以使用OBS中转,系统先将文件上传OBS(对象桶或并行文件系统),然后从OBS下载到Notebook,上传完成后,会将文件从OBS中删除。 50GB以上的文件上传通过调用ModelArts SDK或者Moxing完成。 对于Notebook当前目录下已经有同文件名称的文件,可以覆盖继续上传,也可以取消。 支持10个文件同时上传,其余文件显示“等待上传”。不支持上传文件夹,可以将文件夹压缩成压缩包上传至Notebook后, 在Terminal中解压压缩包。 unzip xxx.zip #在xxx.zip压缩包所在路径直接解压 解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。 多个文件同时上传时,JupyterLab窗口最下面会显示上传文件总数和已上传文件数。
  • 示例代码 创建训练作业 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator( modelarts_session=session, framework_type='PyTorch', # AI引擎名称 framework_version='PyTorch-1.0.0-python3.6', # AI引擎版本 code_dir='/obs-bucket-name/src/', # 训练脚本目录 boot_file='/obs-bucket-name/src/pytorch_sentiment.py', # 训练启动脚本目录 log_url='/obs-bucket-name/log/', # 训练日志目录 hyperparameters=[ {"label":"classes", "value": "10"}, {"label":"lr", "value": "0.001"} ], output_path='/obs-bucket-name/output/', # 训练输出目录 train_instance_type='modelarts.vm.xxx.xxx', # 训练环境规格 train_instance_count=1, # 训练节点个数 job_description='pytorch-sentiment with ModelArts SDK') # 训练作业描述 job_instance = estimator.fit(inputs='/obs-bucket-name/data/train/', wait=False, job_name='my_training_job') 查询模型列表 1 2 3 4 from modelarts.session import Session from modelarts.model import Model session = Session() model_list_resp = Model.get_model_list(session, model_status="published", model_name="digit", order="desc") 查询服务详情 1 2 3 4 5 from modelarts.session import Session from modelarts.model import Predictor session = Session() predictor_instance = Predictor(session, service_id="input your service_id") predictor_info_resp = predictor_instance.get_service_info()
  • JupyterLab操作流程 ModelArts支持通过JupyterLab工具在线打开Notebook,开发基于PyTorch、TensorFlow和MindSpore引擎的AI模型。具体操作流程如下图所示。 图1 使用JupyterLab在线开发调试代码 创建Notebook实例。 在ModelArts控制台创建一个Notebook开发环境实例,选择要使用的AI框架。具体参见创建Notebook实例。 使用JupyterLab打开Notebook实例。具体参见打开JupyterLab。 准备训练数据和代码文件,上传到JupyterLab中。具体参见上传本地文件至JupyterLab。 在JupyterLab中编写代码文件,并运行调试。具体参见JupyterLab简介及常用操作。 在JupyterLab中直接调用ModelArts提供的SDK,创建训练作业,上云训练。 调用SDK创建训练作业的操作请参见调用SDK创建训练作业。 父主题: JupyterLab
  • 上传本地大文件(100MB~5GB)至JupyterLab 对于大小超过100MB不超过5GB的文件可以使用OBS中转,系统先将文件上传至OBS(对象桶或并行文件系统),然后从OBS下载到Notebook。下载完成后,ModelArts会将文件自动从OBS中删除。 例如,对于下面这种情况,可以通过“OBS中转”上传。 图1 通过OBS中转上传大文件 如果使用OBS中转需要提供一个OBS中转路径,可以通过以下三种方式提供: 图2 通过OBS中转路径上传 仅第一次单击“OBS中转”需要提供OBS中转路径,以后默认使用该路径直接上传,可以通过上传文件窗口左下角的设置按钮更新OBS中转路径。如图6所示。 方式一:在输入框中直接输入有效的OBS中转路径,然后单击“确定”完成。 图3 输入有效的OBS中转路径 方式二:打开OBS File Browser选择一个OBS中转路径,然后单击“确定”完成。 图4 打开OBS File Browser 方式三:单击“使用默认路径”完成。 图5 使用默认路径上传文件 图6 设置本地文件OBS中转路径 完成OBS中转路径设置后,开始上传文件。 图7 上传文件 解压缩文件包 将文件以压缩包形式上传至Notebook JupyterLab后, 可在Terminal中解压缩文件包。 unzip xxx.zip #在xxx.zip压缩包所在路径直接解压 解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。 父主题: 上传本地文件至JupyterLab
  • 异常处理 Clone仓库失败。可能是网络原因问题。可以在JupyterLab的Terminal中通过执行git clone https://github.com/jupyterlab/extension-examples.git测试网络连通情况。 图6 Clone仓库失败 如果克隆时遇到Notebook当前目录下已有该仓库,系统给出提示仓库名称重复,此时可以单击“覆盖”继续克隆仓库,也可以单击取消。
  • JupyterLab常用快捷键和插件栏 图12 JupyterLab常用快捷键和插件栏 表1 快捷键说明 快捷键 说明 快速打开Notebook、Terminal。或打开Launcher页面,可快速创建新的Notebook、Console或其他文件。 创建文件夹。 上传文件。 刷新文件目录。 Git插件,可连接此Notebook实例关联的Github代码库。 表2 插件栏常用插件说明 插件 说明 文件列表。单击此处,将展示此Notebook实例下的所有文件列表。 当前实例中正在运行的Terminal和Kernel。 Git插件,可以方便快捷的使用Github代码库。 属性检查器。 文档结构图。 图13 导航栏按钮 表3 导航栏按钮介绍 按钮 说明 File 新建、关闭、保存、重新加载、重命名、导出、打印Notebook等功能。 Edit 编辑ipynb文件中代码块的相关操作,包括撤销、重做、剪切、复制、粘贴、选择、移动、合并、清除、查找代码块等。 View 查看视图相关操作。 Run 运行代码块相关操作,例如:运行选中代码块、一键运行所有代码块等。 Kernel 中断、重启、关闭、改变Kernel相关操作。 Git Git插件相关操作,可以方便快捷的使用Github代码库。 Tabs 同时打开多个ipynb文件时,通过Tabs激活或选择文件。 Settings JupyterLab工具系统设置。 Help JupyterLab工具自带的帮助参考。 图14 ipynb文件菜单栏中的快捷键 表4 ipynb文件菜单栏中的快捷键 快捷键 说明 保存文件。 添加新代码块。 剪切选中的代码块。 复制选中的代码块。 粘贴选中的代码块。 执行选中的代码块。 终止kernel。 重启kernel。 重启kernel,然后重新运行当前Notebook的所有代码。 此处下拉框有4个选项,分别是: Code(写python代码),Markdown(写Markdown代码,通常用于注释),Raw(一个转换工具),-(不修改)。 查看代码历史版本。 git插件,图标显示灰色表示当前Region不支持。 当前的资源规格。 单击可以选择Kernel。 表示代码运行状态,变为实心圆时,表示代码在运行中。 分享到AI Gallery。
  • 新建文件并打开Console Console的本质为Python终端,输入一条语句就会给出相应的输出,类似于Python原生的IDE。 进入JupyterLab主页后,可在“Console”区域下,选择适用的AI引擎,单击后将新建一个对应框架的Notebook文件。 由于每个Notebook实例选择的工作环境不同,其支持的AI框架也不同,下图仅为示例,请根据实际显示界面选择AI框架。 图5 选择AI引擎并新建一个Console 文件创建成功后,将直接呈现Console页面。 图6 新建文件(Console)
  • 示例代码 创建训练作业 1 2 3 4 5 6 7 8 9101112131415161718192021 from modelarts.session import Sessionfrom modelarts.estimator import Estimatorsession = Session()estimator = Estimator( modelarts_session=session, framework_type='PyTorch', # AI引擎名称 framework_version='PyTorch-1.0.0-python3.6', # AI引擎版本 code_dir='/obs-bucket-name/src/', # 训练脚本目录 boot_file='/obs-bucket-name/src/pytorch_sentiment.py', # 训练启动脚本目录 log_url='/obs-bucket-name/log/', # 训练日志目录 hyperparameters=[ {"label":"classes", "value": "10"}, {"label":"lr", "value": "0.001"} ], output_path='/obs-bucket-name/output/', # 训练输出目录 train_instance_type='modelarts.vm.gpu.p100', # 训练环境规格 train_instance_count=1, # 训练节点个数 job_description='pytorch-sentiment with ModelArts SDK') # 训练作业描述job_instance = estimator.fit(inputs='/obs-bucket-name/data/train/', wait=False, job_name='my_training_job') 查询模型列表 1234 from modelarts.session import Session from modelarts.model import Modelsession = Session() model_list_resp = Model.get_model_list(session, model_status="published", model_name="digit", order="desc") 查询服务详情 12345 from modelarts.session import Sessionfrom modelarts.model import Predictorsession = Session()predictor_instance = Predictor(session, service_id="input your service_id")predictor_info_resp = predictor_instance.get_service_info()
  • 重启Kernel-通过文件编辑时的快捷按钮 在JupyterLab环境界面,需要先打开一个后缀名为“ipynb”的文件。 单击文件上方的重启Kernel快捷操作按钮,如图2所示。 图2 快捷操作按钮 在弹出的“重启内核”对话框中,单击“确定”。 等待界面右上角的环境状态,从“Running”变为“Ready”,即Kernel重启完成。 单击如图2所示的图标,在弹出的“清理所有运行数据”对话框中,单击“确定”。 说明:目前JupyterLab是安装在相应规格的容器中的,在JupyterLab环境界面的所有操作都是基于缓存的,所以建议Kernel重启后,再清理下缓存。