{"id":14970736,"url":"https://github.com/rishav-hub/gnettrainer-package","last_synced_at":"2026-03-01T11:05:04.375Z","repository":{"id":57435107,"uuid":"410346235","full_name":"Rishav-hub/GNetTrainer-package","owner":"Rishav-hub","description":"GNetTrainer is a Deep Learning web application for training and predicting classification models which is written in Python 3. At the backend it uses Frameworks like Tensorflow 2.0 and Keras. You can train any classification model with any data using GNetTrainer without writing any line of code.","archived":false,"fork":false,"pushed_at":"2021-10-19T19:11:36.000Z","size":327,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T15:17:22.030Z","etag":null,"topics":["deep-learning","keras","machine-learning","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rishav-hub.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":"2021-09-25T18:04:00.000Z","updated_at":"2024-07-16T13:40:47.000Z","dependencies_parsed_at":"2022-09-13T14:50:34.060Z","dependency_job_id":null,"html_url":"https://github.com/Rishav-hub/GNetTrainer-package","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishav-hub%2FGNetTrainer-package","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishav-hub%2FGNetTrainer-package/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishav-hub%2FGNetTrainer-package/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rishav-hub%2FGNetTrainer-package/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rishav-hub","download_url":"https://codeload.github.com/Rishav-hub/GNetTrainer-package/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240221329,"owners_count":19767442,"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","keras","machine-learning","tensorflow"],"created_at":"2024-09-24T13:44:04.061Z","updated_at":"2026-03-01T11:05:04.337Z","avatar_url":"https://github.com/Rishav-hub.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GNetTrainer - Application for training and predicting classification models.\n\n![gnetimage](GNetTrainer/static/css/assets/img/GNet.png)\n\nOfficial Repository for GNetTrainer.\n\nYou can find the Package here- https://pypi.org/project/GNetTrainer/\n\n## Author\n\n- [Rishav Dash](https://www.linkedin.com/in/rishdash/)\n- Mail me at - 9930046@gmail.com\n- Github - https://github.com/Rishav-hub/\n\n## About GNetTrainer\n\nGNetTrainer is a Deep Learning web application for training and predicting classification models which is written in Python 3. At the backend it uses Frameworks like Tensorflow 2.0 and Keras. You can train any classification model with any data using GNetTrainer without writing any line of code.\n\n## Motivation\n\nThe main aim is to make something like Keras which is a high-level neural network library that runs on top of TensorFlow.\n\n## How Image Classification looks using Keras\n\nImport the required libraries\n\n```python\nfrom tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Conv2D, MaxPool2D, Flatten, Dense, Dropout\nfrom tensorflow.keras import optimizers\nfrom tensorflow.keras.applications.densenet import DenseNet169, preprocess_input, decode_predictions\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom PIL import Image\nimport cv2\n```\nDefine Paths\n```python\nROOT = 'H:\\\\Parsonal\\\\Coding Practice\\\\dogCat'\nos.chdir(ROOT)\nos.getcwd()\n```\n\nApply Augmentation\n```python\nfrom keras.preprocessing.image import ImageDataGenerator\ntrain_datagen = ImageDataGenerator(rescale = 1./255, \n                                   shear_range = 0.2,\n                                   zoom_range = 0.2,\n                                   horizontal_flip = True)\ntest_datagen = ImageDataGenerator(rescale = 1./255)\n\n\nTRAIN_DIR = '/content/flowers_filtered/train'\nTEST_DIR = '/content/flowers_filtered/val'\n\ntraining_set = train_datagen.flow_from_directory(TRAIN_DIR, \n                                                 target_size = (224, 224),\n                                                 batch_size = 32,\n                                                 class_mode = 'categorical'\n                                                 )\n\ntest_set = test_datagen.flow_from_directory(TEST_DIR, \n                                                 target_size = (224, 224),\n                                                 batch_size = 32,\n                                                 class_mode = 'categorical'\n                                                 )\n                                        \n```\nDownload the pretrained model\n\n```python\nmodel = DenseNet169(include_top=False, weights='imagenet', input_shape=(224, 224, 3))\n```\n\nFreeze layers\n```python   \nfrom keras.layers import BatchNormalization\nfor layer in model_base.layers:\n    if isinstance(layer, BatchNormalization):\n        layer.trainable = True\n    else:\n        layer.trainable = False\n```\n\nAdd Custom Layers\n\n```python\nfrom keras.layers import BatchNormalization\nfor layer in model_base.layers:\n    if isinstance(layer, BatchNormalization):\n        layer.trainable = True\n    else:\n        layer.trainable = False\n```\nAdding Custom Layers\n\n```python\n\nmodel = Sequential()\n\nmodel.add(tf.keras.layers.experimental.preprocessing.Resizing(224, \n                        224, interpolation=\"bilinear\")) \n\nmodel.add(model_base)\n\nmodel.add(Flatten())\nmodel.add(Dense(128, activation='elu'))\nmodel.add(Dropout(0.5))\nmodel.add(BatchNormalization())\nmodel.add(Dense(64, activation='elu'))\nmodel.add(Dropout(0.5))\nmodel.add(BatchNormalization())\n\nmodel.add(Dense(5, activation='softmax'))\n```\n\nDefining Optimizers, Loss Functions and Checkpoints\n```python\nOPTIMIZERS = optimizers.Adam()\n\ncheckpoints = tf.keras.callbacks.ModelCheckpoint(\n    'Densnet_model_best.hdf5',\n    monitor=\"val_loss\",\n    verbose=0,\n    save_best_only=False)\n\n\nlr_scheduler = tf.keras.callbacks.ReduceLROnPlateau(factor=0.5, patience=5) \n\nmodel.compile(optimizer= OPTIMIZERS, loss='categorical_crossentropy', metrics=['acc'])\n```\nDefining Path to Sabe the Model\n```python\nimport time\nimport os\n\ndef saveModel_path(model_dir=\"/content/drive/MyDrive/DLCVNLP/Computer_Vision/SAVED_MODELS\"):\n    os.makedirs(model_dir, exist_ok=True)\n    fileName = time.strftime(\"DensNetModel_%Y_%m_%d_%H_%M_%S_.h5\")    \n    model_path = os.path.join(model_dir, fileName)\n    print(f\"your model will be saved at the following location\\n{model_path}\")\n    return model_path\n```\n\nTensorboard Callback\n\n```python\nlog_dir = get_log_path()\ntb_cb = tf.keras.callbacks.TensorBoard(log_dir=log_dir)\n```\n\nCompiling Model\n```python\nmodel.compile(optimizer= OPTIMIZERS, loss='categorical_crossentropy', metrics=['acc'])\n```\nFit Model and Start Training\n\n```python\nmodel.fit(training_set, \n          steps_per_epoch= 3452 // 32, \n          epochs = 10,\n          validation_data = test_set,\n          validation_steps = 10,\n          callbacks= [checkpoints, lr_scheduler])\n```\n```python\nEpoch 1/10\n107/107 [==============================] - 112s 817ms/step - loss: 0.9201 - acc: 0.6760 - val_loss: 0.5511 - val_acc: 0.8313\nEpoch 2/10\n107/107 [==============================] - 80s 746ms/step - loss: 0.4234 - acc: 0.8681 - val_loss: 0.3199 - val_acc: 0.8906\nEpoch 3/10\n107/107 [==============================] - 80s 747ms/step - loss: 0.3139 - acc: 0.9056 - val_loss: 0.2199 - val_acc: 0.9281\nEpoch 4/10\n107/107 [==============================] - 80s 746ms/step - loss: 0.2258 - acc: 0.9330 - val_loss: 0.2631 - val_acc: 0.9062\nEpoch 5/10\n107/107 [==============================] - 80s 748ms/step - loss: 0.2054 - acc: 0.9336 - val_loss: 0.2168 - val_acc: 0.9219\nEpoch 6/10\n107/107 [==============================] - 80s 748ms/step - loss: 0.1848 - acc: 0.9424 - val_loss: 0.3004 - val_acc: 0.9094\nEpoch 7/10\n107/107 [==============================] - 81s 749ms/step - loss: 0.1687 - acc: 0.9515 - val_loss: 0.2496 - val_acc: 0.9312\n```\n\n## Image Classification using GNetTrainer\n\nCreate conda environment\n\n```python\nconda create -n GNetTrainer python=3.6\n```\n\nActivate conda environment\n\n```python\nconda activate GNetTrainer\n```\n\nNow all set to install the GNetTrainer Package \n```python\npip install GNetTrainer\n```\nTo start the Magic. In the terminal type\n```terminal\ngnet\n```\n\n## Demo\n\n### Home Page\n![home](GNetTrainer/static/css/assets/img/home.JPG)\n\n### Training Page\n\n![train1](GNetTrainer/static/css/assets/img/train1.JPG)\n\n![train2](GNetTrainer/static/css/assets/img/train2.JPG)\n\n### Prediction Page\n\n![Predict](GNetTrainer/static/css/assets/img/predict.JPG)\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishav-hub%2Fgnettrainer-package","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frishav-hub%2Fgnettrainer-package","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frishav-hub%2Fgnettrainer-package/lists"}