首页 > 解决方案 > 如何使用 bash shell 遍历数据集

问题描述

我在一个计算机视觉深度学习项目中运行代码,可以成功运行demo。现在我想使用演示来创建一个新的大数据集。运行一张图片的命令是:

cd /root/.virtualenvs/hmr2.0/hmr2.0-master/src/visualise/
python3 demo.py --image=im00001.jpg --model=base_model --setting=paired-joints --joint_type=cocoplus --init_toes=false

并且有一个数据集

cd /root/.virtualenvs/hmr2.0/hmr2.0-master/src/visualise/images, including 10000 pictures. They are named im00001.jpg, im00002.jpg to im09999.jpg, im10000.jpg.

如何编写一个 bash shell 来运行所有 10000 个图像并生成具有相应名称的文件?

标签: pythonlinuxbash

解决方案


对于这样的任务,我通常会做类似的事情

cd /root/.virtualenvs/hmr2.0/hmr2.0-master/src/visualise
for fff in images/*.jpg; do
    python3 demo.py --image=$fff --model=base_model --setting=paired-joints --joint_type=cocoplus --init_toes=false
done

如果该目录中有其他 jpg 文件,则必须将“images/*.jpg”替换为更具体的内容

如果for fff in images/*.jpg由于大量图像而无法正常工作,您可以将其替换为

ls -1 images/*.jpg | while read fff; do

推荐阅读