Closed T0L0ve closed 1 year ago
预测时候要打开--benchmark选项,需要额外安装auto_log,具体安装方式为:https://github.com/LDOUBLEV/AutoLog paddle infer文档可参考https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.3/docs/deployment/inference/python_inference.md
预测时候要打开--benchmark选项,需要额外安装auto_log,具体安装方式为:https://github.com/LDOUBLEV/AutoLog paddle infer文档可参考https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.3/docs/deployment/inference/python_inference.md --benchmark选项是设置为True的,auto_log也是安装了的
total time spent是总体耗时,包括模型推理、前后处理、程序初始化的时间。应该看inference time 另外实现方式和运行软硬件可能和论文有出入,速度就会有diff
另外,我在运行deploy/python/infer.py 时发现了问题,当输入多张图像时,只输出了一张预测图像
def _save_imgs(self, results, img):
for i in range(results.shape[0]):
result = get_pseudo_color_map(results[i])
basename = os.path.basename(imgs[i])
basename, _ = os.path.splitext(basename)
basename = f'{basename}.png'
result.save(os.path.join(self.args.save_dir, basename))
问题应该是出在这部分代码,results.shape[0]的值为1导致imgs[i]也是一个固定值,图像重复覆盖
results.shape[0]表示batch size,如果为1的话for循环就只有一次,讲道理不会图像重复覆盖才对
另外,我在运行deploy/python/infer.py 时发现了问题,当输入多张图像时,只输出了一张预测图像
def _save_imgs(self, results, img):
for i in range(results.shape[0]):
result = get_pseudo_color_map(results[i])
basename = os.path.basename(imgs[i])
basename, _ = os.path.splitext(basename)
basename = f'{basename}.png'
result.save(os.path.join(self.args.save_dir, basename))
问题应该是出在这部分代码,results.shape[0]的值为1导致imgs[i]也是一个固定值,图像重复覆盖
results.shape[0]表示batch size,如果为1的话for循环就只有一次,讲道理不会图像重复覆盖才对
for循环只有一次这个没有问题,问题在basename是根据imgs[i]来确定的,只循环一次就表明basename一直是imgs[0]这个值。 在run函数中每循环一次就调用了 _save_imgs(self, results, imgs),imgs是图片名称列表,basename的值就成了第一张图片的名称,在保存时文件名相同所以覆盖了。 只要让图像save时basename不同就正常了。
total time spent是总体耗时,包括模型推理、前后处理、程序初始化的时间。应该看inference time 另外实现方式和运行软硬件可能和论文有出入,速度就会有diff
ok,我明白了,谢谢。
另外,我在运行deploy/python/infer.py 时发现了问题,当输入多张图像时,只输出了一张预测图像
def _save_imgs(self, results, img):
for i in range(results.shape[0]):
result = get_pseudo_color_map(results[i])
basename = os.path.basename(imgs[i])
basename, _ = os.path.splitext(basename)
basename = f'{basename}.png'
result.save(os.path.join(self.args.save_dir, basename))
问题应该是出在这部分代码,results.shape[0]的值为1导致imgs[i]也是一个固定值,图像重复覆盖
results.shape[0]表示batch size,如果为1的话for循环就只有一次,讲道理不会图像重复覆盖才对
for循环只有一次这个没有问题,问题在basename是根据imgs[i]来确定的,只循环一次就表明basename一直是imgs[0]这个值。 在run函数中每循环一次就调用了 _save_imgs(self, results, imgs),imgs是图片名称列表,basename的值就成了第一张图片的名称,在保存时文件名相同所以覆盖了。 只要让图像save时basename不同就正常了。
好像是的,你用的什么数据集呢?我复现一下
另外,我在运行deploy/python/infer.py 时发现了问题,当输入多张图像时,只输出了一张预测图像
def _save_imgs(self, results, img):
for i in range(results.shape[0]):
result = get_pseudo_color_map(results[i])
basename = os.path.basename(imgs[i])
basename, _ = os.path.splitext(basename)
basename = f'{basename}.png'
result.save(os.path.join(self.args.save_dir, basename))
问题应该是出在这部分代码,results.shape[0]的值为1导致imgs[i]也是一个固定值,图像重复覆盖
results.shape[0]表示batch size,如果为1的话for循环就只有一次,讲道理不会图像重复覆盖才对
for循环只有一次这个没有问题,问题在basename是根据imgs[i]来确定的,只循环一次就表明basename一直是imgs[0]这个值。 在run函数中每循环一次就调用了 _save_imgs(self, results, imgs),imgs是图片名称列表,basename的值就成了第一张图片的名称,在保存时文件名相同所以覆盖了。 只要让图像save时basename不同就正常了。
好像是的,你用的什么数据集呢?我复现一下
数据集就是样例的视盘数据集optic_disc_seg
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.
模型导出后使用deploy/python/infer.py 预测了100张图片,total time spent(s): 2.8983,但看bisenet的论文说能有156FPS,是我模型部署出的问题,还是我理解错了156FPS的含义。 另外,我在运行deploy/python/infer.py 时发现了问题,当输入多张图像时,只输出了一张预测图像
def _save_imgs(self, results, img):
问题应该是出在这部分代码,results.shape[0]的值为1导致imgs[i]也是一个固定值,图像重复覆盖