huggingface报找不到路径错误
这个我上一篇博客https://blog.csdn.net/weixin_66009678/article/details/154834120的后续。在下载完数据集的时候,将数据挂载到docker容器里面了。
起初我是这样做的:将/mnt/nvme/yfyuan/wangxiao/openpi/datasets/libero挂载到容器里面的/datasets目录下,
/mnt/nvme/yfyuan/wangxiao/openpi/datasets/libero:/datasets
然后报错:
Traceback (most recent call last):File "/app/.venv/lib/python3.11/site-packages/lerobot/common/datasets/lerobot_dataset.py", line 95, in __init__self.load_metadata()File "/app/.venv/lib/python3.11/site-packages/lerobot/common/datasets/lerobot_dataset.py", line 105, in load_metadataself.info = load_info(self.root)^^^^^^^^^^^^^^^^^^^^File "/app/.venv/lib/python3.11/site-packages/lerobot/common/datasets/utils.py", line 178, in load_infoinfo = load_json(local_dir / INFO_PATH)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/app/.venv/lib/python3.11/site-packages/lerobot/common/datasets/utils.py", line 146, in load_jsonwith open(fpath) as f:^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/root/.cache/huggingface/lerobot/physical-intelligence/libero/meta/info.json'
发现
dataset_meta = lerobot_dataset.LeRobotDatasetMetadata(repo_id)
这个代码要执行很久,因为这在本地找不到,他可能就要去huggingface官网找了,所以很慢。当然下面解决了报错,这里执行的是很快的。
本来我想着在代码里面找到这个libero_path,然后设置成/datasets,然后找了好久没找到,就没找了。然后我直接把路径挂载到容器里报错的那个路径下:
/mnt/nvme/yfyuan/wangxiao/openpi/datasets/libero:/root/.cache/huggingface/lerobot/physical-intelligence/libero
然后就成功了!
我想说的一点的是:找到libero_path是最好的,当然如果找不到,这种方法也是OK的。就是我们没必要非要花时间去浪费在找这个路径上,因为我们有更重要的事去做。
我之前有一次也遇到一个问题就是挂载容器的问题,我的另一篇博客https://blog.csdn.net/weixin_66009678/article/details/152514227,就是怎么改都改不全路径里面的路径,后来我直接挂载到/root/.cache/huggingface/hub下了,然后就OK了。反正我是拼劲全力也没能战胜,哈哈哈哈。
研究生老师说过的一句话让我很受益:当一个元件坏了的时候,你怎么办?是花钱修吗,还是重新买一个一模一样的?一个元件比较便宜的话,当然直接重新买了,没必要花时间找错然后修!
