华为云AI开发平台ModelArts读取文件报错,如何正确读取文件?_云淘科技

问题现象

创建训练作业如何读取“json”和“npy”文件。
训练作业如何使用cv2库读取文件。
如何在MXNet环境下使用torch包。
训练作业读取文件,出现如下报错:

NotFoundError (see above for traceback): Unsucessful TensorSliceReader constructor: Failed to find any matching files for xxx://xxx

原因分析

在ModelArts中,用户的数据都是存放在OBS桶中,而训练作业运行在容器中,无法通过访问本地路径的方式访问OBS桶中的文件。

处理方法

读取文件报错,您可以使用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操作相关故障

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家