keras 多进程 进行预测

2 篇文章 0 订阅
2 篇文章 0 订阅

 翻了一下午csdn,终于找到了解决办法。

目前的想法:

             主进程   接收客户端消息,创建子进程

             子进程   创建进程池

                           处理信息,信息类型1 加载 keras模型

                                             信息类型2  给进程池添加任务,让keras进行预测。

思路来自  :    https://blog.csdn.net/jacke121/article/details/82658471

解决办法:

           通过

            from multiprocessing.managers import BaseManager

         解决问题。

         BaseManager可以对 类对象 进行分享。

 

# 文件名   KK.py 用来进行模型加载和分析的

class Keras_class():

    def __init__(self):

        self.label = {}

        self.loadmode = {}

    def load_model(self, infos):

        '''

        加载模型文件

        '''

    def reco_model(self,infos):

        '''

        处理模型文件

        '''

# 主文件

from multiprocessing.managers import BaseManager

import KK

class child_kk(KK.Keras_class):

    pass

class MyManager(BaseManager):

    pass

def Manager2():

    m=MyManager()

    m.start()

    return m

MyManager.register('child_vc',child_vc)

上述代码 一般不做修改。创建child_kk子类的原因就是 KK 文件 我不能动。所以就直接继承了。

class TcpServer:

    def __init__(self):

            self.soc = socket.socket(

            self.soc = 创建出socket

            self.epoll = select.epoll()

           # 创建子进程

           self.msg_queues = SimpleQueue()

           self.msg_event =  Event()

           self.msg_process = Process(

           target=self.deal_message_process,

           args=(self.msg_queues,self.msg_event)

           )

           self.msg_process.start()# 子进程启动

     def open_tcp(self):

            self.epoll.register(self.soc.fileno(), select.EPOLLIN | select.EPOLLET)

           循环判断epoll事件。若是客户端发消息了,则把消息放入队列中

           处理信息子进程

       def deal_message_process(self):   

            global_vc=Manager2()

            vc = global_vc.child_vc()

            self.pool = Pool(3)

            

#计算类

class CaqModel:

    def matching_model(self,vc):

         #vc就是加载好预测模型的对象

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值