用于Pytorch,Tensorflow和Keras的神经网络图和培训指标的轻量级库。
Hiddenlayer简单,易于扩展,并且与Jupyter笔记本电脑效果很好。它不是打算替换高级工具,例如张量板,而是要替换高级工具太大而无法完成任务的情况。 Hiddlelayer由Waleed Abdulla和Phil Ferriere撰写,并获得MIT许可证的许可。
使用hiddenlayer在jupyter笔记本或pdf或png文件中渲染神经网络的图。请参阅Jupyter笔记本电脑示例,有关Tensorflow,Pytorch和Keras。

这些图旨在传达高级体系结构。因此,默认情况下隐藏了低级细节(例如,权重初始化操作,渐变,公共层类型的内部操作,...等)。 Hidden Layerer还将层的常用序列折叠在一起。例如,卷积 - > relu-> maxpool序列非常普遍,因此为简单起见,它们被合并到一个框中。
自定义图
隐藏和折叠节点的规则是完全可自定义的。您可以使用graph expressions并transforms来添加自己的规则。例如,该规则将Resnet101的瓶颈块的所有节点折叠成一个节点。
# Fold bottleneck blocks
ht.Fold("((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu",
"BottleneckBlock", "Bottleneck Block"),

如果您在Jupyter笔记本中运行培训实验,则可能会发现这很有用。您可以使用它来绘制损失和准确性,权重直方图或可视化几层的激活。

外面jupyter笔记本:
您也可以在Jupyter笔记本外使用Hidden Layer。在从命令行运行的Python脚本中,它将为指标打开一个单独的窗口。而且,如果您在没有GUI的服务器上,则可以将图形的快照保存到PNG文件以进行以后的检查。有关此用例的示例,请参见history_canvas.py。
Hiddenlayer是一个小库。它涵盖了基础知识,但是您可能需要将其扩展到自己的用例中。例如,说您想将模型精度表示为饼图而不是图。这可以通过扩展Canvas类并添加新方法来完成:
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", ""])
有关示例,请参见pytorch_train.ipynb或tf_train.ipynb。

keras_train.ipynb笔记本包含一个实际培训示例,该示例说明了如何创建自定义Canvas以绘制混乱矩阵与验证指标:

Pytorch:
pytorch_graph.ipynb :本笔记本显示了如何为一些流行的Pytorch型号生成图形。pytorch_train.ipynb :解释跟踪和显示培训指标。history_canvas.py :一个不使用GUI的隐藏器的示例。TensorFlow:
tf_graph.ipynb :本笔记本说明了如何为各种TF Slim模型生成图形。tf_train.ipynb :用张量指标演示跟踪和可视化训练指标。history_canvas.py :一个不使用GUI的隐藏器的示例。凯拉斯:
keras_graph.ipynb :本笔记本说明了如何为各种keras模型生成图形。keras_train.ipynb :演示模型图形,训练指标的可视化以及如何创建自定义的keras回调,该回调使用子分类的Canvas ,以便在每个训练时期结束时绘制混淆矩阵。HiddenLayer在MIT许可证下发布。随意扩展它或根据您的需求进行自定义。如果您发现错误,这可能是因为这是早期版本,请进行报告或提交拉动请求。
如果您想贡献新功能,那么这里有一些我们想添加的东西,但从未解决过:
一个。 Python3,Numpy,Matplotlib和Jupyter笔记本。
b。张量或pytorch
c。 GraphViz及其Python包装器生成网络图。最简单的安装方法是
如果您使用conda:
conda install graphviz python-graphviz否则:
pip3 install graphviz如果您想在本地编辑或自定义库,请使用此功能。
# Clone the repository
git clone [email protected]:waleedka/hiddenlayer.git
cd hiddenlayer
# Install in dev mode
pip install -e .pip install hiddenlayersite-packages如果您只想安装库的最新版本,请使用以下内容:
pip install git+https://github.com/waleedka/hiddenlayer.git