更新时间:2024-08-21 GMT+08:00
读取文件报错,如何正确读取文件
问题现象
- 创建训练作业如何读取“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)
- 使用MoXing API读取OBS中的文件
- 使用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操作相关故障