Une bibliothèque légère pour les graphiques de réseau neuronal et les mesures de formation pour Pytorch, Tensorflow et Keras.
HiddenLayer est simple, facile à étendre et fonctionne très bien avec Jupyter Notebook. Il n'est pas destiné à remplacer les outils avancés, tels que Tensorboard, mais plutôt pour les cas où les outils avancés sont trop grands pour la tâche. Hiddenlayer a été écrit par Waleed Abdulla et Phil Ferriere, et est autorisé sous la licence du MIT.
Utilisez HiddenLayer pour rendre un graphique de votre réseau de neurones dans Jupyter Notebook, ou dans un fichier PDF ou PNG. Voir des exemples de cahier Jupyter pour TensorFlow, Pytorch et Keras.

Les graphiques sont conçus pour communiquer l'architecture de haut niveau. Par conséquent, les détails de bas niveau sont cachés par défaut (par exemple, les OP d'initialisation de poids, les gradients, les opérations internes des types de couche courants, ... etc.). HiddenLayer replie également les séquences de couches couramment utilisées. Par exemple, la séquence Convolution -> relu -> maxpool est très courante, donc ils sont fusionnés dans une seule boîte pour simplifier.
Personnalisation des graphiques
Les règles de cachette et de pliage des nœuds sont entièrement personnalisables. Vous pouvez utiliser graph expressions et transforms pour ajouter vos propres règles. Par exemple, cette règle pose tous les nœuds d'un bloc d'étranglement d'un RESNET101 dans un seul nœud.
# Fold bottleneck blocks
ht.Fold("((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu",
"BottleneckBlock", "Bottleneck Block"),

Si vous exécutez des expériences de formation dans Jupyter Notebook, vous pouvez trouver cela utile. Vous pouvez l'utiliser pour tracer la perte et la précision, les histogrammes de poids ou visualiser les activations de quelques couches.

Out-Jupyter Notebook:
Vous pouvez également utiliser HIDDENDLAYER à l'extérieur de Jupyter Notebook. Dans un script Python exécutant à partir de la ligne de commande, il ouvrira une fenêtre séparée pour les métriques. Et si vous êtes sur un serveur sans interface graphique, vous pouvez enregistrer des instantanés des graphiques dans les fichiers PNG pour une inspection ultérieure. Voir history_canvas.py pour un exemple de ce cas d'utilisation.
HiddenLayer est une petite bibliothèque. Il couvre les bases, mais vous devrez probablement l'étendre pour votre propre cas d'utilisation. Par exemple, disons que vous souhaitez représenter la précision du modèle en tant que graphique à secteurs plutôt que comme un complot. Cela peut être fait en étendant la classe Canvas et en ajoutant une nouvelle méthode en tant que telle:
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", ""])
Voir le pytorch_train.ipynb ou tf_train.ipynb pour un exemple.

Le cahier keras_train.ipynb contient un exemple de formation réel qui illustre comment créer un Canvas personnalisé pour tracer une matrice de confusion aux côtés des métriques de validation:

Pytorch:
pytorch_graph.ipynb : Ce carnet montre comment générer des graphiques pour quelques modèles Pytorch populaires.pytorch_train.ipynb : explique le suivi et l'affichage des mesures de formation.history_canvas.py : un exemple d'utilisation de HiddenLayer sans GUI.Tensorflow:
tf_graph.ipynb : Ce carnet illustre comment générer des graphiques pour divers modèles TF Slim.tf_train.ipynb : démontre le suivi et la visualisation des mesures de formation avec TensorFlow.history_canvas.py : un exemple d'utilisation de HiddenLayer sans GUI.Keras:
keras_graph.ipynb : Ce carnet illustre comment générer des graphiques pour divers modèles Keras.keras_train.ipynb : démontre le graphique du modèle, la visualisation des métriques de formation et comment créer un rappel Keras personnalisé qui utilise une Canvas sous-classée afin de tracer une matrice de confusion à la fin de chaque époque de formation.Hiddenlayer est libéré sous la licence MIT. N'hésitez pas à l'étendre ou à le personnaliser pour vos besoins. Si vous découvrez des bogues, ce qui est probable car il s'agit d'une version anticipée, veuillez les signaler ou soumettre une demande de traction.
Si vous aimez contribuer de nouvelles fonctionnalités, voici quelques choses que nous voulions ajouter mais jamais y arriver:
un. Python3, Numpy, Matplotlib et Jupyter Notebook.
né Tensorflow ou Pytorch
c. Graphviz et son emballage Python pour générer des graphiques réseau. La façon la plus simple de l'installer est
Si vous utilisez conda:
conda install graphviz python-graphvizSinon:
pip3 install graphvizUtilisez-le si vous souhaitez modifier ou personnaliser la bibliothèque localement.
# Clone the repository
git clone [email protected]:waleedka/hiddenlayer.git
cd hiddenlayer
# Install in dev mode
pip install -e .pip install hiddenlayersite-packages directement à partir de GitHubUtilisez ce qui suit si vous souhaitez simplement installer la dernière version de la bibliothèque:
pip install git+https://github.com/waleedka/hiddenlayer.git