Una biblioteca liviana para gráficos de redes neuronales y métricas de entrenamiento para Pytorch, TensorFlow y Keras.
Hiddenlayer es simple, fácil de extender y funciona muy bien con Jupyter Notebook. No está destinado a reemplazar herramientas avanzadas, como TensorBoard, sino para casos en que las herramientas avanzadas son demasiado grandes para la tarea. Hiddenlayer fue escrito por Waleed Abdulla y Phil Ferriere, y tiene licencia bajo la licencia MIT.
Use HiddenLayer para renderizar un gráfico de su red neuronal en el cuaderno Jupyter, o en un archivo PDF o PNG. Ver ejemplos de cuaderno de Jupyter para TensorFlow, Pytorch y Keras.

Los gráficos están diseñados para comunicar la arquitectura de alto nivel. Por lo tanto, los detalles de bajo nivel están ocultos de forma predeterminada (por ejemplo, OPS de inicialización de peso, gradientes, OP internos de tipos de capas comunes, ... etc.). Hiddenlayer también pliega secuencias de capas comúnmente utilizadas. Por ejemplo, la convolución -> relu -> maxpool secuencia es muy común, por lo que se fusionan en una caja por simplicidad.
Personalización de gráficos
Las reglas para ocultar y plegar nodos son totalmente personalizables. Puede usar graph expressions y transforms para agregar sus propias reglas. Por ejemplo, esta regla dobla todos los nodos de un bloque de cuello de botella de un resnet101 en un nodo.
# Fold bottleneck blocks
ht.Fold("((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu",
"BottleneckBlock", "Bottleneck Block"),

Si ejecuta experimentos de entrenamiento en el cuaderno de Jupyter, entonces puede encontrar esto útil. Puede usarlo para trazar la pérdida y precisión, histogramas de pesos o visualizar las activaciones de algunas capas.

Fuera del cuaderno de Jupyter:
También puede usar HiddenLayer fuera del cuaderno Jupyter. En un script de Python que se ejecuta desde la línea de comandos, abrirá una ventana separada para las métricas. Y si está en un servidor sin una GUI, puede guardar instantáneas de los gráficos en archivos PNG para una inspección posterior. Ver HISTORY_CANVAS.PY para obtener un ejemplo de este caso de uso.
Hiddenlayer es una pequeña biblioteca. Cubre lo básico, pero es probable que necesite extenderlo para su propio caso de uso. Por ejemplo, digamos que desea representar la precisión del modelo como un gráfico circular en lugar de una trama. Esto se puede hacer extendiendo la clase Canvas y agregando un nuevo 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", ""])
Vea el pytorch_train.ipynb o tf_train.ipynb para un ejemplo.

El cuaderno keras_train.ipynb contiene un ejemplo de entrenamiento real que ilustra cómo crear un Canvas personalizado para trazar una matriz de confusión junto con las métricas de validación:

Pytorch:
pytorch_graph.ipynb : este cuaderno muestra cómo generar gráficos para algunos modelos populares de Pytorch.pytorch_train.ipynb : explica el seguimiento y la visualización de métricas de entrenamiento.history_canvas.py : un ejemplo de usar HiddenLayer sin una GUI.TensorFlow:
tf_graph.ipynb : este cuaderno ilustra cómo generar gráficos para varios modelos Slim TF.tf_train.ipynb : Demuestra el seguimiento y la visualización de métricas de entrenamiento con TensorFlow.history_canvas.py : un ejemplo de usar HiddenLayer sin una GUI.Keras:
keras_graph.ipynb : este cuaderno ilustra cómo generar gráficos para varios modelos Keras.keras_train.ipynb : Demuestra gráficos de modelos, visualización de métricas de entrenamiento y cómo crear una devolución de llamada personalizada de Keras que utilice un Canvas subclasificado para trazar una matriz de confusión al final de cada época de entrenamiento.Hiddenlayer se lanza bajo la licencia MIT. Siéntase libre de extenderlo o personalizarlo para sus necesidades. Si descubre errores, lo cual es probable que sea una versión anticipada, informe o envíe una solicitud de extracción.
Si le gusta contribuir con nuevas funciones, aquí hay algunas cosas que queríamos agregar, pero nunca lo hicimos:
a. Python3, Numpy, Matplotlib y Jupyter Notebook.
b. Tensorflow o pytorch
do. GraphViz y su envoltura de python para generar gráficos de red. La forma más fácil de instalarlo es
Si usa conda:
conda install graphviz python-graphvizDe lo contrario:
pip3 install graphvizUse esto si desea editar o personalizar la 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 directamente desde GitHubUse lo siguiente si solo desea instalar la última versión de la biblioteca:
pip install git+https://github.com/waleedka/hiddenlayer.git