Eine leichte Bibliothek für neuronale Netzwerkgrafiken und Schulungsmetriken für Pytorch, Tensorflow und Keras.
HiddenLayer ist einfach, leicht zu erweitern und funktioniert hervorragend mit Jupyter Notebook. Es ist nicht beabsichtigt, erweiterte Tools wie Tensorboard zu ersetzen, sondern für Fälle, in denen erweiterte Tools für die Aufgabe zu groß sind. HiddenLayer wurde von Waleed Abdulla und Phil FerRiere geschrieben und unter der MIT -Lizenz lizenziert.
Verwenden Sie HiddenLayer, um ein Diagramm Ihres neuronalen Netzwerks in Jupyter Notebook oder in eine PDF- oder PNG -Datei zu rendern. Siehe Beispiele für Tensorflow, Pytorch und Keras Jupyter Notebook.

Die Grafiken sind so konzipiert, dass sie die hochrangige Architektur kommunizieren. Daher sind Details mit niedriger Ebene standardmäßig versteckt (z. B. OPS, Gradienten, interne OPs gemeinsamer Schichttypen, ... usw.). HiddenLayer faltet auch üblicherweise verwendete Sequenzen von Schichten zusammen. Zum Beispiel ist die Faltung -> Relu -> Maxpool -Sequenz sehr häufig, sodass sie zum Einfachheit halber in eine Box verschmolzen werden.
Anpassen von Diagrammen
Die Regeln für das Verstecken und Klappknoten sind vollständig anpassbar. Sie können graph expressions und transforms verwenden, um Ihre eigenen Regeln hinzuzufügen. Diese Regel faltet beispielsweise alle Knoten eines Engpassblocks eines ResNET101 in einen Knoten.
# Fold bottleneck blocks
ht.Fold("((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu",
"BottleneckBlock", "Bottleneck Block"),

Wenn Sie Trainingsexperimente in Jupyter Notebook durchführen, finden Sie dies möglicherweise nützlich. Sie können es verwenden, um Verlust und Genauigkeit, Histogramme von Gewichten zu zeichnen oder Aktivierungen einiger Schichten zu visualisieren.

Außerhalb von Jupyter Notebook:
Sie können auch HiddenLayer außerhalb des Jupyter -Notizbuchs verwenden. In einem Python -Skript, das aus der Befehlszeile ausgeführt wird, wird ein separates Fenster für die Metriken geöffnet. Und wenn Sie ohne GUI auf einem Server sind, können Sie Schnappschüsse der Grafiken für eine spätere Inspektion in PNG -Dateien speichern. Eine Beispiel für diesen Anwendungsfall finden Sie in History_Canvas.py.
HiddenLayer ist eine kleine Bibliothek. Es deckt die Grundlagen ab, aber Sie müssen es wahrscheinlich für Ihren eigenen Anwendungsfall erweitern. Angenommen, Sie möchten die Modellgenauigkeit eher als Kreisdiagramm als als Handlung darstellen. Dies kann durch Erweiterung der Canvas und Hinzufügen einer neuen Methode als solche erfolgen:
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", ""])
Ein Beispiel finden Sie im Pytorch_Train.ipynb oder tf_train.ipynb.

Das Notebook keras_train.ipynb enthält ein aktuelles Trainingsbeispiel, mit dem Sie veranschaulichen, wie Sie eine benutzerdefinierte Canvas erstellen, um eine Verwirrungsmatrix neben Validierungsmetriken zu zeichnen:

Pytorch:
pytorch_graph.ipynb : Dieses Notizbuch zeigt, wie Sie Diagramme für einige beliebte Pytorch -Modelle generieren.pytorch_train.ipynb : Erklärt die Verfolgung und Anzeige von Trainingsmetriken.history_canvas.py : Ein Beispiel für die Verwendung von HiddenLayer ohne GUI.Tensorflow:
tf_graph.ipynb : Dieses Notizbuch zeigt, wie Sie Grafiken für verschiedene TF -Slim -Modelle generieren.tf_train.ipynb : Demonstriert die Verfolgung und Visualisierung von Trainingsmetriken mit TensorFlow.history_canvas.py : Ein Beispiel für die Verwendung von HiddenLayer ohne GUI.Keras:
keras_graph.ipynb : Dieses Notizbuch zeigt, wie Sie Grafiken für verschiedene Keras -Modelle generieren.keras_train.ipynb : Demonstriert Modellgrafik, Visualisierung von Trainingsmetriken und So erstellen Sie einen benutzerdefinierten Keras -Rückruf, der eine unterklassige Canvas verwendet, um eine Verwirrungsmatrix am Ende jeder Trainings -Epoche zu zeichnen.HiddenLayer wird unter der MIT -Lizenz veröffentlicht. Fühlen Sie sich frei, es zu erweitern oder es für Ihre Bedürfnisse anzupassen. Wenn Sie Fehler entdecken, die wahrscheinlich da ist, da es sich um eine frühe Veröffentlichung handelt, melden Sie sie bitte oder senden Sie eine Pull -Anfrage.
Wenn Sie neue Funktionen beitragen möchten, sind hier ein paar Dinge, die wir hinzufügen wollten, aber nie dazu gekommen sind:
A. Python3, Numpy, Matplotlib und Jupyter Notebook.
B. Entweder Tensorflow oder Pytorch
C. Graphviz und seine Python -Wrapper zum Generieren von Netzwerkdiagrammen. Der einfachste Weg, es zu installieren, ist es
Wenn Sie Conda verwenden:
conda install graphviz python-graphvizAnsonsten:
pip3 install graphvizVerwenden Sie dies, wenn Sie die Bibliothek lokal bearbeiten oder anpassen möchten.
# Clone the repository
git clone [email protected]:waleedka/hiddenlayer.git
cd hiddenlayer
# Install in dev mode
pip install -e .pip install hiddenlayersite-packages direkt von GitHubVerwenden Sie Folgendes, wenn Sie nur die neueste Version der Bibliothek installieren möchten:
pip install git+https://github.com/waleedka/hiddenlayer.git