Python tensorflow:异步还是线程化
我正在实现一个服务器,使用tensorflow gpu“半实时”识别照片中的对象。它将在websocket连接上侦听新照片,然后将其排入一个列表,以便在空闲时运行检测器。使用asyncio或threading来处理websocket侦听器和识别队列会更简单吗?我不是线程/asyncio方面的专家,但可能生成一个Kafka实例并拥有一段可以侦听Kafka主题的代码会更容易些?对于本主题,如果您已经在本地存储了图像或图像路径,则可以将其推送到图像。此外,使用Python tensorflow:异步还是线程化,python,tensorflow,websocket,python-asyncio,python-multithreading,Python,Tensorflow,Websocket,Python Asyncio,Python Multithreading,我正在实现一个服务器,使用tensorflow gpu“半实时”识别照片中的对象。它将在websocket连接上侦听新照片,然后将其排入一个列表,以便在空闲时运行检测器。使用asyncio或threading来处理websocket侦听器和识别队列会更简单吗?我不是线程/asyncio方面的专家,但可能生成一个Kafka实例并拥有一段可以侦听Kafka主题的代码会更容易些?对于本主题,如果您已经在本地存储了图像或图像路径,则可以将其推送到图像。此外,使用消费群体您将免费获得类似于负载平衡的东西,
消费群体
您将免费获得类似于负载平衡的东西,因为它是Kafka的一部分。我不是线程/异步IO方面的专家,但也许生成一个Kafka实例并拥有一段可以听Kafka主题的代码会更容易些?对于本主题,如果您已经在本地存储了图像或图像路径,则可以将其推送到图像。此外,使用消费群体
可以免费获得类似于负载平衡的东西,因为它是Kafka的一部分。最终,我使用asyncio
来处理websocket连接,将传入的映像排队。我使用了threading
,它有一个线程将图像读入RAM,提取一些元数据,并将其排队等待对象检测器。检测器在另一个线程中运行,对图像进行标记,并将标记排入数据库处理程序(另一个线程)的队列。最终我使用asyncio
处理websocket连接,将传入的图像排入队列。我使用了threading
,它有一个线程将图像读入RAM,提取一些元数据,并将其排队等待对象检测器。在另一个线程中运行的检测器对图像进行了标记,并在数据库处理程序(另一个线程)中将标记排队。使用tensorflow gpu时,对象检测器仍处于阻塞状态。由于Python-GIL,线程不是真正的并行。这不会阻碍你的整个计划吗?很好。它的性能足以满足我的需要,每幅图像不到1s(Ryzen 2950X,RTX2080 GPU,以及从预先训练的tensorflow模型中重新训练的resnet-v2)。如果太慢的话,我正在考虑切换到tensorflow管道来读取图像。当使用tensorflow gpu时,物体检测器仍然阻塞。由于Python-GIL,线程不是真正的并行。这不会阻碍你的整个计划吗?很好。它的性能足以满足我的需要,每幅图像不到1s(Ryzen 2950X,RTX2080 GPU,以及从预先训练的tensorflow模型中重新训练的resnet-v2)。如果速度太慢的话,我正在考虑切换到tensorflow管道来读取图像。