{"id":15015459,"url":"https://github.com/imdeep2905/neural-network-sandbox","last_synced_at":"2026-03-07T18:31:22.422Z","repository":{"id":43242231,"uuid":"236336082","full_name":"imdeep2905/Neural-Network-Sandbox","owner":"imdeep2905","description":"This is a source code of Software called Neural Network Sandbox.Neural Network Sandbox makes making and training basic feed forward neural networks easy.","archived":false,"fork":false,"pushed_at":"2022-11-22T04:58:37.000Z","size":1148,"stargazers_count":67,"open_issues_count":14,"forks_count":15,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-12T09:18:53.526Z","etag":null,"topics":["deep-learning","gui","keras","kivy","machine-learning","matplotlib","neural-networks","python","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imdeep2905.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-26T16:00:36.000Z","updated_at":"2025-01-21T22:35:49.000Z","dependencies_parsed_at":"2023-01-22T20:16:01.401Z","dependency_job_id":null,"html_url":"https://github.com/imdeep2905/Neural-Network-Sandbox","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdeep2905%2FNeural-Network-Sandbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdeep2905%2FNeural-Network-Sandbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdeep2905%2FNeural-Network-Sandbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imdeep2905%2FNeural-Network-Sandbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imdeep2905","download_url":"https://codeload.github.com/imdeep2905/Neural-Network-Sandbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248543836,"owners_count":21121838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","gui","keras","kivy","machine-learning","matplotlib","neural-networks","python","tensorflow"],"created_at":"2024-09-24T19:47:29.980Z","updated_at":"2026-03-07T18:31:22.346Z","avatar_url":"https://github.com/imdeep2905.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neural-Network-Sandbox\n**Current Version: V1.0**\n\u003cbr/\u003e\u003cbr/\u003e\n![logo](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/icon.png)\n\u003cbr/\u003e\u003cbr/\u003e\n**Demo of Neural Network Sandbox**\n\u003cbr/\u003e\n![Demo](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/demo.gif)\n\n# Contents\n\n1. [Introduction](#Introduction)\n2. [Installation](#Installation)\n3. [How to run](#How-to-run) \n4. [Features](#Features)\n   * [Readme](#Readme) \n   * [Help](#Help)\n   * [Optimization Technique](#Optimization-Technique)\n   * [Loss Function](#Loss-Function)\n   * [Add Layer](#Add-Layer)\n   * [Remove Layer](#Remove-Layer)\n   * [Weights Intialization](#Weights-Intialization)\n   * [Learning rate](#Learning-rate)\n   * [Epochs](#Epochs)\n   * [Start](#Start)\n   * [Reset](#Reset)\n   * [Batch Normalization](#Batch-Normalization)\n   * [Use GPU](#Use-GPU)\n   * [Shuffle Data](#Shuffle-Data)\n   * [Training Stats](#Training-Stats)\n   * [Layer Control](#Layer-Control)\n   * [Network Drawings](#Network-Drawing)\n   * [Save Current Model](#Save-Current-Model)\n   * [Visualize Training](#Visualize-Training)\n   * [Browse training Data](#Browse-Training-Data)\n   * [Load Exsisting Model](#Load-Exsisting-Model)\n   * [Testing Stats](#Testing-Stats)\n   * [Browse testining Data](#Browse-Testing-Data)\n   * [Report a Bug](#Report-a-Bug)\n   * [Label at Start](#Label-at-Start)\n   * [Smart PreProcess Data](#Label-at-Start)\n   * [Validation Split](#Validation-Split)\n5. [Known Issues](#Known-Issues)\n6. [Acknowledgment](#Acknowledgment)\n7. [Credits](#Credits)\n\n# Introduction\nNeural Network Sandbox is a GUI based application which makes making and training basic feed forward neural networks easy.\n\nBefore starting: **Assume default value of parameters which are not listed here.(For Ex: batch_size=32)**\n\n# Installation\n\nCurrently we are working on one **executable file** and **pip package** for this application.\n\n**Updates about package and executable will be posted here**\n\n# How to run\nWhile there is no executable available you can try Neural Network Sandbox with source code.\n\nBefore running Make Sure you have graphviz installed on your PC. Also make sure you have graphviz in environment variables.See [#1](https://github.com/imdeep2905/Neural-Network-Sandbox/issues/1) For More info on this.\n\n  1. Clone this repo. \n  (Stable : [V1.0](https://github.com/imdeep2905/Neural-Network-Sandbox/archive/V1.0.zip).You can also clone current code but it maybe unstable)\n  2. Fulfill ```requirements.txt``` (```pip install -r requirements.txt```).\n  3. Run with command ```python main.py```.\n\n# Features\n\n![Main Screen](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/mainscreen.PNG)\n\nAbove is the screenshot of Application.We will see each section one by one\n\n### Readme\nThis button will simply redirect you to ```README.md``` (Which contains documentation)of Github repo.\n\n### Help\nThis button will simply redirect you to ```HELP.md```(Which is useful for new users) of Github repo.\nYou can read ```HELP.md``` if you are beginner in Neural networks.All the buzzwords are explained there.\n\n### Optimization Technique\n\nThis option gives user number of choices for optimizer for their network.Click on ```SGD``` to see options and select one of them.\n\nOptions are:\n\n  * SGD\n  * RMSprop\n  * Adagrad\n  * Adam\n  * Adamax\n  * Nadam\n  * Adadelta \n\n### Loss Function\n\nThis option gives user number of choices for loss function for their network.Click on ```sparse_categorical_crossentropy``` to see options and select one of them.\n\nOptions are:\n\n  * sparse_categorical_crossentropy\n  * binary_crossentropy \n  * categorical_crossentropy \n  * mean_squared_error \n  * mean_absolute_error \n  * huber_loss\n  * cosine_proximity\n  * poisson\n\n### Add Layer\n\nClicking on this button will add new Layer in Layer Control.\n\nBefore Adding Layer:\n![lc before](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/before_add_layer.PNG)\n\nAfter Adding Layer:\n![lc after](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/after_add_layer.PNG)\n\n### Remove Layer\n\nClicking on this button will add remove Layer from Layer Control.Note that minimum of 2 Layer is required so it can only remove layer  when number of layers are \u003e=3.\n\nBefore Removing Layer:\n![lc before](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/after_add_layer.PNG)\n\nAfter Removing Layer:\n![lc after](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/before_add_layer.PNG)\n\n### Weights Intialization\n\nThis option gives user number of choices for weights intialization (kernal intialization) for their network.Click on ```he_normal``` to see options and select one of them.\n\nNote that picked intializer will be used for the whole network.\n\nOptions are:\n\n  * he_normal\n  * he_uniform\n  * lecun_normal\n  * lecun_uniform\n  * glorot_normal\n  * glorot_uniform\n  * RandomNormal\n  * RandomUniform\n  * Orthogonal\n\n### Learning rate\n\nInput your choice of learning rate here.Generally it is between ```0``` and```1```.Here,default value is ```0.01```.\n### Epochs\n\nButtons ```+``` and  ```-``` can be used for increasing or decreasing number of epochs.Note that minimum value is 1 however there is no limit on maximum value.\n\n### Start\n\n![start](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/play.png)\n\nClicking this button will first check for errors (Error will be reported as popup if any) in selected options and than it will start training.\n\n### Reset\n\n![reset](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/reset.png)\n\nClicking this button will reset app to it's initial state(i.e. mainscreen shown in Features).\n\n### Batch Normalization\n\nChecking this will add **BatchNormalize** layer after each layer in your network except ouput layer.\n\n### Use GPU\n\nIf you check this app will try it's best to utilize GPU for training.\n\nTensorflow Version | Effects of this option\n------------ | -------------\nTensorflow \u003c2.1.0 (CPU) | Checking or Unchecking will not make any difference\nTensorflow-gpu \u003c=2.0.0 | Checking will use GPU (won't work if  CUDA is not configured) unchecking will use CPU.\nTensorflow == 2.1.0 (Which supports both CPU and GPU)  | Checking will use GPU (will work on CPU if CUDA is not configured) unchecking will use CPU.\n\n### Shuffle Data\n\nChecking this will shuffle training data before training.\n\n### Training Stats\n\nAfter training if finished all stats (like accuracy,loss etc..) will be shown here.\n\nNote that it only shows following metrics:\n\n  * Loss \n  * accuracy\n  * mse\n  * val_loss (if validation split \u003e0)\n  * val_accuracy (if validation split \u003e0)\n  * val_mse (if validation split \u003e0)\n\n### Layer Control\n\n![lc before](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/after_add_layer.PNG)\n\nYou can give number of neurons and activation for each layer in layer control.Minimum number of neurons is ```1``` however there is no limit on maximum value.\n\nClick on ```sigmoid``` to select other options for activation.\n\nOptions are:\n\n  * sigmoid\n  * relu\n  * elu\n  * selu\n  * tanh\n  * softmax\n  * linear       \n\nNote that You can't select activation for first layer.\n\n### Network Drawing\n\nNetwork Drawing will be shown in middle of application.Default Drawing is ``` Input -\u003e Ouput ``` as shown in main screen.Drawing will be updated after training (given training is successful).\n\nNote that it is not practical to include all neurons in drawing so for performance reasons number of neurons in drawing are limited to 13.\n\n### Save Current Model\n\nAfter Training you can save your model by clicking this.It will give dynamic name to your file and save it with ```.h5``` extension.Popup is shown upon successful saving.\n\n### Visualize Training\n\nAfter training you can see graphical history of training by clicking this.It will open new window containing image.\n\n![vis_train](https://github.com/imdeep2905/Neural-Network-Sandbox/blob/master/Frontend/imgs/vis_train.PNG)\n\n### Browse Training Data \n\nYou can select any training file with ```.csv``` extension.Before selecting note that app only supports single label in training data.\n\n### Load Exsisting Model\n\nYou can load any file (Even model which is trained outside this application) with  ```.h5``` extension.Layer control and Network Drawing will be set according to loaded model.\n\nNote that as app only supports simple feed forward networks, loading file of other networks may not give appropiate output.\n\n### Testing Stats\n\nAfter training and testing (if testing data is selected) you can click this button to view testing statistics.Popup will be shown with this statistics.\n\nThis Contains:\n  * loss\n  * accuracy\n  * mse\n  \n### Browse Testing Data \n\nYou can select any testing file with ```.csv``` extension.Before selecting note that app only supports single label in testing data.\n\n### Report a Bug\n\nClicking this button will simply redirect you to issues page of github repo.You can raise new issue and we'll try our best to fix it.\n\n### Label at Start\n\nChecking it tells app that label is in first column of training/testing file.\nUnChecking it tells app that label is in last column of training/testing file.\n\n### Smart Preprocess Data\n\n**This is an experimental feature**.\n\nChecking this will preprocess selected training/testing before starting.It does mainly following:\n\n  * Remove Unnecessary columns(Based on number of unique values).\n  * Fill Missing data with median.\n  * Replace text data with number representation.\n\n### Validation Split\n\nSlide it to select percentage of validation data from training data.```0%``` means no validation.\n\n# Known Issues\nIssue | Fixed\n------------ | -------------\nSometimes Visualize training doesn't work | No\n\n# Acknowledgment\n\nWe would like to thank Dr. Devang Pandya, Adani Institute of Infrastructure Engineering for his continuous guidance and support.\n# Credits\n\nContributors :computer: : \n   * [Deep Raval](https://github.com/imdeep2905)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdeep2905%2Fneural-network-sandbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimdeep2905%2Fneural-network-sandbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimdeep2905%2Fneural-network-sandbox/lists"}