云服务器内容精选

  • 问题现象 创建训练作业如何读取“json”和“npy”文件。 训练作业如何使用cv2库读取文件。 如何在MXNet环境下使用torch包。 训练作业读取文件,出现如下报错: NotFoundError (see above for traceback): Unsucessful TensorSliceReader constructor: Failed to find any matching files for xxx://xxx
  • 处理方法 读取文件报错,您可以使用Moxing将数据复制至容器中,再直接访问容器中的数据。请参见步骤1。 您也可以根据不同的文件类型,进行读取。请参见读取“json”文件、读取“npy”文件、使用cv2库读取文件和在MXNet环境下使用torch包。 读取文件报错,您可以使用Moxing将数据拷贝至容器中,再直接访问容器中的数据。具体方式如下: import moxing as mox mox.file.make_dirs('/cache/data_url') mox.file.copy_parallel('obs://bucket-name/data_url', '/cache/data_url') 读取“json”文件,请您在代码中尝试如下方法: json.loads(mox.file.read(json_path, binary=True)) 使用“numpy.load”读取“npy”文件,请您在代码中尝试如下方法: 使用MoXing API读取OBS中的文件 np.load(mox.file.read(_SAMPLE_PATHS['rgb'], binary=True)) 使用MoXing的file模块对OBS文件进行读写 with mox.file.File(_SAMPLE_PATHS['rgb'], 'rb') as f: np.load(f) 使用cv2库读取文件,请您尝试如下方法: cv2.imdecode(np.fromstring(mox.file.read(img_path), np.uint8), 1) 在MXNet环境下使用torch包,请您尝试如下方法先进行导包: import os os.sysytem('pip install torch') import torch
  • 检查报错的路径是否为OBS路径 使用ModelArts时,用户数据需要存放在自己OBS桶中,但是训练代码运行过程中不能使用OBS路径读取数据。 原因: 训练作业创建成功后,由于在运行容器直连OBS服务进行训练性能很差,系统会自动下载训练数据至运行容器的本地路径。所以,在训练代码中直接使用OBS路径会报错。 如果报错路径为训练数据路径,需要在以下两个地方完成适配,具体适配方法请参考自定义算法适配章节的输入输出配置部分: 在创建算法时,您需要在输入路径配置中设置代码路径参数,默认为“data_url”。 您需要在训练代码中添加超参,默认为“data_url”。使用“data_url”当做训练数据输入的本地路径。
  • 检查报错的路径是否存在 由于用户本地开发的代码需要上传至ModelArts后台,训练代码中涉及到依赖文件的路径时,用户设置有误的场景较多。 推荐通用的解决方案:使用os接口得到依赖文件的绝对路径,避免报错。 示例: |---project_root #代码根目录 |---BootfileDirectory #启动文件所在的目录 |---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")