Project Viznet is a neural network visualization program. It helps beginners visualize how a neural network works in 2d and 3d space. As well as provides an editor to modify the neural network architecture. The project now utilizes my own neural network library called AeroNet. It only utilizes a subnet of the library's functionality however to allow for a network architecture editor.
WARNING: This project was not programmed with the intention of external contribution. I prioritized speed of a working solution over readability.
- Dense(numInputNeurons, numOutputNeurons)
- Tanh()
- Sigmoid()
- Relu()
- LeakyRelu()
NOTE: The first Dense layer must have 2 inputs. And the final Dense layer must have 1 output. The number of outputs of the previous Dense layer must match the number of inputs in the subsequent layer
I have compiled a Windows executable for Project Viznet. You should just be able to download the executable called ProjectViznet-X.X.X.exe
from the dist
folder and run it locally. It will open a console window along with the visualization program itself. This console will give you epoch and error information when the network is training. Windows may give you a warning screen when trying to run the program. This is just because I didn't purchase a publisher certificate to distribute the executable.
python -m venv venvProjectViznet
venvProjectViznet/scripts/activate.bat
pip install -r requirements.txt
Use QT designer to modify the dialog.ui file.
Save the dialog.ui file.
Compile the dialog.ui file to python with...
pyuic5 dialog.ui > dialog.py
Then run the program...
python application.py
- You cannot interact with the program window while the network is training. The program is single threaded and uses your cpu to train the network.
Promoted classes are used to add the matplotlib widgets.
The promoted class name e.g. "Widget2dErrorGraph" specifies the widget class in the header file e.g. "widget_2derrorgraph". These names must match within the python project so that they can be linked to the UI. The associated "Canvas" class instead the header file can be named whatever you want.
Running...
pyinstaller -F application.py
Generates a single Windows executable in the dist folder.
The dist and build folders are both build files from pyinstaller. As is the application.spec file.
https://pyinstaller.org/en/stable/usage.html
- "Select Architecture" and "Select Pretrained Network" buttons removed. To be re-added and implemented in future.
- Need to make the neural network run on a separate thread to not freeze the GUI.
- "Pause Training" and "Stop Training" buttons removed. To be re-added and implemented in future.