更新时间:2024-11-22 GMT+08:00
训练作业使用MoXing复制数据较慢,重复打印日志
问题现象
- ModelArts训练作业使用MoXing复制数据较慢。
- 重复打印日志“INFO:root:Listing OBS”。
原因分析
- 复制数据慢的可能原因如下:
- 直接从OBS上读数据会造成读数据变成训练的瓶颈,导致迭代缓慢。
- 由于环境或网络问题,读OBS时遇到读取数据失败情况,从而导致整个作业失败。
- 重复打印日志,该日志表示正在读取远端存在的文件,当文件列表读取完成以后,开始下载数据。如果文件比较多,那么该过程会消耗较长时间。
处理方法
在创建训练作业时,数据可以保存到OBS上。不建议使用TensorFlow、MXNet、PyTorch的OBS接口直接从OBS上读取数据。
- 如果文件较小,可以将OBS上的数据保存成“.tar”包。训练开始时从OBS上下载到“/cache”目录,解压以后使用。
- 如果文件较大,可以保存成多个“.tar”包,在入口脚本中调用多进程进行并行解压数据。不建议把散文件保存到OBS上,这样会导致下载数据很慢。
- 在训练作业中,使用如下代码进行“.tar”包解压:
import moxing as mox import os mox.file.copy_parallel("obs://donotdel-modelarts-test/AI/data/PyTorch-1.0.1/tiny-imagenet-200.tar", '/cache/tiny-imagenet-200.tar') os.system('cd /cache; tar -xvf tiny-imagenet-200.tar > /dev/null 2>&1')
父主题: MoXing