如何在训练模型时自动运行张量板?

时间:2017-07-03 07:45:57

标签: tensorflow tensorboard

我在windows上使用tensorflow,我知道我可以手动运行tensorboard:

  1. 打开anaconda提示
  2. 激活张量流环境
  3. 输入在anaconda提示符
  4. 中运行的tensorflow的logdir的日志目录
  5. 输入命令'tensorboard -logdir = mylogdir'
  6. 打开Goog​​le Chrome,然后输入http://localhost:6006/
  7. 我希望自动运行这5个步骤并希望在我训练模型时一起运行tensorboard,以便我可以监控训练过程。我可以在进入培训流程之前添加以下系统调用

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

    然而,代码停止在http://0.0.0.0:6006显示“Starting TensorBoard b'47”

    谢谢你下面的Ayushya。使用第一种方法,它不会并行运行。如果我先启动P1,它仍然需要在输入其余代码之前按CTRL + C

    log_dir='E:/PythonCode/BayesianLinearStrategy/LOG'
    p1 = Process(target=startTensorboard(log_dir))
    p1.start()
    p2 = Process(target=RunTFCode)
    p2.start()
    

1 个答案:

答案 0 :(得分:0)

我相信你正在尝试与训练并行运行张量板。

您可以使用threadingmultiprocessing。以下是source的修改示例:

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

OR

您可以使用创建一个bash脚本来执行您指定的步骤并同时启动训练课程。您可以使用以下命令运行两个命令:

prog1 & prog2 && fg

这将:

  1. 开始prog1。
  2. 将其发送至后台,但继续打印输出。
  3. 启动prog2,并将其保留在前台,以便您可以使用ctrl-c关闭它。
  4. 当您关闭prog2时,您将返回prog1的前景,因此您也可以使用ctrl-c关闭它。
  5. 编辑:通过添加p1.join()和p2.join()来修改python代码。