首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从google-cloud-platform vminstance中的pubsub回调函数调用全局变量?

如何从google-cloud-platform vminstance中的pubsub回调函数调用全局变量?
EN

Stack Overflow用户
提问于 2018-10-23 15:54:34
回答 1查看 194关注 0票数 1

我正在运行一个神经网络模型,该模型假设每次触发pubsub事件时都会在回调函数中异步运行。在主程序初始化期间,我将模型作为全局变量加载,这样它就可以在任何函数中访问,避免每次都在回调函数中加载模型。典型的代码可以是:

代码语言:javascript
复制
global cv_model
cv_model = load_model('my_model.h5')

def callback():
    prediction = cv_model.predict(image)

这个方法在我的本地机器上工作得很好。但是当我尝试使用pubsub事件回调时,我得到了一些错误。经过一番搜索,我发现'pubsub是主程序的子进程,我们不能在进程之间共享全局变量‘。我尝试了嵌套函数方法和OOPs方法,但它们都不起作用。

如何避免每次调用回调函数时都加载模型?有什么替代方法来解决这个冲突吗?

谢谢你的建议!!

EN

回答 1

Stack Overflow用户

发布于 2018-10-24 02:11:54

如果你不能通过发布/订阅回调来实现这一点,你可以尝试编写一个Google Cloud Function with a Pub/Sub Trigger,这样就没有这个问题了:

代码语言:javascript
复制
from keras.models import load_model
cv_model = load_model('my_model.h5')

def handle_pubsub(data, context):
    image = ...  # do something with the `data` arg here
    prediction = cv_model.predict(image)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52943866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档