TensorBoard:服务器启动流程

在之前的文章模型可视化:TensorBoard:模型解析流程中介绍了关于TensorBoard对于Event文件的解析过程。今天就接着说说,在Event文件解析完成之后,TensorBoard是怎么启动服务器来提供访问能力的。

TensorBoard自带一个服务器,即Werkzeug。用于对前端提供服务。Werkzeug是一个Python功能全面的WSGI web app库。Werkzeug是德语中“工具”的意思,它可以由程序员决定使用哪种模板引擎、数据库适配器,甚至是决定如何处理请求消息。它可以用于许多web 应用中,例如博客、百科词条、布告栏等。Flask也对其进行了封装,用于处理WSGI的细节内容。这里是其项目GitHub主页地址

TensorBoar中的服务构造的继承关系如图所示:
sever uml
在调用serve_forever()这个函数之后,最终会调用到其基类BaseServer中的serve_forever(),启动一个永久服务直到被关闭。

    def serve_forever(self, poll_interval=0.5):
        """Handle one request at a time until shutdown.

        Polls for shutdown every poll_interval seconds. Ignores
        self.timeout. If you need to do periodic tasks, do them in
        another thread.
        """
        self.__is_shut_down.clear()
        try:
            # XXX: Consider using another file descriptor or connecting to the
            # socket to wake this up instead of polling. Polling reduces our
            # responsiveness to a shutdown request and wastes cpu at all other
            # times.
            with _ServerSelector() as selector:
                selector.register(self, selectors.EVENT_READ)

                while not self.__shutdown_request:
                    ready = selector.select(poll_interval)
                    # bpo-35017: shutdown() called during select(), exit immediately.
                    if self.__shutdown_request
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值