我在python中拥抱了tensorflow session.run()
。
如果我在没有HUG的情况下运行session.run()
进行预测,那很好。
但是,如果我在拥抱时运行它,它不会产生任何结果(甚至任何错误)。
有没有人遇到过这种情况? 请帮帮我。
我的环境:
答案 0 :(得分:0)
我不知道这是否是你问题的原因,但也许它可能与hug
是服务器的事实有关,因此,它在某处有一些异步代码。也许正在发生的事情是,因为hug
正在尝试处理请求,它会启动会话但不会等待它运行。
同样,我不知道这是否是根本原因,或者即使这种情况有意义。
根据我对Tensorflow
的一点经验,我建议的是建立一个不同的架构。
如果我理解正确,您现在要做的是,您希望向hug api服务器发送请求,从该请求中获取数据并将其提供给Tensorflow
会话。您希望等待Tensorflow
预测某些内容并将该预测返回给发出请求的用户。
我会以稍微不同的方式解决这个问题。我希望客户建立websockets
连接。客户端将使用此连接将数据发送到服务器。收到此数据后,服务器会将其放在message queue中。您可以使用真实的邮件队列,例如RabbitMq或Kafka,但说实话,如果您没有生产质量的应用程序,您可以使用redis
甚至{{ 1}}作为消息队列。此队列中的消息将由工作进程捕获,其中一个正在运行mongo
,并将使用消息中的数据执行预测。在执行预测时,数据将被放置在不同的队列中并由服务器拾取。然后,服务器将通过Tensoflow
预测返回给客户端。
使用此方法解决的主要问题是将websocket
服务器与api
工作者分开。这将允许您独立调试和测试每个部分。此外,您不会通过等待Tensorflow
来阻塞服务器。服务器本质上将充当调度程序,工作人员将工作。完成后,它只返回结果。
如果我对可能的根本原因的建议是错误的,我希望这会对你有所帮助并再次抱歉。