2017-06-05 11 views
2

我正在做一些NLP工作,并且有由Tensorflow培训的模型。我提供了一些API来完成使用这些模型的单词剪切并通过Celery调度请求。如何在不同的芹菜任务工作人员中共享张量流模型

的情况是:

芹菜将派遣任务,不同的工人(约4-5),因此每个工人必须加载模型之上,因此内存被占用了不少。

那么任何方式来分享工人之间的模型?我实际上并不知道芹菜工人的基本机制。

感谢

+0

你可以看看[Tensorflow Serving](https://www.tensorflow.org/serving/),它将你的模型作为gRPC API提供服务。它支持[batching](https://github.com/tensorflow/serving/blob/master/tensorflow_serving/batching/README.md),这听起来像你正在尝试做的事情。如果你真的需要芹菜(例如在后台运行这些任务),你可以从芹菜任务中调用Tensorflow Serving API。 – geniass

+0

@geniass感谢您的回答!!事实上,我将考虑在将来使用Tensorflow Serving进行模型部署。异步芹菜任务在客户端使用,所以我创建了一个** singleton **类和一个函数,在其中加载模型到服务器,以确保这些模型只能加载一次。它有效,但我不确定解决方案是否足够好。我会尝试确定表现。再次感谢。 – aforwardz

+0

雅我一直在做同样的事情来为火炬模型服务,但由于这不支持自动配料,我相当肯定你可以通过TF服务获得更好的性能。我会给我的评论一个答案,以便你可以关闭这个问题。 – geniass

回答

0

你可以看看Tensorflow Serving供应模型作为GRPC API。它支持batching这听起来像你想要做的。如果你真的需要芹菜(例如在后台运行这些任务),你可以从芹菜任务中调用Tensorflow Serving API。

+0

我正在尝试将我的模型部署到tf服务中。我翻看文档,看起来已经完成了我想要的东西。多谢兄弟。 – aforwardz

相关问题