天天看点

这周尝试meta公司也就是改名前的Facebook出的分割模型–––Segmentanything时,用官方给的代码示例

作者:coding老王

这周尝试meta公司也就是改名前的Facebook出的分割模型–––Segment anything时,用官方给的代码示例,跑出来的结果非常慢,示例图耗时11秒,你没看错,真的是11秒。

然后,直觉一想不太可能,去翻了官网的介绍,在FAQ中说了,在A100显卡上耗时0.15ms。

这差距也太大了吧。

感觉肯定哪里也不对,翻了一下segment anything的代码仓库,有几个issue在说这个网页链接,还有这个网页链接。感觉群众都遇到了这个问题,说明这不是个例。

那问题出在哪里呢?去翻了一下实现源码,原来示例代码没有设置到gpu上,并且没有执行eval模式,所以结论很明显了,那些问问题的人没有深入去了解,导致出了一个乌龙。

sam = sam_model_registry[MODEL_TYPE](checkpoint=CHECKPOINT_PATH)

sam.to(device=DEVICE)

sam.eval()

就这两行,让模型使用GPU进行推理,速度直接上来了,通过watch -n 0.01 nvidia-smi 查看,推理时显卡的确有在工作。

不设置这2行,直接是CPU上运行,然后就掉坑里面了。

这周尝试meta公司也就是改名前的Facebook出的分割模型–––Segmentanything时,用官方给的代码示例
这周尝试meta公司也就是改名前的Facebook出的分割模型–––Segmentanything时,用官方给的代码示例
这周尝试meta公司也就是改名前的Facebook出的分割模型–––Segmentanything时,用官方给的代码示例
这周尝试meta公司也就是改名前的Facebook出的分割模型–––Segmentanything时,用官方给的代码示例

继续阅读