Uma biblioteca leve para gráficos de redes neurais e métricas de treinamento para Pytorch, Tensorflow e Keras.
O HiddenLayer é simples, fácil de estender e funciona muito bem com o Jupyter Notebook. Não se destina a substituir ferramentas avançadas, como o Tensorboard, mas para os casos em que as ferramentas avançadas são grandes demais para a tarefa. Hiddenlayer foi escrito por Waleed Abdulla e Phil Ferriere e é licenciado sob a licença do MIT.
Use o HiddenLayer para renderizar um gráfico da sua rede neural no Notebook Jupyter ou em um arquivo PDF ou PNG. Consulte Jupyter Notebook Exemplos para Tensorflow, Pytorch e Keras.

Os gráficos foram projetados para comunicar a arquitetura de alto nível. Portanto, os detalhes de baixo nível estão ocultos por padrão (por exemplo, operações de inicialização de peso, gradientes, operações internas dos tipos de camada comum, ... etc.). O HiddenLayer também dobra as seqüências de camadas comumente usadas juntas. Por exemplo, a sequência da convolução -> relu -> Maxpool é muito comum, então eles são mesclados em uma caixa por simplicidade.
Personalizando gráficos
As regras para esconder e dobrar nós são totalmente personalizáveis. Você pode usar graph expressions e transforms gráficas para adicionar suas próprias regras. Por exemplo, esta regra dobra todos os nós de um bloco de gargalo de um resnet101 em um nó.
# Fold bottleneck blocks
ht.Fold("((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu",
"BottleneckBlock", "Bottleneck Block"),

Se você executar experimentos de treinamento no Jupyter Notebook, poderá achar isso útil. Você pode usá -lo para plotar a perda e precisão, histogramas de pesos ou visualizar ativações de algumas camadas.

Fora de Jupyter Notebook:
Você também pode usar o HiddenLayer fora do notebook Jupyter. Em um script python que sai da linha de comando, ele abrirá uma janela separada para as métricas. E se você estiver em um servidor sem uma GUI, poderá salvar instantâneos dos gráficos em arquivos PNG para inspeção posterior. Consulte History_Canvas.py para um exemplo deste caso de uso.
Hiddenlayer é uma pequena biblioteca. Ele cobre o básico, mas você provavelmente precisará estendê -lo para seu próprio caso de uso. Por exemplo, digamos que você deseja representar a precisão do modelo como um gráfico de pizza em vez de um gráfico. Isso pode ser feito estendendo a classe Canvas e adicionando um novo método como tal:
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", ""])
Consulte o pytorch_train.ipynb ou tf_train.ipynb para um exemplo.

O Notebook keras_train.ipynb contém um exemplo de treinamento real que ilustra como criar uma Canvas personalizada para plotar uma matriz de confusão juntamente com as métricas de validação:

Pytorch:
pytorch_graph.ipynb : Este notebook mostra como gerar gráficos para alguns modelos populares de pytorch.pytorch_train.ipynb : explica o rastreamento e exibição de métricas de treinamento.history_canvas.py : um exemplo de uso do HiddenLayer sem uma GUI.Tensorflow:
tf_graph.ipynb : Este notebook ilustra como gerar gráficos para vários modelos TF Slim.tf_train.ipynb : demonstra rastreamento e visualização de métricas de treinamento com tensorflow.history_canvas.py : um exemplo de uso do HiddenLayer sem uma GUI.Keras:
keras_graph.ipynb : Este notebook ilustra como gerar gráficos para vários modelos Keras.keras_train.ipynb : demonstra graphing de modelo, visualização de métricas de treinamento e como criar um retorno de chamada de Keras personalizado que usa uma Canvas subclassificada para plotar uma matriz de confusão no final de cada época de treinamento.O HiddenLayer é liberado sob a licença do MIT. Sinta -se à vontade para estendê -lo ou personalizá -lo para suas necessidades. Se você descobrir erros, o que é provável, pois é uma versão antecipada, denuncie -os ou envie uma solicitação de tração.
Se você gosta de contribuir com novos recursos, aqui estão algumas coisas que queríamos adicionar, mas nunca chegamos a isso:
um. Python3, Numpy, Matplotlib e Jupyter Notebook.
b. Tensorflow ou pytorch
c. GraphViz e seu invólucro Python para gerar gráficos de rede. A maneira mais fácil de instalá -lo é
Se você usa o conda:
conda install graphviz python-graphvizDe outra forma:
pip3 install graphvizUse isso se desejar editar ou personalizar a biblioteca localmente.
# Clone the repository
git clone [email protected]:waleedka/hiddenlayer.git
cd hiddenlayer
# Install in dev mode
pip install -e .pip install hiddenlayersite-packages diretamente do GitHubUse o seguinte se você deseja apenas instalar a versão mais recente da biblioteca:
pip install git+https://github.com/waleedka/hiddenlayer.git