如何在virtualenv中从python scipt运行Tensorboard?

2024-09-28 21:00:20 发布

您现在位置:Python中文网/ 问答频道 /正文

Tensorboard应该从commnad行开始,如下所示:

tensorboard --logdir=path

我需要从代码中运行它。直到现在我用这个:

import os
os.system('tensorboard --logdir=' + path)

但是,tensorboard不会启动,因为它不包含在系统路径中。我在窗户上用的是PyCharm和virtualenv。我不想更改系统路径,所以唯一的选择是从virtualenv运行它。怎么做?


Tags: path代码import路径virtualenvos系统system
3条回答

使用Tensorboard 2 API(2019年):

from tensorboard import program
tb = program.TensorBoard()
tb.configure(argv=[None, '--logdir', tracking_address])
url = tb.launch()

注意:tb.launch()创建一个守护进程线程,该线程将在进程完成时自动终止

当我遇到同样的问题时,您可以使用这几行灵感来自tensorboard\main.py

from tensorboard import default
from tensorboard import program

tb = program.TensorBoard(default.PLUGIN_LOADERS, default.get_assets_zip_provider())
tb.configure(argv=['--logdir', my_directory])
tb.main()

my_directory作为要检查的文件夹。如果要避免在tb.main()之后被阻塞,请不要忘记创建单独的线程。 致意

编辑Tensorboard V1.10:

出于个人原因,我用另一种方式来写:

class TensorBoardTool:

    def __init__(self, dir_path):
        self.dir_path = dir_path

    def run(self):
        # Remove http messages
        log = logging.getLogger('werkzeug')
        log.setLevel(logging.ERROR)
        # Start tensorboard server
        tb = program.TensorBoard(default.PLUGIN_LOADERS, default.get_assets_zip_provider())
        tb.configure(argv=['--logdir', self.dir_path])
        url = tb.launch()
        sys.stdout.write('TensorBoard at %s \n' % url)

编辑Tensorboard V1.12:

根据Elad Weiss和tsbertalan对tensorboard 1.12版的描述。

    def run(self):
        # Remove http messages
        log = logging.getLogger('werkzeug').setLevel(logging.ERROR)
        # Start tensorboard server
        tb = program.TensorBoard(default.get_plugins(), default.get_assets_zip_provider())
        tb.configure(argv=[None, '--logdir', self.dir_path])
        url = tb.launch()
        sys.stdout.write('TensorBoard at %s \n' % url)

然后运行它只要:

# Tensorboard tool launch
tb_tool = TensorBoardTool(work_dir)
tb_tool.run()

这将允许您在主进程的同时运行Tensorboard服务器,而不会干扰http请求!

回答起来可能有点晚,但这正是我在Python3.6.2中的工作原理:

import tensorflow as tf
from tensorboard import main as tb
tf.flags.FLAGS.logdir = "/path/to/graphs/"
tb.main()

它使用默认配置运行tensorboard,并在“/path/to/graphs/”中查找图表和摘要。当然,您可以更改日志目录并使用以下命令设置任意多个变量:

tf.flags.FLAGS.variable = value

希望有帮助。

相关问题 更多 >