Jul*_*ore 12 python windows jupyter-notebook tensorboard jupyter-lab
如果两天的挫败感泄露了,我深表歉意……
问题:无法在 jupyter notebook(实际上是在 Jupyter Lab)中可靠地运行 Tensorboard
%tensorboard --logdir {logdir}
Run Code Online (Sandbox Code Playgroud)
如果我终止 tensorboard 进程并在笔记本中重新启动,它会说它正在重用已死的进程和端口,但该进程已死并且 netstat -ano | findstr :6006` 什么也没显示,所以端口看起来也关闭了。
问题:如何以 $deity 的名义让 tensorboard 从头开始重新启动并忘记它认为它对进程、端口等的了解?如果我能做到这一点,我就可以解决剩余路径等问题......
已知问题已经解决(我认为):需要转义 Python 字符串中的反斜杠以获得正确的路径和其他操作系统小精灵;避免路径中的空格,确保正确的大小写...
环境:通过 conda install 安装 Anaconda 和 Tensforflow-GPU 2 的 Win 64 位 Home - TF 正在工作并将数据写入通过回调给出的指定路径
tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1) # logdir is the full path
Run Code Online (Sandbox Code Playgroud)
但是如果我能在笔记本中可靠地启动 Tensorboard,我就该死了。
我发现如果我启动了一个 Anaconda 命令窗口并从那里调用了 tensorboard,那么 tensorboard 就可以正常启动了……
(TF2GPU_Anaconda) C:\Users\Julian>tensorboard --logdir "a:\tensorboard\20200102-112749"
2020-01-02 11:53:58.478848: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.0.0 at http://localhost:6006/ (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)
它可以在 localhost:6006 的 Chrome 中访问,如所述(特别是http://localhost:6006/#scalars&run=20200102-112749%5Ctrain
)(我将忽略张量板的其他问题,例如标量刷新失败,图形上的奇怪消息等)和
%tensorboard --logdir {logdir}
Run Code Online (Sandbox Code Playgroud)
然后在笔记本和单独的 chrome 选项卡中显示 tensorboard。
然而!虽然 tensorboard 在笔记本中报告说它正在重用旧的死 PID 它实际上是在一个完全不同的新 PID 上
我做错了什么,如何完全重置张量板?
PS最后(成功!)调用实际上是
%tensorboard --logdir {makeWindowsCmdPath('A:\\tensorboard\\20200102-112749')}
Run Code Online (Sandbox Code Playgroud)
其中 makeWindowsCmdPath 定义为
def makeWindowsCmdPath(path):
return '\"' + str(path) + '\"'
Run Code Online (Sandbox Code Playgroud)
更新2020-01-03 已在Github的评论中上传了最终成功的 MWE,以回应包括张量板的 PID 引用错误在内的问题
wch*_*gin 17
嘿,很抱歉听到您遇到问题。你所描述的一切都是准确的,也是我的错,这是完全合理的。:-)
我如何以 $deity 的名义让 tensorboard 从头开始重新启动并忘记它认为它对进程、端口等的了解?如果我能做到这一点,我就可以解决剩余路径等问题......
.tensorboard-info
在您的临时目录中有一个名为的目录,该目录维护我们认为正在运行的 TensorBoard 作业的尽力而为的注册表。当 TensorBoard 启动时(以任何方式,包括使用%tensorboard
),它会向该目录写入一个“信息文件”,当您使用时,%tensorboard
我们首先检查“兼容实例”(相同的工作目录和 CLI 参数)是否仍在运行,如果是这样,请重新使用它。当 TensorBoard 实例完全关闭时,它会删除自己的信息文件。这个想法是,只要 TensorBoard 干净利落地关闭,我们就应该始终准确记录哪些进程处于活动状态,并且由于此注册表位于临时目录中,因此硬关闭导致的任何错误都将是短暂的。
但这就是我犯错的地方:来自 POSIX 世界并且对 Windows 应用程序开发不是很熟悉,我没有意识到 Windows 临时目录实际上并没有被自动删除。因此,任何簿记错误都会无限期地持续存在。
因此,您的问题的答案是,“删除.tensorboard-info
位于 ” 下的目录tempfile.gettempdir()
(最好是当您没有任何正在运行的 TensorBoard 实例时)。
有一些方法可以在 TensorBoard 核心中合理地解决这个问题:请参阅https://github.com/tensorflow/tensorboard/issues/2483开始,我还考虑了摊销方法,例如让每个 TensorBoard 实例执行一些清理其他实例在开始时间。我们还没有开始实施这些。
让我知道这是否有帮助,或者它是否无法解决您的问题。
归档时间: |
|
查看次数: |
7577 次 |
最近记录: |