如何在训练模型时自动运行TensorBoard?

3
我正在Windows上使用TensorFlow,我知道我可以手动运行TensorBoard:
  1. 打开Anaconda提示符
  2. 激活TensorFlow环境
  3. 在Anaconda提示符中输入TensorFlow日志目录的Log文件夹
  4. 输入' tensorboard -logdir=mylogdir '命令
  5. 打开Google Chrome然后输入http://localhost:6006/
我希望能自动地运行这5个步骤,希望在训练模型时TensorBoard也能一起运行,以便我可以监控训练过程。我可以在进入训练流程之前添加以下系统调用: os.system('C:/CodingSoftware/Anaconda3_py3.5/envs/tensorflow-gpu/python -m tensorflow.tensorboard --logdir='+tf_log_dir) 但是代码只会显示 "Starting TensorBoard b'47' at http://0.0.0.0:6006" 。
感谢下面的Ayushya。使用你的第一种方法,它不能并行运行。如果我先启动P1,那么在进入其余代码之前仍需要按CTRL+C。
log_dir='E:/PythonCode/BayesianLinearStrategy/LOG'
p1 = Process(target=startTensorboard(log_dir))
p1.start()
p2 = Process(target=RunTFCode)
p2.start()

它不会显示,因为你只要求它启动服务器而没有打开Web浏览器访问Tensorboard服务器。你还需要打开Chrome并导航到localhost。你用手动步骤回答了自己的问题。 - JCooke
1个回答

1
我相信您正在尝试在训练过程中并行运行tensorboard。
您可以使用线程多进程。这是一个修改后的示例,源自此处
from multiprocessing import Process

def startTensorboard(tf_log_dir):
  os.system('C:/CodingSoftware/Anaconda3_py3.5/envs/tensorflow-gpu/python -m tensorflow.tensorboard --logdir='+tf_log_dir)

if __name__ == '__main__':
  log_dir='E:/PythonCode/BayesianLinearStrategy/LOG'
  p1 = Process(target=startTensorboard(log_dir)) 
  p2 = Process(target=RunTFCode) 
  p1.start()
  p2.start() 
  p1.join() 
  p2.join()
  ...rest of your code

或者

您可以创建一个bash脚本,执行您在问题中指定的步骤,并同时启动训练会话。您可以使用以下命令运行两个命令:

prog1 & prog2 && fg

这将会:

  1. 启动prog1。
  2. 将其发送到后台,但仍保持打印其输出。
  3. 启动prog2,并将其保持在前台,以便您可以使用ctrl-c关闭它。
  4. 当您关闭prog2时,您将返回到prog1的前台,因此您也可以使用ctrl-c关闭它。

编辑:通过添加p1.join()和p2.join()修改了Python代码。


1
如果__name__ == 'main': log_dir='E:/PythonCode/BayesianLinearStrategy/LOG' p1 = Process(target=startTensorboard(log_dir)) p1.start() p2 = Process(target=RunTFCode) p2.start() p1.join() p2.join() - hadesmajesty
@hadesmajesty 我已经更新了答案,包含了你指出的错误。 - Ayushya
谢谢Ayushya。使用您的第一种方法,它不会并行运行。如果我先启动P1,则仍需要按CTRL+C键才能输入其余代码。 - hadesmajesty
我想我们应该避免在这里使用join。https://dev59.com/118e5IYBdhLWcg3wwMr7#25391156上的一个答案说,join用于表示“等待此[线程/进程]完成”,而这不是我们想要的。 - Ayushya
@hadesmajesty 如果你成功了,请告诉我们。 - Ayushya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接