Neural Network architecture drawings are essential for illustrating the design and functionality of models in research papers and presentations. Traditionally, creating these diagrams has been a manual and time-consuming task. However, NN-SVG offers a powerful tool that allows users to generate these drawings parametrically, saving time and effort while providing high-quality, scalable vector graphics (SVG) suitable for academic use.
Introduction to NN-SVG
NN-SVG is an open-source tool designed to create detailed and publication-ready diagrams of Neural Network (NN) architectures. The tool supports generating figures for Fully-Connected Neural Networks (FCNN), Convolutional Neural Networks (CNN), and Deep Neural Networks (DNN) like those introduced in the AlexNet paper. The tool leverages the D3.js library for FCNN and CNN figures and Three.js for AlexNet-style DNN figures.
Key Features:
- Parametric Design: Create NN diagrams by specifying parameters rather than drawing manually.
- SVG Export: Export diagrams as SVG files, ensuring scalability and compatibility with academic papers and web pages.
- Customization: Adjust size, color, and layout to match your preferences or publication requirements.
Getting Started
To use NN-SVG, follow these steps:
- Visit the NN-SVG Website: Access the tool directly from alexlenail.me/NN-SVG.
- Select the Type of Network: Choose between FCNN, CNN, or AlexNet-style DNN from the available options.
- Configure the Parameters: Adjust the network parameters such as the number of layers, nodes per layer, and other specific settings. Each type of network will have different configurable parameters.
- Generate the Diagram: Once you’ve configured the parameters, generate the diagram.
- Export to SVG: After generating the diagram, export it as an SVG file for use in your documents or presentations.
Example: Creating a Fully-Connected Neural Network Diagram
Here is a step-by-step guide to creating a Fully-Connected Neural Network (FCNN) diagram using NN-SVG:
Step 1: Select FCNN
Navigate to the NN-SVG tool and select the FCNN option.
Step 2: Configure Network Parameters
Input the desired parameters for your FCNN. For example:
- Input Layer: 10 nodes
- Hidden Layers: 3 layers with 20, 15, and 10 nodes respectively
- Output Layer: 5 nodes
Adjust additional parameters such as layer spacing and node size as needed.
Step 3: Generate the Diagram
Click the “Generate” button to create the FCNN diagram based on your specified parameters.
Step 4: Export the Diagram
Once the diagram is generated, click the “Export” button to save the diagram as an SVG file.
htmlCopy code<!DOCTYPE html>
<html>
<head>
<title>FCNN Example</title>
<script src="https://d3js.org/d3.v6.min.js"></script>
<script src="path/to/NN-SVG/FCNN.js"></script>
</head>
<body>
<div id="fcnn-diagram"></div>
<script>
// Example configuration for an FCNN
const config = {
inputLayer: 10,
hiddenLayers: [20, 15, 10],
outputLayer: 5,
layerSpacing: 100,
nodeSize: 30
};
// Generate the FCNN diagram
generateFCNN('#fcnn-diagram', config);
</script>
</body>
</html>
Example: Creating a Convolutional Neural Network Diagram
Here is a step-by-step guide to creating a Convolutional Neural Network (CNN) diagram using NN-SVG:
Step 1: Select CNN
Navigate to the NN-SVG tool and select the CNN option.
Step 2: Configure Network Parameters
Input the desired parameters for your CNN. For example:
- Input Layer: 32x32x3 (image size and channels)
- Convolutional Layers: Specify the number of filters, kernel size, and stride for each layer
- Pooling Layers: Define the pooling operations (e.g., max-pooling) between convolutional layers
- Fully-Connected Layers: Add fully-connected layers after the convolutional and pooling layers
Step 3: Generate the Diagram
Click the “Generate” button to create the CNN diagram based on your specified parameters.
Step 4: Export the Diagram
Once the diagram is generated, click the “Export” button to save the diagram as an SVG file.
htmlCopy code<!DOCTYPE html>
<html>
<head>
<title>CNN Example</title>
<script src="https://d3js.org/d3.v6.min.js"></script>
<script src="path/to/NN-SVG/CNN.js"></script>
</head>
<body>
<div id="cnn-diagram"></div>
<script>
// Example configuration for a CNN
const config = {
inputLayer: [32, 32, 3],
convLayers: [
{filters: 32, kernelSize: 3, stride: 1},
{filters: 64, kernelSize: 3, stride: 1}
],
poolingLayers: [
{type: 'max', size: 2, stride: 2}
],
fcLayers: [128, 10]
};
// Generate the CNN diagram
generateCNN('#cnn-diagram', config);
</script>
</body>
</html>
Conclusion
NN-SVG simplifies the process of creating and exporting neural network architecture diagrams. By allowing parametric configurations and providing SVG export options, it saves time and enhances the quality of illustrations for academic and professional use. Whether you are designing a simple FCNN or a complex CNN, NN-SVG offers a user-friendly interface and powerful customization options to meet your needs.
For more information and to start using NN-SVG, visit the official NN-SVG website. This tool is invaluable for anyone involved in machine learning research or education, providing a quick and efficient way to create high-quality network diagrams.