gpt4 book ai didi

python - 对 Google Cloud Vision API 的多线程 python 调用

转载 作者:行者123 更新时间:2023-11-28 19:05:35 25 4
gpt4 key购买 nike

我在 macOS 机器支持的 Docker 容器中运行服务器,我需要从中发送多个图像以供 Google Cloud Vision API 处理。

我必须能够最大限度地减少上传和处理图像所花费的时间。

我首先将对 GCV 的调用包装在 Queue.QueueThreading.Thread 中,但这偶尔会使我的代码崩溃(不是被 python Exception 困住) ) 因此:

E1121 14:15:10.902211037   25448 sync_posix.c:38]            assertion failed: pthread_mutex_destroy(mu) == 0

根据几个 github 线程,这是一个受 gRPC 启发(或 httplib?)的错误/功能,但我找不到简单解决方法的步骤 - 参见例如https://github.com/grpc/grpc/issues/11184https://github.com/grpc/grpc/issues/10909

鉴于这似乎是一个普遍存在的问题,没有明确的解决方案,缓解它的最佳方法是什么?

是否像使用单个 Batch 调用(但整体速度如何?)到 GCV 一样简单?没有其他方法可以安全地线程化调用吗?

更新:

由于担心损坏,我着手将 gRPC 回滚到 v1.2.x 啦

https://github.com/grpc/grpc/issues/10909#issuecomment-302581954

除了我必须将 /usr/local/lib 添加到我的 Docker 容器中的 LD_LIBRARY_PATH 以获取 libprotobuf.so.12.

我没有对任何其他 python 包进行任何更改。

然后我做了:

pip install grpcio==1.2.1

显然这会变得很昂贵,但与之前的 1/3 调用相比,崩溃率是 <1/20 调用(并且还在增加)。

现在:我如何最终测试此问题已修复?

最佳答案

这是我使用的 Dockerfile 的相关部分(基于 https://github.com/grpc/grpc/issues/10909#issuecomment-302581954 )

# gRPC fix (rollback to v1.2.x to mitigate mutex crashing bug)
RUN apt-get install -y build-essential autoconf libtool
RUN apt-get install -y libgflags-dev libgtest-dev
RUN apt-get install -y clang libc++-dev
RUN apt-get install -y sudo unzip locate
RUN mkdir -p /app/src

WORKDIR /app/src
RUN git clone --branch v1.2.x https://github.com/grpc/grpc

WORKDIR /app/src/grpc
RUN git submodule foreach git clean -xfd
RUN git submodule update --init

WORKDIR /app/src/grpc/third_party/protobuf
RUN ./autogen.sh
RUN ./configure
RUN make -j2
RUN sudo make install

WORKDIR /app/src/grpc
RUN sudo make install
ENV LD_LIBRARY_PATH=${LD_LIBRARY}:/usr/local/lib
RUN pip install --trusted-host pypi.python.org grpcio==1.2.1
RUN pip install --trusted-host pypi.python.org google-cloud-vision

我会把这个打开几天,看看是否有人回应。

关于python - 对 Google Cloud Vision API 的多线程 python 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47428173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com