根据此官方Tensorboard插件示例:
https://github.com/tensorflow/tensorboard-plugin-example
使用自定义Tensorboard插件的唯一方法是构建包含该插件的自定义Tensorboard。看起来很奇怪(我想对定制插件进行交互的一种更好的方法是以某种方式在“标准” Tensorboard中注册它,或者将其名称/路径作为参数传递给Tensorboard)。这是一种奇怪的方法,但我可以接受。真正令我困扰的是,从上面的示例看来,启动自定义Tensorboard的唯一方法是使用“ bazel run”命令
bazel run //greeter_tensorboard -- --logdir=/tmp/greeter_demo
也许我错了,并且可以在没有Bazel的情况下启动自定义TensorBoard?我是Python和Tensorboard的新手,所以我想不出另一种方法来启动它。不幸的是,该示例随附的README.md并没有过多说明如何部署Tensorboard插件,而是提供了一个指向Tensorboard README和Bazel文档的链接。但是我在那里找不到有关部署插件和自定义张量板的有用信息。
集成
一旦有了插件(或更现实的是,在开发过程中 它),您将需要在TensorBoard中使用它。为此,我们 建议您分叉此存储库;它为您设置了一切。
基本上,集成新插件的方式是通过创建自定义 TensorBoard构建。自定义版本需要更改两件事:
- 它需要使用自己的main.py文件,该文件导入标准的TensorBoard插件,并在后端添加一个新文件。
- 它需要提供自己的index.html文件,该文件将导入新的TensorBoard插件前端,并将其注册为仪表板。
如果您想真正了解集成的过程, 您需要了解我们的构建系统Bazel。您可以阅读 Bazel文档以及有用的提示汇编。
如果这是启动自定义张量板的唯一方法,则意味着我的自定义张量板的每个用户都必须安装Bazel,并从C ++和Python来源构建自定义张量板。但是我什至无法让Bazel在Windows上构建此Greeter示例,因为VC15编译器(Visual Studio 2017附带的那个)无法编译TensorBoard中使用的C ++(我想是因为VC不完全支持现代C ++标准)。我只能在Linux上构建它。 所以我的问题是:自定义张量板应如何准确分配和启动?不用Bazel就能做到吗?
答案 0 :(得分:1)
我已经弄清楚了如何创建自定义Greeter演示张量板的发行版,以及如何在不使用Bazel的情况下运行它。假设Greeter演示tensorboard代码已克隆到〜/ tensorboard-plugin-example 中。使用以下命令构建插件和张量板后:
bazel run //greeter_plugin:greeter_demo
bazel run //greeter_tensorboard -- --logdir=/tmp/greeter_demo
将 greeter_tensorboard 目录从〜/ tensorboard-plugin-example 复制到〜/
将〜/ tensorboard-plugin-example / greeter_plugin 目录复制到〜/ greeter_tensorboard
将文件 assets.zip 从〜/ tensorboard-plugin-example / bazel-bin / greeter_tensorboard 复制到〜/ greeter_tensorboard >
您现在可以使用以下命令启动自定义的Greeter张量板:
python ~/greeter_tensorboard/main.py --logdir=/tmp/greeter_demo
假设已通过运行
在 / tmp / greeter_demo 目录中生成了测试数据bazel run //greeter_plugin:greeter_demo
命令。