From f8e514864fc27db6f6a106e812e87fdab81ec517 Mon Sep 17 00:00:00 2001 From: Aydin <108932477+Aydinhamedi@users.noreply.github.com> Date: Sat, 23 Mar 2024 15:33:00 +0330 Subject: [PATCH] modified: BETA_E_Model_T&T.ipynb modified: README.md modified: Utils/Timeout_input.py --- BETA_E_Model_T&T.ipynb | 531 ++++++++++++++++++++++++++++++++++++++++- README.md | 10 +- Utils/Timeout_input.py | 42 +++- 3 files changed, 564 insertions(+), 19 deletions(-) diff --git a/BETA_E_Model_T&T.ipynb b/BETA_E_Model_T&T.ipynb index 7595901..d408aea 100644 --- a/BETA_E_Model_T&T.ipynb +++ b/BETA_E_Model_T&T.ipynb @@ -3689,7 +3689,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -3701,14 +3701,14 @@ "Freezing 0 layers in the base model...\n", "Percentage of the base model that is frozen: 0.00%\n", "Total model layers: 814\n", - "Model: \"model\"\n", + "Model: \"model_3\"\n", "_____________________________________________________________________________________________________________\n", " Layer (type) Output Shape Param # Connected to Trainable \n", "=============================================================================================================\n", - " input_1 (InputLayer) [(None, 224, 224, 3 0 [] Y \n", + " input_4 (InputLayer) [(None, 224, 224, 3 0 [] Y \n", " )] \n", " \n", - " stem_conv (Conv2D) (None, 112, 112, 64 1728 ['input_1[0][0]'] Y \n", + " stem_conv (Conv2D) (None, 112, 112, 64 1728 ['input_4[0][0]'] Y \n", " ) \n", " \n", " stem_bn (BatchNormalization) (None, 112, 112, 64 256 ['stem_conv[0][0]'] Y \n", @@ -5856,7 +5856,7 @@ "def Eff_B7_NS(freeze_layers):\n", " base_model = KENB7(\n", " input_shape=(img_res[0], img_res[1], img_res[2]),\n", - " weights=None,\n", + " weights=\"noisy-student\",\n", " include_top=False,\n", " )\n", " print(\"Total layers in the base model: \", len(base_model.layers))\n", @@ -5894,7 +5894,7 @@ " model_EfficientNetB7_NS = Model(inputs=base_model.input, outputs=predictions)\n", " print(\"Total model layers: \", len(model_EfficientNetB7_NS.layers))\n", " # OPT/compile\n", - " opt = SGD(momentum=0.9, nesterov=True) # noqa: F405\n", + " opt = SGD(momentum=0.8, learning_rate=0.064, nesterov=False) # noqa: F405\n", " # opt = Nadam() # noqa: F405\n", " # opt = Adamax() # noqa: F405\n", " # opt = Adam(amsgrad=True) # noqa: F405\n", @@ -8277,7 +8277,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2023-12-28T07:04:23.573633300Z", @@ -8289,11 +8289,13 @@ "name": "stdout", "output_type": "stream", "text": [ + "\n", + "Timeout!\n", "Training the model...\n", "\u001b[0;33m\n", "Setup Verbose:\u001b[0m\n", - "\u001b[0m\u001b[0m\u001b[0;36mExperiment name: \u001b[0m\u001b[0;32m[SGD-M-99-FNT_y2024_m03_d23-h12_m15_s27]\u001b[0m\u001b[0;36m...\u001b[0m\n", - "\u001b[0m\u001b[0m\u001b[0;36mSetting TensorBoard Log dir to \u001b[0m\u001b[0;32m[logs/fit/SGD-M-99-FNT_y2024_m03_d23-h12_m15_s27]\u001b[0m\u001b[0;36m...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mExperiment name: \u001b[0m\u001b[0;32m[DEF_y2024_m03_d23-h13_m46_s36]\u001b[0m\u001b[0;36m...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSetting TensorBoard Log dir to \u001b[0m\u001b[0;32m[logs/fit/DEF_y2024_m03_d23-h13_m46_s36]\u001b[0m\u001b[0;36m...\u001b[0m\n", "\u001b[0m\u001b[0m\u001b[0;36mUse_extended_tensorboard \u001b[0m\u001b[0;32m[False]\u001b[0m\u001b[0;36m.\u001b[0m\n", "\u001b[0m\u001b[0m\u001b[0;36mDebug_OUTPUT_DPS \u001b[0m\u001b[0;32m[True]\u001b[0m\u001b[0;36m.\u001b[0m\n", "\u001b[0m\u001b[0m\u001b[0;36mUse_OneCycleLr \u001b[0m\u001b[0;32m[False]\u001b[0m\u001b[0;36m.\u001b[0m\n", @@ -8304,7 +8306,514 @@ "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m1\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 0)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", "\u001b[0;33mPreparing train data...\u001b[0m\n", - "\u001b[0;33m- Fitting ImageDataGenerator...\u001b[0m\n" + "\u001b[0;33m- Loading fitted ImageDataGenerator...\u001b[0m\n", + "\u001b[0;33m- ImageDataGenerator fit done.\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;31m- Debug DP Sample dir: \u001b[0m\u001b[0;32mSamples/TSR_SUB_400_y2024_m03_d23-h13_m47_s34\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 1/6\n", + "256/256 [==============================] - 81s 235ms/step - loss: 2.9858 - accuracy: 0.5081 - val_loss: 2.1177 - val_accuracy: 0.6250 - lr: 0.0640\n", + "Epoch 2/6\n", + "256/256 [==============================] - 51s 199ms/step - loss: 1.7326 - accuracy: 0.5093 - val_loss: 1.1775 - val_accuracy: 0.6250 - lr: 0.0640\n", + "Epoch 3/6\n", + "256/256 [==============================] - 50s 196ms/step - loss: 1.1822 - accuracy: 0.5784 - val_loss: 0.9842 - val_accuracy: 0.5978 - lr: 0.0640\n", + "Epoch 4/6\n", + "256/256 [==============================] - 51s 199ms/step - loss: 0.8887 - accuracy: 0.6741 - val_loss: 0.6545 - val_accuracy: 0.7901 - lr: 0.0640\n", + "Epoch 5/6\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.6550 - accuracy: 0.7856 - val_loss: 0.4549 - val_accuracy: 0.8974 - lr: 0.0640\n", + "Epoch 6/6\n", + "256/256 [==============================] - 51s 197ms/step - loss: 0.5304 - accuracy: 0.8213 - val_loss: 0.3806 - val_accuracy: 0.8974 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-005-0.8974.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.8958\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.4549\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model accuracy from 0.000000 to 0.895833. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model loss from inf to 0.45491090. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.23GB, used: 18.77GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m412.59 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m336.55 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m76.04 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [1] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m2\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 6)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 7/12\n", + "256/256 [==============================] - 60s 203ms/step - loss: 0.5438 - accuracy: 0.8181 - val_loss: 0.3420 - val_accuracy: 0.8990 - lr: 0.0640\n", + "Epoch 8/12\n", + "256/256 [==============================] - 51s 197ms/step - loss: 0.5024 - accuracy: 0.8252 - val_loss: 0.4042 - val_accuracy: 0.8462 - lr: 0.0640\n", + "Epoch 9/12\n", + "256/256 [==============================] - 51s 198ms/step - loss: 0.4147 - accuracy: 0.8547 - val_loss: 0.3584 - val_accuracy: 0.8670 - lr: 0.0640\n", + "Epoch 10/12\n", + "256/256 [==============================] - 50s 196ms/step - loss: 0.3724 - accuracy: 0.8721 - val_loss: 0.3563 - val_accuracy: 0.8862 - lr: 0.0640\n", + "Epoch 11/12\n", + "256/256 [==============================] - 50s 196ms/step - loss: 0.3519 - accuracy: 0.8799 - val_loss: 0.3252 - val_accuracy: 0.8766 - lr: 0.0640\n", + "Epoch 12/12\n", + "256/256 [==============================] - 51s 199ms/step - loss: 0.3243 - accuracy: 0.8765 - val_loss: 0.3005 - val_accuracy: 0.9054 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-012-0.9054.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9054\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.3005\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model accuracy from 0.895833 to 0.905449. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model loss from 0.45491090 to 0.30049121. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.23GB, used: 18.77GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m379.12 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m313.96 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m65.16 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [2] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m3\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 12)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 13/18\n", + "256/256 [==============================] - 66s 227ms/step - loss: 0.3807 - accuracy: 0.8662 - val_loss: 0.3777 - val_accuracy: 0.9071 - lr: 0.0640\n", + "Epoch 14/18\n", + "256/256 [==============================] - 53s 206ms/step - loss: 0.3244 - accuracy: 0.8884 - val_loss: 0.4945 - val_accuracy: 0.7644 - lr: 0.0640\n", + "Epoch 15/18\n", + "256/256 [==============================] - 55s 213ms/step - loss: 0.2953 - accuracy: 0.8997 - val_loss: 0.2362 - val_accuracy: 0.9038 - lr: 0.0640\n", + "Epoch 16/18\n", + "256/256 [==============================] - 54s 209ms/step - loss: 0.2983 - accuracy: 0.9031 - val_loss: 0.2685 - val_accuracy: 0.9135 - lr: 0.0640\n", + "Epoch 17/18\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.2650 - accuracy: 0.9150 - val_loss: 0.2716 - val_accuracy: 0.8990 - lr: 0.0640\n", + "Epoch 18/18\n", + "256/256 [==============================] - 58s 225ms/step - loss: 0.2522 - accuracy: 0.9197 - val_loss: 0.2606 - val_accuracy: 0.9167 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-018-0.9167.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9167\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2607\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model accuracy from 0.905449 to 0.916667. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model loss from 0.30049121 to 0.26070750. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.14GB, used: 18.86GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m404.93 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m336.99 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m67.94 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [3] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m4\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 18)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 19/24\n", + "256/256 [==============================] - 60s 204ms/step - loss: 0.3258 - accuracy: 0.8911 - val_loss: 0.2723 - val_accuracy: 0.9183 - lr: 0.0640\n", + "Epoch 20/24\n", + "256/256 [==============================] - 53s 207ms/step - loss: 0.2778 - accuracy: 0.9050 - val_loss: 0.2882 - val_accuracy: 0.8766 - lr: 0.0640\n", + "Epoch 21/24\n", + "256/256 [==============================] - 50s 196ms/step - loss: 0.2569 - accuracy: 0.9197 - val_loss: 0.5523 - val_accuracy: 0.8702 - lr: 0.0640\n", + "Epoch 22/24\n", + "256/256 [==============================] - 55s 215ms/step - loss: 0.2248 - accuracy: 0.9277 - val_loss: 0.2513 - val_accuracy: 0.8974 - lr: 0.0640\n", + "Epoch 23/24\n", + "256/256 [==============================] - 58s 226ms/step - loss: 0.2084 - accuracy: 0.9363 - val_loss: 0.2992 - val_accuracy: 0.9199 - lr: 0.0640\n", + "Epoch 24/24\n", + "256/256 [==============================] - 57s 220ms/step - loss: 0.1905 - accuracy: 0.9470 - val_loss: 0.5576 - val_accuracy: 0.8542 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-023-0.9199.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9199\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2992\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model accuracy from 0.916667 to 0.919872. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.2607074976. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.22GB, used: 18.78GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m402.98 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m333.84 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m69.13 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [4] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m5\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 24)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 25/30\n", + "256/256 [==============================] - 61s 208ms/step - loss: 0.3078 - accuracy: 0.9006 - val_loss: 0.4600 - val_accuracy: 0.7981 - lr: 0.0640\n", + "Epoch 26/30\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.2669 - accuracy: 0.9116 - val_loss: 0.2778 - val_accuracy: 0.9295 - lr: 0.0640\n", + "Epoch 27/30\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.2272 - accuracy: 0.9277 - val_loss: 0.3746 - val_accuracy: 0.9359 - lr: 0.0640\n", + "Epoch 28/30\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.2190 - accuracy: 0.9314 - val_loss: 0.2832 - val_accuracy: 0.9054 - lr: 0.0640\n", + "Epoch 29/30\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.1725 - accuracy: 0.9404 - val_loss: 0.8287 - val_accuracy: 0.8093 - lr: 0.0640\n", + "Epoch 30/30\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1510 - accuracy: 0.9485 - val_loss: 0.2864 - val_accuracy: 0.9359 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-027-0.9359.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9359\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.3747\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model accuracy from 0.919872 to 0.935897. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.2607074976. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m399.28 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m321.32 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m77.96 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [5] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m6\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 30)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 31/36\n", + "256/256 [==============================] - 62s 211ms/step - loss: 0.2993 - accuracy: 0.9011 - val_loss: 0.3617 - val_accuracy: 0.8782 - lr: 0.0640\n", + "Epoch 32/36\n", + "256/256 [==============================] - 53s 205ms/step - loss: 0.2547 - accuracy: 0.9109 - val_loss: 0.2408 - val_accuracy: 0.9359 - lr: 0.0640\n", + "Epoch 33/36\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.2335 - accuracy: 0.9202 - val_loss: 0.4337 - val_accuracy: 0.8990 - lr: 0.0640\n", + "Epoch 34/36\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.2166 - accuracy: 0.9321 - val_loss: 0.4315 - val_accuracy: 0.8894 - lr: 0.0640\n", + "Epoch 35/36\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1776 - accuracy: 0.9456 - val_loss: 0.2387 - val_accuracy: 0.9119 - lr: 0.0640\n", + "Epoch 36/36\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.1587 - accuracy: 0.9507 - val_loss: 0.6190 - val_accuracy: 0.8349 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-032-0.9359.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9359\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2408\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9358974099. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model loss from 0.26070750 to 0.24075142. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m395.10 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m324.87 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m70.23 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [6] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m7\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 36)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 37/42\n", + "256/256 [==============================] - 62s 206ms/step - loss: 0.2653 - accuracy: 0.9131 - val_loss: 0.4365 - val_accuracy: 0.8333 - lr: 0.0640\n", + "Epoch 38/42\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.2277 - accuracy: 0.9280 - val_loss: 0.4439 - val_accuracy: 0.8750 - lr: 0.0640\n", + "Epoch 39/42\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.2076 - accuracy: 0.9360 - val_loss: 0.2402 - val_accuracy: 0.9295 - lr: 0.0640\n", + "Epoch 40/42\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1901 - accuracy: 0.9407 - val_loss: 0.1974 - val_accuracy: 0.9311 - lr: 0.0640\n", + "Epoch 41/42\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.1654 - accuracy: 0.9524 - val_loss: 0.2962 - val_accuracy: 0.9006 - lr: 0.0640\n", + "Epoch 42/42\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.1218 - accuracy: 0.9646 - val_loss: 0.4777 - val_accuracy: 0.8974 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-040-0.9311.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9311\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.1974\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9358974099. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model loss from 0.24075142 to 0.19736803. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m392.32 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m320.93 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m71.38 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [7] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m8\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 42)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 43/48\n", + "256/256 [==============================] - 61s 207ms/step - loss: 0.2605 - accuracy: 0.9133 - val_loss: 0.2301 - val_accuracy: 0.9407 - lr: 0.0640\n", + "Epoch 44/48\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1964 - accuracy: 0.9329 - val_loss: 0.2687 - val_accuracy: 0.9151 - lr: 0.0640\n", + "Epoch 45/48\n", + "256/256 [==============================] - 51s 199ms/step - loss: 0.1829 - accuracy: 0.9429 - val_loss: 0.1906 - val_accuracy: 0.9407 - lr: 0.0640\n", + "Epoch 46/48\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.1657 - accuracy: 0.9509 - val_loss: 0.2402 - val_accuracy: 0.9375 - lr: 0.0640\n", + "Epoch 47/48\n", + "256/256 [==============================] - 51s 199ms/step - loss: 0.1468 - accuracy: 0.9592 - val_loss: 0.3007 - val_accuracy: 0.9263 - lr: 0.0640\n", + "Epoch 48/48\n", + "256/256 [==============================] - 51s 200ms/step - loss: 0.1320 - accuracy: 0.9617 - val_loss: 0.2495 - val_accuracy: 0.9103 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-043-0.9407.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9407\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2301\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model accuracy from 0.935897 to 0.940705. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.1973680258. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m392.01 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m318.58 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m73.43 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [8] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m9\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 48)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 49/54\n", + "256/256 [==============================] - 61s 208ms/step - loss: 0.2447 - accuracy: 0.9192 - val_loss: 0.2227 - val_accuracy: 0.9391 - lr: 0.0640\n", + "Epoch 50/54\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.2026 - accuracy: 0.9404 - val_loss: 0.2338 - val_accuracy: 0.9167 - lr: 0.0640\n", + "Epoch 51/54\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1750 - accuracy: 0.9487 - val_loss: 0.2935 - val_accuracy: 0.9119 - lr: 0.0640\n", + "Epoch 52/54\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.1598 - accuracy: 0.9521 - val_loss: 0.2082 - val_accuracy: 0.9423 - lr: 0.0640\n", + "Epoch 53/54\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1561 - accuracy: 0.9529 - val_loss: 0.2154 - val_accuracy: 0.9311 - lr: 0.0640\n", + "Epoch 54/54\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1345 - accuracy: 0.9570 - val_loss: 0.2160 - val_accuracy: 0.9247 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-052-0.9423.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9423\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2082\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model accuracy from 0.940705 to 0.942308. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.1973680258. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m394.70 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m321.25 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m73.45 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [9] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m10\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 54)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 55/60\n", + "256/256 [==============================] - 62s 212ms/step - loss: 0.2613 - accuracy: 0.9119 - val_loss: 0.2445 - val_accuracy: 0.9151 - lr: 0.0640\n", + "Epoch 56/60\n", + "256/256 [==============================] - 53s 205ms/step - loss: 0.2311 - accuracy: 0.9248 - val_loss: 0.2234 - val_accuracy: 0.9343 - lr: 0.0640\n", + "Epoch 57/60\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1716 - accuracy: 0.9456 - val_loss: 0.2870 - val_accuracy: 0.9231 - lr: 0.0640\n", + "Epoch 58/60\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1398 - accuracy: 0.9578 - val_loss: 0.2166 - val_accuracy: 0.9247 - lr: 0.0640\n", + "Epoch 59/60\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.1154 - accuracy: 0.9663 - val_loss: 0.3571 - val_accuracy: 0.8990 - lr: 0.0640\n", + "Epoch 60/60\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1308 - accuracy: 0.9631 - val_loss: 0.3683 - val_accuracy: 0.9087 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-056-0.9343.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9343\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2234\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9423077106. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.1973680258. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m397.13 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m324.34 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m72.79 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [10] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m11\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 60)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 61/66\n", + "256/256 [==============================] - 61s 208ms/step - loss: 0.2457 - accuracy: 0.9146 - val_loss: 0.2745 - val_accuracy: 0.8974 - lr: 0.0640\n", + "Epoch 62/66\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.2037 - accuracy: 0.9331 - val_loss: 0.2338 - val_accuracy: 0.9343 - lr: 0.0640\n", + "Epoch 63/66\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1665 - accuracy: 0.9502 - val_loss: 0.2418 - val_accuracy: 0.9311 - lr: 0.0640\n", + "Epoch 64/66\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1493 - accuracy: 0.9563 - val_loss: 0.2409 - val_accuracy: 0.9279 - lr: 0.0640\n", + "Epoch 65/66\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1282 - accuracy: 0.9609 - val_loss: 0.9874 - val_accuracy: 0.8045 - lr: 0.0640\n", + "Epoch 66/66\n", + "256/256 [==============================] - 53s 204ms/step - loss: 0.1513 - accuracy: 0.9546 - val_loss: 0.2484 - val_accuracy: 0.9391 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-066-0.9391.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9375\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2484\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9423077106. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.1973680258. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m395.85 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m322.17 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m73.68 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [11] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m12\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 66)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 67/72\n", + "256/256 [==============================] - 62s 209ms/step - loss: 0.2527 - accuracy: 0.9158 - val_loss: 0.2730 - val_accuracy: 0.9087 - lr: 0.0640\n", + "Epoch 68/72\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1858 - accuracy: 0.9395 - val_loss: 0.4641 - val_accuracy: 0.8462 - lr: 0.0640\n", + "Epoch 69/72\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1762 - accuracy: 0.9443 - val_loss: 0.2524 - val_accuracy: 0.8942 - lr: 0.0640\n", + "Epoch 70/72\n", + "256/256 [==============================] - 53s 205ms/step - loss: 0.1377 - accuracy: 0.9585 - val_loss: 0.2104 - val_accuracy: 0.9215 - lr: 0.0640\n", + "Epoch 71/72\n", + "256/256 [==============================] - 53s 205ms/step - loss: 0.1173 - accuracy: 0.9634 - val_loss: 0.3567 - val_accuracy: 0.9295 - lr: 0.0640\n", + "Epoch 72/72\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.1202 - accuracy: 0.9622 - val_loss: 0.2677 - val_accuracy: 0.9311 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-072-0.9311.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9311\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.2677\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9423077106. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.1973680258. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.23GB, used: 18.77GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m399.30 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m323.71 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m75.60 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [12] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m13\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 72)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 73/78\n", + "256/256 [==============================] - 62s 210ms/step - loss: 0.2385 - accuracy: 0.9224 - val_loss: 0.3188 - val_accuracy: 0.8750 - lr: 0.0640\n", + "Epoch 74/78\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1839 - accuracy: 0.9421 - val_loss: 0.1922 - val_accuracy: 0.9327 - lr: 0.0640\n", + "Epoch 75/78\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1517 - accuracy: 0.9534 - val_loss: 0.2217 - val_accuracy: 0.9295 - lr: 0.0640\n", + "Epoch 76/78\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1299 - accuracy: 0.9590 - val_loss: 0.5367 - val_accuracy: 0.8862 - lr: 0.0640\n", + "Epoch 77/78\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1133 - accuracy: 0.9670 - val_loss: 0.6080 - val_accuracy: 0.8654 - lr: 0.0640\n", + "Epoch 78/78\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.0963 - accuracy: 0.9700 - val_loss: 0.4842 - val_accuracy: 0.8942 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-074-0.9327.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9327\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.1922\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9423077106. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32mImproved model loss from 0.19736803 to 0.19220021. \u001b[0m\u001b[0;96mSaving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;36mSaving full model H5 format...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.23GB, used: 18.77GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m401.96 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m323.49 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m78.47 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [13] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m14\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 78)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 79/84\n", + "256/256 [==============================] - 71s 237ms/step - loss: 0.2347 - accuracy: 0.9221 - val_loss: 0.2243 - val_accuracy: 0.9135 - lr: 0.0640\n", + "Epoch 80/84\n", + "256/256 [==============================] - 53s 205ms/step - loss: 0.1974 - accuracy: 0.9338 - val_loss: 0.2903 - val_accuracy: 0.9183 - lr: 0.0640\n", + "Epoch 81/84\n", + "256/256 [==============================] - 53s 205ms/step - loss: 0.1553 - accuracy: 0.9517 - val_loss: 0.1983 - val_accuracy: 0.9343 - lr: 0.0640\n", + "Epoch 82/84\n", + "256/256 [==============================] - 52s 201ms/step - loss: 0.1304 - accuracy: 0.9631 - val_loss: 0.2720 - val_accuracy: 0.9247 - lr: 0.0640\n", + "Epoch 83/84\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1181 - accuracy: 0.9668 - val_loss: 0.4578 - val_accuracy: 0.8862 - lr: 0.0640\n", + "Epoch 84/84\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1060 - accuracy: 0.9663 - val_loss: 0.3141 - val_accuracy: 0.9247 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-081-0.9343.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9343\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.1983\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9423077106. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.1922002137. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.21GB, used: 18.79GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m415.24 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m332.88 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m82.36 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [14] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m15\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 84)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 85/90\n", + "256/256 [==============================] - 63s 212ms/step - loss: 0.2227 - accuracy: 0.9277 - val_loss: 0.3261 - val_accuracy: 0.9279 - lr: 0.0640\n", + "Epoch 86/90\n", + "256/256 [==============================] - 52s 204ms/step - loss: 0.1998 - accuracy: 0.9399 - val_loss: 0.2481 - val_accuracy: 0.9183 - lr: 0.0640\n", + "Epoch 87/90\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1710 - accuracy: 0.9443 - val_loss: 0.2485 - val_accuracy: 0.9231 - lr: 0.0640\n", + "Epoch 88/90\n", + "256/256 [==============================] - 52s 203ms/step - loss: 0.1543 - accuracy: 0.9509 - val_loss: 0.9982 - val_accuracy: 0.7997 - lr: 0.0640\n", + "Epoch 89/90\n", + "256/256 [==============================] - 52s 202ms/step - loss: 0.1082 - accuracy: 0.9700 - val_loss: 0.2906 - val_accuracy: 0.8926 - lr: 0.0640\n", + "Epoch 90/90\n", + "256/256 [==============================] - 53s 205ms/step - loss: 0.0925 - accuracy: 0.9729 - val_loss: 0.4731 - val_accuracy: 0.9103 - lr: 0.0640\n", + "\u001b[0;32mSubset training done.\u001b[0m\n", + "\u001b[0;33mLoading the best weights...\u001b[0m\n", + "\u001b[0;33mLoading weights from file cache\\model_SUB_checkpoint-085-0.9279.h5...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test acc: \u001b[0m\u001b[0;32m0.9279\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mModel Test loss: \u001b[0m\u001b[0;32m0.3261\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel accuracy did not improve from 0.9423077106. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;91mModel loss did not improve from 0.1922002137. Not saving model.\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;32m(GPU-MEM)\u001b[0m\u001b[0;36m----[free: 5.18GB, used: 18.82GB, total, 24.00GB]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(FULL): \u001b[0m\u001b[0;32m406.52 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(SUBo): \u001b[0m\u001b[0;32m325.19 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTime taken for epoch(OTHERo): \u001b[0m\u001b[0;32m81.33 \u001b[0m\u001b[0;36msec\u001b[0m\n", + "\u001b[0;36m<---------------------------------------|Epoch [15] END|--------------------------------------->\u001b[0m\n", + "\u001b[0m\n", + "\u001b[0m\u001b[0mEpoch: \u001b[0m\u001b[0;36m16\u001b[0m\u001b[0m/\u001b[0m\u001b[0;32m489 (TSEC: 90)\u001b[0m\u001b[0;34m | \u001b[0m\u001b[0;32m[Stage 1]\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mTaking a subset of \u001b[0m\u001b[0;32m[|4096|AdvSubset:True]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;33mPreparing train data...\u001b[0m\n", + "\u001b[0;33m- Augmenting Image Data...\u001b[0m\n", + "\u001b[0;33m- Normalizing Image Data...\u001b[0m\n", + "\u001b[0m\u001b[0m\u001b[0;33mSetting training subset epoch.c to \u001b[0m\u001b[0;32m[6]\u001b[0m\u001b[0;33m...\u001b[0m\n", + "\u001b[0;32mTraining on subset...\u001b[0m\n", + "Epoch 91/96\n", + "256/256 [==============================] - 65s 222ms/step - loss: 0.2122 - accuracy: 0.9287 - val_loss: 0.2082 - val_accuracy: 0.9327 - lr: 0.0640\n", + "Epoch 92/96\n", + "256/256 [==============================] - 58s 225ms/step - loss: 0.1735 - accuracy: 0.9497 - val_loss: 0.1936 - val_accuracy: 0.9327 - lr: 0.0640\n", + "Epoch 93/96\n", + "256/256 [==============================] - 58s 225ms/step - loss: 0.1270 - accuracy: 0.9600 - val_loss: 0.2495 - val_accuracy: 0.9183 - lr: 0.0640\n", + "Epoch 94/96\n", + "192/256 [=====================>........] - ETA: 11s - loss: 0.0993 - accuracy: 0.9733" ] } ], @@ -8324,7 +8833,7 @@ "subset_size = 4096 # subset_size: Size of each training subset. Common values: 512, 1024, 2048, 3200, 4096, 5846, 8192.\n", "Conf_batch_size_REV2 = 16 # Conf_batch_size_REV2: Batch size.\n", "RES_Train = False # RES_Train: Resume training if True.\n", - "MAX_LR = 0.001 # MAX_LR: Maximum learning rate.\n", + "MAX_LR = 0.064 # MAX_LR: Maximum learning rate.\n", "DEC_LR = 0.00005 # DEC_LR: Learning rate decay.\n", "MIN_LR = 0.0005 # MIN_LR: Minimum learning rate.\n", "RES_LR = 0.006 # RES_LR: Resuming learning rate.\n", diff --git a/README.md b/README.md index 3409512..d95b779 100644 --- a/README.md +++ b/README.md @@ -72,11 +72,11 @@ The model is a Convolutional Neural Network (CNN) trained on a dataset of 23681 This combined dataset provides a comprehensive set of images for training the model.\ ### Model list: -| Model | Base Model | Params | acc | Status | -|----------|-----------------|--------|--------|--------| -| V6 | efficientnet-b7 | 65.4M | 97.12% | ✅ | -| V7 light | efficientnet-b4 | 29.7M | 97.12% | ✅ | -| V8 Super light | efficientnet-b0 | 4.8M | 96.47% | ✅ | +| Model | Base Model | Params | acc | Status | Grad Cam | +|----------|-----------------|--------|--------|--------|----------| +| V6 | efficientnet-b7 | 65.4M | 97.12% | ✅ | ✅ | +| V7 light | efficientnet-b4 | 29.7M | 97.12% | ✅ | ⚠️ | +| V8 Super light | efficientnet-b0 | 4.8M | 96.47% | ✅ | ❌ | ## Training Methods ### The AI model supports two distinct training approaches: diff --git a/Utils/Timeout_input.py b/Utils/Timeout_input.py index e3928d9..508bb2e 100644 --- a/Utils/Timeout_input.py +++ b/Utils/Timeout_input.py @@ -1,21 +1,57 @@ import threading +import queue +import keyboard class TimeoutInput: - def __init__(self, prompt, timeout, default_var): + """ + A class to get user input with a timeout. + + Attributes: + prompt (str): The prompt to display to the user. + timeout (int): The time in seconds to wait for user input. + default_var (str): The default value to return if the user does not provide input. + timeout_message (str): The message to display when the input times out. + """ + + def __init__(self, prompt, timeout, default_var, timeout_message="\nTimeout!"): self.prompt = prompt self.timeout = timeout self.default_var = default_var + self.timeout_message = timeout_message self.user_input = None + self.input_queue = queue.Queue() + self.stop_thread = False def get_input(self): - self.user_input = input(self.prompt) + """Get user input in a non-blocking manner.""" + print(self.prompt, end='', flush=True) + while not self.stop_thread: + if keyboard.is_pressed('\n'): + line = input() + if line: + self.input_queue.put(line.strip()) + return def run(self): + """ + Run the TimeoutInput. + + Starts a thread to get user input and waits for the specified timeout. + If the user does not provide input within the timeout, returns the default value. + """ thread = threading.Thread(target=self.get_input) thread.start() thread.join(self.timeout) if thread.is_alive(): - print("\nTimeout!") + self.stop_thread = True + print(self.timeout_message) return {"user_input": self.default_var, "input_time": self.timeout, "default_var_used": True} else: + self.user_input = self.input_queue.get() return {"user_input": self.user_input, "input_time": self.timeout, "default_var_used": False} + +# Example usage +if __name__ == "__main__": + timeout_input = TimeoutInput("Enter something: ", 5, "default", "\nTimeout from TimeoutInput!") + result = timeout_input.run() + print(result)