我正在运行mobilnet SSD,每个输入图像大约14毫秒。我可以在同一开发板tpu上同时运行这两个型号吗?例如,我有一个积压的100张图片,我想要完成,对我来说,唯一重要的是需要多长时间才能完成所有100张图片。因此,如果我可以一次运行2到4个,那就太棒了。我试着通读文档,看了看流水线,但是边缘编译器告诉我"~$警告:对于给定的模型,你创建了比必要的更多的段“。我读到的所有关于并行运行的其他内容都是关于使用两个物理边缘TPU的。如果不可能,那也没关系,我只想确定一下:)
谢谢
发布于 2021-01-20 12:54:57
您可以运行多个模型,但TPU的内存有限,并且会交换您的模型,因此将您的任务委托给多个模型可能看不到性能改进。但是,您可以使用co-compile your models。这个过程使用相同的标识符(缓存令牌)“编译”每个模型,这使得它们都可以在TPU上运行,而不需要交换。
编译模型是使用edgetpu_compiler完成的;该过程的工作方式如下:
edgetpu_compiler someModel.tflite someOtherModel.tflite或者使用相同的模型:
edgetpu_compiler someModelA.tflite someModelA_duplicate.tflite该流程有一些细微差别,例如,将模型提供给edgetpu_compiler流程的顺序可能会影响性能,而组合模型太大而无法放入TPU RAM的情况也会影响性能。我建议从这个documentation about multiple models开始。
https://stackoverflow.com/questions/65798127
复制相似问题