干货 | HiddenLayer:可视化PyTorchTensorFlow神经网络图的轻量级工具!

Posted OFweek人工智能

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货 | HiddenLayer:可视化PyTorchTensorFlow神经网络图的轻量级工具!相关的知识,希望对你有一定的参考价值。



干货 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

干货 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

来源:机器之心 译


本文介绍了一个面向 PyTorch 和 TensorFlow 神经网络计算图和训练度量(metric)的轻量级库——HiddenLayer,它适用于快速实验,且与 Jupyter Notebook 兼容。

GitHub链接:https://github.com/waleedka/hiddenlayer

HiddenLayer 非常简单,易于扩展,且与 Jupyter Notebook 完美兼容。开发该工具的目的不是为了取代 TensorBoard 等高级工具,而是用在那些无需使用高级工具的用例中(杀鸡焉用宰牛刀)。HiddenLayer 由 Waleed Abdulla 和 Phil Ferriere 编写,已获得 MIT 许可证。

1. 可读的图

使用 HiddenLayer 在 Jupyter Notebook 中渲染你的神经网络图,或者渲染 pdf 或 png 文件。Jupyter notebook 示例请参考以下链接:

  • TensorFlow:https://github.com/waleedka/hiddenlayer/blob/master/demos/tf_graph.ipynb

  • Pytorch:https://github.com/waleedka/hiddenlayer/blob/master/demos/pytorch_graph.ipynb

干货 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

这些图用于沟通高级架构。因此,低级细节在默认状态下是隐藏的(如权重初始化 ops、梯度、一般层类型的内部 ops 等)。HiddenLayer 还将常用层序列叠在一起。例如,Convolution -> RELU -> MaxPool 序列比较常用,为简单起见,它们被合并在一个盒子里。

自定义图

隐藏、折叠节点的规则是完全可定制的。你可以用 graph expressions 和 transforms 添加自己的规则。例如,使用以下命令可以将 ResNet101 中 bottleneck 块的所有节点折叠为一个节点。

# Fold bottleneck blocks ht.Fold("((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu",              "BottleneckBlock", "Bottleneck Block"),

干货 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

2. Jupyter Notebook 中的训练度量

 Jupyter Notebook 中运行训练试验非常有用。你可以绘制损失函数准确率图、权重直方图,或者可视化一些层的激活函数

干货 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

 Jupyter Notebook 之外:

 Jupyter Notebook 外同样可以使用 HiddenLayer。在 Python 脚本中运行 HiddenLayer,可以打开度量的单独窗口。如果你使用的服务器没有 GUI,可以将图像截图存储为 png 文件以备后查。该用例示例参见:

https://github.com/waleedka/hiddenlayer/blob/master/demos/history_canvas.py。

3. Hackable

HiddenLayer 是一个小型库。它覆盖基础元素,但你可能需要为自己的用例进行扩展。例如,如果你想将模型准确率表示为饼图,就需要扩展 Canbas 类,并添加新方法,如下所示:

class MyCanvas(hl.Canvas):     """Extending Canvas to add a pie chart method."""     def draw_pie(self, metric):         # set square aspect ratio         self.ax.axis('equal')         # Get latest value of the metric         value = np.clip(metric.data[-1], 0, 1)         # Draw pie chart         self.ax.pie([value, 1-value], labels=["Accuracy", ""])

示例参见:

https://github.com/waleedka/hiddenlayer/blob/master/demos/pytorch_train.ipynb 

https://github.com/waleedka/hiddenlayer/blob/master/demos/tf_train.ipynb。

干货 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

Demo PyTorch:

  • pytorch_graph.ipynb:此 notebook 展示了如何为一些流行的 PyTorch 模型生成图。

  • https://github.com/waleedka/hiddenlayer/blob/master/demos/pytorch_graph.ipynb

  • pytorch_train.ipynb:展示了如何在 PyTorch 中追踪和可视化训练度量。

  • https://github.com/waleedka/hiddenlayer/blob/master/demos/pytorch_train.ipynb

  • history_canvas.py:在没有 GUI 的情况下使用 HiddenLayer 的示例。

  • https://github.com/waleedka/hiddenlayer/blob/master/demos/history_canvas.py

TensorFlow:

  • tf_graph.ipynb:此 notebook 介绍了如何为不同的 TF SLIM 模型生成图。

  • https://github.com/waleedka/hiddenlayer/blob/master/demos/tf_graph.ipynb

  • tf_train.ipynb:展示了如何在 TensorFlow 中追踪和可视化训练度量。

  • https://github.com/waleedka/hiddenlayer/blob/master/demos/tf_train.ipynb

  • history_canvas.py:在没有 GUI 的情况下使用 HiddenLayer 的示例。

  • https://github.com/waleedka/hiddenlayer/blob/master/demos/history_canvas.py

安装

1. 先决条件

a. Python3、Numpy、Matplotlib 和 Jupyter Notebook。

b. 用 TensorFlow 或 PyTorch。

c. 用 GraphViz 及其 Python 封装来生成网络图。最简单的安装方式是:

If you use Conda: ```bash conda install graphviz python-graphviz ``` Otherwise: [Install GraphViz](https://graphviz.gitlab.io/download/)  Then install the [Python wrapper for GraphViz](https://github.com/xflr6/graphviz) using pip:    ```    pip3 install graphviz    ```

2. 安装 HiddenLayer

A. 从 GitHub 中安装(开发者模式)

如果要在本地编辑或自定义库,使用此选项。

# Clone the repository git clone git@github.com:waleedka/hiddenlayer.git cd hiddenlayer # Install in dev mode pip install -e .

B. 使用 PIP

pip install hiddenlayer

推荐阅读

1.限时下载 | 800G人工智能全套学习资料,超级干货! Hot~

2.限时下载 | Python+Matlab+机器学习+深度神经网络,仅限500人! Hot~

3.限时下载 | 100G Python从入门到精通全套资料!(全网最全) Hot~

4.限时下载 | Matlab从入门到进阶学习资料大放送,全是干货! Hot~

5.

6.限时下载 | 学习Python、机器人编程必读的10本书籍!

7.限时下载 | 265G python全套视频教程,从入门进阶到面试技巧! Hot~

8.限时下载 | 40G Matlab从入门到精通全套学习资料大全!

9.限时下载 | 一本豆瓣9.4分的好书《流畅的Python》!

10.限时下载 | 一本数据分析入门必读《利用Python进行数据分析》

11.限时下载 | 110G C语言和C++编程全套自学教程,仅限500人!

12.限时下载 | 20G Python量化交易从入门到精通全套资料!

干货 | HiddenLayer:可视化PyTorch、TensorFlow神经网络图的轻量级工具!

OFweek 2018(第三届)中国

人工智能产业大会

(深圳站)


OFweek 2018(第三届)中国人工智能产业大会将于2018年11月12日在深圳举办!本次大会将用全新视角透析行业动态,解读在人工智能领域本年度海内外最值得关注的学术与研发进展,作为AI人,这场AI综合秀不容错过!


组委会联系方式:+86-755-8630 9644-1015shexiaona@ofweek.com

小编温馨提示:扫码报名即可进入2018中国人工智能产业大会福利群,抢1500元福利门票

免费领取2018中国人工智能产业大会门票

戳下面的原文阅读,也能抢票

以上是关于干货 | HiddenLayer:可视化PyTorchTensorFlow神经网络图的轻量级工具!的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch中的可视化工具

大工具-收藏

在检查点错误中找不到密钥 dnn/hiddenlayer_0/bias

干货|Pytorch还是Tensorflow?英伟达工程师帮你总结了

超实用的7种 pytorch 网络可视化方法,进来收藏一波

lstm-思想