应该从命令行启动Tensorboard:
tensorboard --logdir=path
我需要从代码中运行它。到现在为止我用这个:
import os
os.system('tensorboard --logdir=' + path)
但是,由于未包含在系统路径中,因此张贴板无法启动。我在Windows上使用PyCharm和virtualenv。我不想更改系统路径,因此唯一的选择是从virtualenv运行它。这该怎么做?
答案可能有点晚了,但这对我在Python 3.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
希望能帮助到你。
你应该在单独的线程中启动tensorBoard
:
def launchTensorBoard():
import os
os.system('tensorboard --logdir=' + tensorBoardPath)
return
import threading
t = threading.Thread(target=launchTensorBoard, args=([]))
t.start()
当我遇到同样的问题时,你可以使用受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的说明,对于张量板的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请求!
使用Tensorboard 2 API(2019):
from tensorboard import program
tb = program.TensorBoard()
tb.configure(argv=[None, '--logdir', tracking_address])
url = tb.launch()
注意:tb.launch()创建一个守护程序线程,当您的进程完成时,该守护程序线程将自动死亡
从TensorBoard版本1.9.0开始,以下工作方式可以在同一个Python进程中使用默认设置启动TensorBoard:
import tensorboard as tb
import tensorboard.program
import tensorboard.default
tb.program.FLAGS.logdir = 'path/to/logdir'
tb.program.main(tb.default.get_plugins(),
tb.default.get_assets_zip_provider())
以下内容将打开Chrome标签页并启动TensorBoard。只需提供所需的目录和系统名称即可。
import os
os.system(
"cd <directory> \
&& google-chrome http://<your computer name>:6007 \
&& tensorboard --port=6007 --logdir runs"
)
如果您的python解释器路径是:
/US人/local/cellar/Python3/3.6.1/frameworks/Python.framework/versions/3.6/斌/Python3.6
您可以运行此命令而不是tensorboard
/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorboard/main.py
它对我有用。
有同样的问题:当您在Windows上工作时,您可以使用批处理文件完全自动化打开张量板,如下面的例子中所示。
您可能希望在可见的控制台窗口(cmd.exe)中打开tensorboard。在IDE(pycharm)中调用一个批处理文件将在IDE中运行它,因此在后台,这意味着您无法看到控制台。因此,您可以使用解决方法:调用批处理文件,然后调用批处理文件以启动tensorboard。
注意:我在这个例子中使用Anaconda作为我的虚拟环境
batch_filename = 'start_tb.bat' # set filename for batch file
tb_command = 'tensorboard --logdir=' + log_dir # join strings for tensorflow command
# creates batch file that will call seconds batch file in console window (cmd.exe)
with open(os.path.join('invoke.bat'), "w") as f:
f.writelines('start ' + batch_filename)
# created batch file that activates Anaconda environment and starts tensorboard
with open(os.path.join(batch_filename), "w") as f:
f.writelines('\nconda activate YOURCondaEnvNAME && ' + tb_command) # change to your conda environment, or other virtualenv
# starts tensorboard using the batch files (will open console window)
# calls the 'invoke.bat' that will call 'start_tb.bat'
os.system('invoke.bat')
# starts tensorboard in default browser >> ATTENTION: must be adapted to local host
os.system('start "" http://YOUR-COMPUTER-NAME:6006/') # just copy the URL that tensorboard runs at on your computer
有时您可能需要在浏览器中刷新tensorboard,因为它在正确设置之前就已经打开了。
尝试从python运行
import os
os.system('python -m tensorflow.tensorboard --logdir=' + path)
在PyCharm中为我工作(但在linux上,所以如果shell语法不同,那么你必须调整它)