如何导出Unix可执行程序predict的运行结果并保存为JSON文件
问题解答
- Unix可执行程序没有统一的导出数据默认通用参数,
--output、-o这类参数只是开发者常用的约定规范,并非所有工具都强制遵循,你自行测试的参数不生效属于正常情况。 - 查看该
predict可执行文件支持的所有参数可以用以下两种常用方法:- 执行帮助命令:大部分规范开发的命令行工具都支持帮助参数,直接运行
./predict --help或者./predict -h,就能打印出所有支持的参数说明、用法示例,你可以查看是否有未在公开说明中提及的输出相关参数。 - 查看源码:该图像质量评估库是开源项目,你可以直接找到项目中
predict可执行脚本的源码,查看其参数解析部分的代码,就能100%确认所有支持的入参。
- 执行帮助命令:大部分规范开发的命令行工具都支持帮助参数,直接运行
- 你要保存JSON输出不需要依赖工具本身的output参数,直接用Unix系统自带的标准输出重定向功能即可:你现在看到的JSON结果是程序打印到标准输出流(stdout)的内容,只需要在整条命令的末尾加上
> 目标文件路径,就能把所有标准输出的内容写入指定文件,修改后的命令参考如下:
./predict \ --docker-image nima-cpu \ --base-model-name MobileNet \ --weights-file $(pwd)/models/MobileNet/weights_mobilenet_technical_0.11.hdf5 \ --image-source $(pwd)/src/tests/test_images \ > $(pwd)/src/out.json
如果写入后发现有其他运行日志混在JSON内容里,可以把标准错误流也重定向,将命令末尾的重定向部分改为> $(pwd)/src/out.json 2>&1即可;如果需要过滤无关内容只保留JSON,可以搭配grep、jq这类文本处理工具对输出流做筛选后再写入文件。
内容的提问来源于stack exchange,提问作者mmz
相关产品推荐
相关产品推荐

