diff --git a/Workshop3/Molcal_workshop3_materials_property_prediction.ipynb b/Workshop3/Molcal_workshop3_materials_property_prediction.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..75035f45ffb9d84f18a91ebdfe0a0d08cf9d13bc
--- /dev/null
+++ b/Workshop3/Molcal_workshop3_materials_property_prediction.ipynb
@@ -0,0 +1,4416 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "provenance": []
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    },
+    "widgets": {
+      "application/vnd.jupyter.widget-state+json": {
+        "768ce9da55994740bd19d449bd0880db": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_744b1e9c9b304373b89b69c16527bba4",
+              "IPY_MODEL_c87376480c15453e80da77d7b6d2dc8d",
+              "IPY_MODEL_a2274b0c8e724eba88ed9831e0fe657f"
+            ],
+            "layout": "IPY_MODEL_1d9bf139827846faaca37ba65aa026fc"
+          }
+        },
+        "744b1e9c9b304373b89b69c16527bba4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_58e128907c7c4270a06475bcbe214344",
+            "placeholder": "​",
+            "style": "IPY_MODEL_82d62370c96f4a63a54da01f895e194a",
+            "value": "Sanity Checking DataLoader 0: 100%"
+          }
+        },
+        "c87376480c15453e80da77d7b6d2dc8d": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_6e9ad03ead644bddbd57452191ec933e",
+            "max": 2,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_d2667d11892849faafba2b44e977c0f7",
+            "value": 2
+          }
+        },
+        "a2274b0c8e724eba88ed9831e0fe657f": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_d965cf7c3f3a42189cbfc933911a0247",
+            "placeholder": "​",
+            "style": "IPY_MODEL_8ae912d0878b4a37956c43fb76cbd2e5",
+            "value": " 2/2 [00:00<00:00,  7.99it/s]"
+          }
+        },
+        "1d9bf139827846faaca37ba65aa026fc": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": "inline-flex",
+            "flex": null,
+            "flex_flow": "row wrap",
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": "100%"
+          }
+        },
+        "58e128907c7c4270a06475bcbe214344": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "82d62370c96f4a63a54da01f895e194a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "6e9ad03ead644bddbd57452191ec933e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": "2",
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "d2667d11892849faafba2b44e977c0f7": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "d965cf7c3f3a42189cbfc933911a0247": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "8ae912d0878b4a37956c43fb76cbd2e5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "d9d6aacd59ea4fcf9c0f4224b377c610": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_3d0ea474af934d64a2bbbdf0fdb32a02",
+              "IPY_MODEL_1bb71e54cd95404b846d9cbe5d551ca4",
+              "IPY_MODEL_c0cc07d05463491fa633ecbf841ee082"
+            ],
+            "layout": "IPY_MODEL_4433c936afb347899ef59e62b0fdd9a0"
+          }
+        },
+        "3d0ea474af934d64a2bbbdf0fdb32a02": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_8ff7258417a34807bf11740040d7e54c",
+            "placeholder": "​",
+            "style": "IPY_MODEL_c4f756d6ef224ddbaaf3a04ef0470078",
+            "value": "Epoch 4: 100%"
+          }
+        },
+        "1bb71e54cd95404b846d9cbe5d551ca4": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "success",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_4d3773a2ea1344838abd5d565cc14763",
+            "max": 141,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_106bdf51936f49efab22ca3fa22bb1a1",
+            "value": 141
+          }
+        },
+        "c0cc07d05463491fa633ecbf841ee082": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_cdb174433a1d43a3bd5274791234bf0d",
+            "placeholder": "​",
+            "style": "IPY_MODEL_ca8fcb63cae84124b3536af2434dfcf1",
+            "value": " 141/141 [00:37<00:00,  3.76it/s, v_num=0, val_Total_Loss=nan.0, val_MAE=nan.0, val_RMSE=nan.0, train_Total_Loss=nan.0, train_MAE=nan.0, train_RMSE=nan.0]"
+          }
+        },
+        "4433c936afb347899ef59e62b0fdd9a0": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": "inline-flex",
+            "flex": null,
+            "flex_flow": "row wrap",
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": "100%"
+          }
+        },
+        "8ff7258417a34807bf11740040d7e54c": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "c4f756d6ef224ddbaaf3a04ef0470078": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "4d3773a2ea1344838abd5d565cc14763": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": "2",
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "106bdf51936f49efab22ca3fa22bb1a1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "cdb174433a1d43a3bd5274791234bf0d": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "ca8fcb63cae84124b3536af2434dfcf1": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "52064c4ca7734cd9baea5a5d8e81a81a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_b74dfb101dd84c97893a6ba875cfcba0",
+              "IPY_MODEL_b5334febcbb248b5a1cce202a2de0b55",
+              "IPY_MODEL_622af7e0cf1d405aa6c178009b72558e"
+            ],
+            "layout": "IPY_MODEL_bfde609fc1054a24b8c3756613cbfa2e"
+          }
+        },
+        "b74dfb101dd84c97893a6ba875cfcba0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_3af2179787e2482c852c6db649181967",
+            "placeholder": "​",
+            "style": "IPY_MODEL_0d01dd8ca27944839e51976b2e63c557",
+            "value": "Validation DataLoader 0: 100%"
+          }
+        },
+        "b5334febcbb248b5a1cce202a2de0b55": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2fd6a0dc83f34fa695755bfdb12b62ae",
+            "max": 47,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_2091a3dd510943b79d027917a1617112",
+            "value": 47
+          }
+        },
+        "622af7e0cf1d405aa6c178009b72558e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_9bcd8d062d554d66b110c399d9c0b625",
+            "placeholder": "​",
+            "style": "IPY_MODEL_e53dd3ed466a49c4ad12cf824a1e6ed3",
+            "value": " 47/47 [00:10<00:00,  4.54it/s]"
+          }
+        },
+        "bfde609fc1054a24b8c3756613cbfa2e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": "inline-flex",
+            "flex": null,
+            "flex_flow": "row wrap",
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": "100%"
+          }
+        },
+        "3af2179787e2482c852c6db649181967": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "0d01dd8ca27944839e51976b2e63c557": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "2fd6a0dc83f34fa695755bfdb12b62ae": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": "2",
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2091a3dd510943b79d027917a1617112": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "9bcd8d062d554d66b110c399d9c0b625": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "e53dd3ed466a49c4ad12cf824a1e6ed3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "2e3d634584694485a3dc805dd4e6bb71": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_731b73b798c440e8ae4428f118cf4b50",
+              "IPY_MODEL_fe08f3f0bffc41c684745a6f3352c70a",
+              "IPY_MODEL_862a622adef047479bf306e707f8362e"
+            ],
+            "layout": "IPY_MODEL_ab911180843344b7b9231fc356a1a829"
+          }
+        },
+        "731b73b798c440e8ae4428f118cf4b50": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_07f41aeca3df4799a3c07f54ab61661f",
+            "placeholder": "​",
+            "style": "IPY_MODEL_4928e22f1f7541c7883d6bddbd6d1a49",
+            "value": "Validation DataLoader 0: 100%"
+          }
+        },
+        "fe08f3f0bffc41c684745a6f3352c70a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_0625bafcce584b17bda54af0054c69da",
+            "max": 47,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_bad36731d291429ba9ac961539ff09a2",
+            "value": 47
+          }
+        },
+        "862a622adef047479bf306e707f8362e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_545ae88a21f44cdbbbf1832e6dac8152",
+            "placeholder": "​",
+            "style": "IPY_MODEL_e46782297fb4465e94e19a56e56f0dcf",
+            "value": " 47/47 [00:05<00:00,  8.58it/s]"
+          }
+        },
+        "ab911180843344b7b9231fc356a1a829": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": "inline-flex",
+            "flex": null,
+            "flex_flow": "row wrap",
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": "100%"
+          }
+        },
+        "07f41aeca3df4799a3c07f54ab61661f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "4928e22f1f7541c7883d6bddbd6d1a49": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "0625bafcce584b17bda54af0054c69da": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": "2",
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "bad36731d291429ba9ac961539ff09a2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "545ae88a21f44cdbbbf1832e6dac8152": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "e46782297fb4465e94e19a56e56f0dcf": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "6fbc5cb56b044b36b6ac6fa704a42509": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_ea5611dacff74566a5d536b61fce35b2",
+              "IPY_MODEL_5522746482f845bca9a95e0a2224909e",
+              "IPY_MODEL_ad81dd6ad47541a692b0802aba292c87"
+            ],
+            "layout": "IPY_MODEL_88972e62ec0c4b4bb33780ecaf4df32f"
+          }
+        },
+        "ea5611dacff74566a5d536b61fce35b2": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_bd1f348e965244e89c2d53fb83da7934",
+            "placeholder": "​",
+            "style": "IPY_MODEL_15ed082c47c24ad2bf4a84ae85198b41",
+            "value": "Validation DataLoader 0: 100%"
+          }
+        },
+        "5522746482f845bca9a95e0a2224909e": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_f5e16d6a057e44458ad68b354ff01eda",
+            "max": 47,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_5a2f302420ac451ba2a0c967c7b80b8a",
+            "value": 47
+          }
+        },
+        "ad81dd6ad47541a692b0802aba292c87": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_d988de00f6b34fb5b7edc6aacbf6ce24",
+            "placeholder": "​",
+            "style": "IPY_MODEL_dfa2352a7ec947e585caabea0b5378c0",
+            "value": " 47/47 [00:07<00:00,  6.07it/s]"
+          }
+        },
+        "88972e62ec0c4b4bb33780ecaf4df32f": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": "inline-flex",
+            "flex": null,
+            "flex_flow": "row wrap",
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": "100%"
+          }
+        },
+        "bd1f348e965244e89c2d53fb83da7934": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "15ed082c47c24ad2bf4a84ae85198b41": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "f5e16d6a057e44458ad68b354ff01eda": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": "2",
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "5a2f302420ac451ba2a0c967c7b80b8a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "d988de00f6b34fb5b7edc6aacbf6ce24": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "dfa2352a7ec947e585caabea0b5378c0": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "f0a25dc24c19453ba9f3e84169914ed5": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_17e55c8a116546cfadd75932be36604c",
+              "IPY_MODEL_9ef9e5e64a5546fda0b2f2ee360b063b",
+              "IPY_MODEL_0f296de304ef4f2aab1c61d922220962"
+            ],
+            "layout": "IPY_MODEL_7c47a7b3bed64f7e94054764e8607b14"
+          }
+        },
+        "17e55c8a116546cfadd75932be36604c": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_7e5e21fb8a7d4ebea7c71e9f655fe606",
+            "placeholder": "​",
+            "style": "IPY_MODEL_9fb1d2f72fda43e4a91e4cbb23426322",
+            "value": "Validation DataLoader 0: 100%"
+          }
+        },
+        "9ef9e5e64a5546fda0b2f2ee360b063b": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_0cc181a9b3e04d658d0eefefaabecaf4",
+            "max": 47,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b320af0dc127481fb92415d2247a565a",
+            "value": 47
+          }
+        },
+        "0f296de304ef4f2aab1c61d922220962": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_2a6e76a13e5747c2888b73ff55361dea",
+            "placeholder": "​",
+            "style": "IPY_MODEL_2d3bfc8b4da94766a48e6bd84e3932b3",
+            "value": " 47/47 [00:05<00:00,  9.38it/s]"
+          }
+        },
+        "7c47a7b3bed64f7e94054764e8607b14": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": "inline-flex",
+            "flex": null,
+            "flex_flow": "row wrap",
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": "100%"
+          }
+        },
+        "7e5e21fb8a7d4ebea7c71e9f655fe606": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "9fb1d2f72fda43e4a91e4cbb23426322": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "0cc181a9b3e04d658d0eefefaabecaf4": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": "2",
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "b320af0dc127481fb92415d2247a565a": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "2a6e76a13e5747c2888b73ff55361dea": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "2d3bfc8b4da94766a48e6bd84e3932b3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "530114990c934b02b04ed88233a4cda3": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HBoxModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HBoxModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HBoxView",
+            "box_style": "",
+            "children": [
+              "IPY_MODEL_2fbda58508c94503891ad1ab96445398",
+              "IPY_MODEL_348fc0c1069a4430be11d2112f212080",
+              "IPY_MODEL_0c134e301fe5481bbcd47eb35ff1ecd9"
+            ],
+            "layout": "IPY_MODEL_cda06210315d42f3b4909bdc14310e15"
+          }
+        },
+        "2fbda58508c94503891ad1ab96445398": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_98131182118a4e0bbb0de266875c10ec",
+            "placeholder": "​",
+            "style": "IPY_MODEL_9ef52af34b6d4030b0ed2ad1006e2a05",
+            "value": "Validation DataLoader 0: 100%"
+          }
+        },
+        "348fc0c1069a4430be11d2112f212080": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "FloatProgressModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "FloatProgressModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "ProgressView",
+            "bar_style": "",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_c719f246dc254ba284b1975932eaedf9",
+            "max": 47,
+            "min": 0,
+            "orientation": "horizontal",
+            "style": "IPY_MODEL_b70eedcca7744a8dab61e3c5796e2072",
+            "value": 47
+          }
+        },
+        "0c134e301fe5481bbcd47eb35ff1ecd9": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "HTMLModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_dom_classes": [],
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "HTMLModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/controls",
+            "_view_module_version": "1.5.0",
+            "_view_name": "HTMLView",
+            "description": "",
+            "description_tooltip": null,
+            "layout": "IPY_MODEL_3ccc25decd5b48e39bd101a6a526865e",
+            "placeholder": "​",
+            "style": "IPY_MODEL_904fb13e4c9a4290a95c7003770d0a32",
+            "value": " 47/47 [00:06<00:00,  7.72it/s]"
+          }
+        },
+        "cda06210315d42f3b4909bdc14310e15": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": "inline-flex",
+            "flex": null,
+            "flex_flow": "row wrap",
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": "hidden",
+            "width": "100%"
+          }
+        },
+        "98131182118a4e0bbb0de266875c10ec": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "9ef52af34b6d4030b0ed2ad1006e2a05": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        },
+        "c719f246dc254ba284b1975932eaedf9": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": "2",
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "b70eedcca7744a8dab61e3c5796e2072": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "ProgressStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "ProgressStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "bar_color": null,
+            "description_width": ""
+          }
+        },
+        "3ccc25decd5b48e39bd101a6a526865e": {
+          "model_module": "@jupyter-widgets/base",
+          "model_name": "LayoutModel",
+          "model_module_version": "1.2.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/base",
+            "_model_module_version": "1.2.0",
+            "_model_name": "LayoutModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "LayoutView",
+            "align_content": null,
+            "align_items": null,
+            "align_self": null,
+            "border": null,
+            "bottom": null,
+            "display": null,
+            "flex": null,
+            "flex_flow": null,
+            "grid_area": null,
+            "grid_auto_columns": null,
+            "grid_auto_flow": null,
+            "grid_auto_rows": null,
+            "grid_column": null,
+            "grid_gap": null,
+            "grid_row": null,
+            "grid_template_areas": null,
+            "grid_template_columns": null,
+            "grid_template_rows": null,
+            "height": null,
+            "justify_content": null,
+            "justify_items": null,
+            "left": null,
+            "margin": null,
+            "max_height": null,
+            "max_width": null,
+            "min_height": null,
+            "min_width": null,
+            "object_fit": null,
+            "object_position": null,
+            "order": null,
+            "overflow": null,
+            "overflow_x": null,
+            "overflow_y": null,
+            "padding": null,
+            "right": null,
+            "top": null,
+            "visibility": null,
+            "width": null
+          }
+        },
+        "904fb13e4c9a4290a95c7003770d0a32": {
+          "model_module": "@jupyter-widgets/controls",
+          "model_name": "DescriptionStyleModel",
+          "model_module_version": "1.5.0",
+          "state": {
+            "_model_module": "@jupyter-widgets/controls",
+            "_model_module_version": "1.5.0",
+            "_model_name": "DescriptionStyleModel",
+            "_view_count": null,
+            "_view_module": "@jupyter-widgets/base",
+            "_view_module_version": "1.2.0",
+            "_view_name": "StyleView",
+            "description_width": ""
+          }
+        }
+      }
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": 1,
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "jd6K5XZdeAMu",
+        "outputId": "974bad76-8527-47c4-f3b5-1fcd84c9c49b"
+      },
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Collecting jarvis-tools\n",
+            "  Downloading jarvis_tools-2024.10.10-py2.py3-none-any.whl.metadata (3.1 kB)\n",
+            "Requirement already satisfied: numpy>=1.20.1 in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (1.26.4)\n",
+            "Requirement already satisfied: scipy>=1.5.0 in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (1.13.1)\n",
+            "Requirement already satisfied: matplotlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (3.8.0)\n",
+            "Requirement already satisfied: joblib>=0.14.1 in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (1.4.2)\n",
+            "Requirement already satisfied: requests>=2.23.0 in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (2.32.3)\n",
+            "Requirement already satisfied: toolz>=0.9.0 in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (0.12.1)\n",
+            "Collecting xmltodict>=0.11.0 (from jarvis-tools)\n",
+            "  Downloading xmltodict-0.14.2-py2.py3-none-any.whl.metadata (8.0 kB)\n",
+            "Requirement already satisfied: tqdm>=4.41.1 in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (4.66.6)\n",
+            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from jarvis-tools) (1.5.2)\n",
+            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (1.3.0)\n",
+            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (0.12.1)\n",
+            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (4.54.1)\n",
+            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (1.4.7)\n",
+            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (24.1)\n",
+            "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (10.4.0)\n",
+            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (3.2.0)\n",
+            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.0.0->jarvis-tools) (2.8.2)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.23.0->jarvis-tools) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.23.0->jarvis-tools) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.23.0->jarvis-tools) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.23.0->jarvis-tools) (2024.8.30)\n",
+            "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->jarvis-tools) (3.5.0)\n",
+            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=3.0.0->jarvis-tools) (1.16.0)\n",
+            "Downloading jarvis_tools-2024.10.10-py2.py3-none-any.whl (4.2 MB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.2/4.2 MB\u001b[0m \u001b[31m22.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading xmltodict-0.14.2-py2.py3-none-any.whl (10.0 kB)\n",
+            "Installing collected packages: xmltodict, jarvis-tools\n",
+            "Successfully installed jarvis-tools-2024.10.10 xmltodict-0.14.2\n"
+          ]
+        }
+      ],
+      "source": [
+        "!pip install jarvis-tools"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!pip3 install pymatgen"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "mC4gkbnBeP7t",
+        "outputId": "e8b7d83a-2c04-4909-e84d-1bdf75b8f42d"
+      },
+      "execution_count": 7,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Requirement already satisfied: pymatgen in /usr/local/lib/python3.10/dist-packages (2024.10.29)\n",
+            "Requirement already satisfied: joblib>=1 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (1.4.2)\n",
+            "Requirement already satisfied: matplotlib>=3.8 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (3.8.0)\n",
+            "Requirement already satisfied: monty>=2024.7.29 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (2024.10.21)\n",
+            "Requirement already satisfied: networkx>=3 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (3.4.2)\n",
+            "Requirement already satisfied: palettable>=3.3.3 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (3.3.3)\n",
+            "Requirement already satisfied: pandas>=2 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (2.2.2)\n",
+            "Requirement already satisfied: plotly>=4.5.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (5.24.1)\n",
+            "Requirement already satisfied: pybtex>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (0.24.0)\n",
+            "Requirement already satisfied: requests>=2.32 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (2.32.3)\n",
+            "Requirement already satisfied: ruamel.yaml>=0.17.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (0.18.6)\n",
+            "Requirement already satisfied: scipy>=1.13.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (1.13.1)\n",
+            "Requirement already satisfied: spglib>=2.5.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (2.5.0)\n",
+            "Requirement already satisfied: sympy>=1.2 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (1.13.1)\n",
+            "Requirement already satisfied: tabulate>=0.9 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (0.9.0)\n",
+            "Requirement already satisfied: tqdm>=4.60 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (4.66.6)\n",
+            "Requirement already satisfied: uncertainties>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (3.2.2)\n",
+            "Requirement already satisfied: numpy<3,>=1.25.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen) (1.26.4)\n",
+            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (1.3.0)\n",
+            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (0.12.1)\n",
+            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (4.54.1)\n",
+            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (1.4.7)\n",
+            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (24.1)\n",
+            "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (10.4.0)\n",
+            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (3.2.0)\n",
+            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.8->pymatgen) (2.8.2)\n",
+            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=2->pymatgen) (2024.2)\n",
+            "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas>=2->pymatgen) (2024.2)\n",
+            "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly>=4.5.0->pymatgen) (9.0.0)\n",
+            "Requirement already satisfied: PyYAML>=3.01 in /usr/local/lib/python3.10/dist-packages (from pybtex>=0.24.0->pymatgen) (6.0.2)\n",
+            "Requirement already satisfied: latexcodec>=1.0.4 in /usr/local/lib/python3.10/dist-packages (from pybtex>=0.24.0->pymatgen) (3.0.0)\n",
+            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from pybtex>=0.24.0->pymatgen) (1.16.0)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32->pymatgen) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32->pymatgen) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32->pymatgen) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.32->pymatgen) (2024.8.30)\n",
+            "Requirement already satisfied: ruamel.yaml.clib>=0.2.7 in /usr/local/lib/python3.10/dist-packages (from ruamel.yaml>=0.17.0->pymatgen) (0.2.12)\n",
+            "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy>=1.2->pymatgen) (1.3.0)\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!pip install  dgl -f https://data.dgl.ai/wheels/torch-2.1/repo.html"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "fhA7AxnzeQfj",
+        "outputId": "3e9e530c-b84f-4285-8c00-659d64cb79b2"
+      },
+      "execution_count": 6,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Looking in links: https://data.dgl.ai/wheels/torch-2.1/repo.html\n",
+            "Requirement already satisfied: dgl in /usr/local/lib/python3.10/dist-packages (2.4.0)\n",
+            "Requirement already satisfied: networkx>=2.1 in /usr/local/lib/python3.10/dist-packages (from dgl) (3.4.2)\n",
+            "Requirement already satisfied: numpy>=1.14.0 in /usr/local/lib/python3.10/dist-packages (from dgl) (1.26.4)\n",
+            "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from dgl) (24.1)\n",
+            "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from dgl) (2.2.2)\n",
+            "Requirement already satisfied: psutil>=5.8.0 in /usr/local/lib/python3.10/dist-packages (from dgl) (5.9.5)\n",
+            "Requirement already satisfied: pydantic>=2.0 in /usr/local/lib/python3.10/dist-packages (from dgl) (2.9.2)\n",
+            "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from dgl) (6.0.2)\n",
+            "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from dgl) (2.32.3)\n",
+            "Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from dgl) (1.13.1)\n",
+            "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from dgl) (4.66.6)\n",
+            "Requirement already satisfied: torch<=2.4.0 in /usr/local/lib/python3.10/dist-packages (from dgl) (2.4.0)\n",
+            "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->dgl) (0.7.0)\n",
+            "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->dgl) (2.23.4)\n",
+            "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->dgl) (4.12.2)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->dgl) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->dgl) (3.10)\n",
+            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->dgl) (2.2.3)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->dgl) (2024.8.30)\n",
+            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (3.16.1)\n",
+            "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (1.13.1)\n",
+            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (3.1.4)\n",
+            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (2024.10.0)\n",
+            "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (12.1.105)\n",
+            "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (12.1.105)\n",
+            "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (12.1.105)\n",
+            "Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (9.1.0.70)\n",
+            "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (12.1.3.1)\n",
+            "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (11.0.2.54)\n",
+            "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (10.3.2.106)\n",
+            "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (11.4.5.107)\n",
+            "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (12.1.0.106)\n",
+            "Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (2.20.5)\n",
+            "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (12.1.105)\n",
+            "Requirement already satisfied: triton==3.0.0 in /usr/local/lib/python3.10/dist-packages (from torch<=2.4.0->dgl) (3.0.0)\n",
+            "Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch<=2.4.0->dgl) (12.6.77)\n",
+            "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->dgl) (2.8.2)\n",
+            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->dgl) (2024.2)\n",
+            "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas->dgl) (2024.2)\n",
+            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas->dgl) (1.16.0)\n",
+            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch<=2.4.0->dgl) (3.0.2)\n",
+            "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy->torch<=2.4.0->dgl) (1.3.0)\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!pip3 install matgl"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "YM0zUT9-fqfc",
+        "outputId": "6bca17f0-06c7-4559-9b81-a79c3739a116"
+      },
+      "execution_count": 9,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Collecting matgl\n",
+            "  Downloading matgl-1.1.3-py3-none-any.whl.metadata (16 kB)\n",
+            "Collecting ase (from matgl)\n",
+            "  Downloading ase-3.23.0-py3-none-any.whl.metadata (3.8 kB)\n",
+            "Requirement already satisfied: dgl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from matgl) (2.4.0)\n",
+            "Requirement already satisfied: pymatgen in /usr/local/lib/python3.10/dist-packages (from matgl) (2024.10.29)\n",
+            "Collecting lightning (from matgl)\n",
+            "  Downloading lightning-2.4.0-py3-none-any.whl.metadata (38 kB)\n",
+            "Requirement already satisfied: torch in /usr/local/lib/python3.10/dist-packages (from matgl) (2.4.0)\n",
+            "Requirement already satisfied: pydantic in /usr/local/lib/python3.10/dist-packages (from matgl) (2.9.2)\n",
+            "Collecting torchdata<0.8.0 (from matgl)\n",
+            "  Downloading torchdata-0.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)\n",
+            "Requirement already satisfied: networkx>=2.1 in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (3.4.2)\n",
+            "Requirement already satisfied: numpy>=1.14.0 in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (1.26.4)\n",
+            "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (24.1)\n",
+            "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (2.2.2)\n",
+            "Requirement already satisfied: psutil>=5.8.0 in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (5.9.5)\n",
+            "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (6.0.2)\n",
+            "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (2.32.3)\n",
+            "Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (1.13.1)\n",
+            "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from dgl>=2.0.0->matgl) (4.66.6)\n",
+            "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic->matgl) (0.7.0)\n",
+            "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic->matgl) (2.23.4)\n",
+            "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic->matgl) (4.12.2)\n",
+            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (3.16.1)\n",
+            "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (1.13.1)\n",
+            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (3.1.4)\n",
+            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (2024.10.0)\n",
+            "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (12.1.105)\n",
+            "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (12.1.105)\n",
+            "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (12.1.105)\n",
+            "Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (9.1.0.70)\n",
+            "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (12.1.3.1)\n",
+            "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (11.0.2.54)\n",
+            "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (10.3.2.106)\n",
+            "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (11.4.5.107)\n",
+            "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (12.1.0.106)\n",
+            "Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (2.20.5)\n",
+            "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (12.1.105)\n",
+            "Requirement already satisfied: triton==3.0.0 in /usr/local/lib/python3.10/dist-packages (from torch->matgl) (3.0.0)\n",
+            "Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch->matgl) (12.6.77)\n",
+            "Requirement already satisfied: urllib3>=1.25 in /usr/local/lib/python3.10/dist-packages (from torchdata<0.8.0->matgl) (2.2.3)\n",
+            "Requirement already satisfied: matplotlib>=3.3.4 in /usr/local/lib/python3.10/dist-packages (from ase->matgl) (3.8.0)\n",
+            "Collecting lightning-utilities<2.0,>=0.10.0 (from lightning->matgl)\n",
+            "  Downloading lightning_utilities-0.11.8-py3-none-any.whl.metadata (5.2 kB)\n",
+            "Collecting torchmetrics<3.0,>=0.7.0 (from lightning->matgl)\n",
+            "  Downloading torchmetrics-1.5.1-py3-none-any.whl.metadata (20 kB)\n",
+            "Collecting pytorch-lightning (from lightning->matgl)\n",
+            "  Downloading pytorch_lightning-2.4.0-py3-none-any.whl.metadata (21 kB)\n",
+            "Requirement already satisfied: joblib>=1 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (1.4.2)\n",
+            "Requirement already satisfied: monty>=2024.7.29 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (2024.10.21)\n",
+            "Requirement already satisfied: palettable>=3.3.3 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (3.3.3)\n",
+            "Requirement already satisfied: plotly>=4.5.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (5.24.1)\n",
+            "Requirement already satisfied: pybtex>=0.24.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (0.24.0)\n",
+            "Requirement already satisfied: ruamel.yaml>=0.17.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (0.18.6)\n",
+            "Requirement already satisfied: spglib>=2.5.0 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (2.5.0)\n",
+            "Requirement already satisfied: tabulate>=0.9 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (0.9.0)\n",
+            "Requirement already satisfied: uncertainties>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from pymatgen->matgl) (3.2.2)\n",
+            "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.10/dist-packages (from fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (3.10.10)\n",
+            "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from lightning-utilities<2.0,>=0.10.0->lightning->matgl) (75.1.0)\n",
+            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.3.4->ase->matgl) (1.3.0)\n",
+            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.3.4->ase->matgl) (0.12.1)\n",
+            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.3.4->ase->matgl) (4.54.1)\n",
+            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.3.4->ase->matgl) (1.4.7)\n",
+            "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.3.4->ase->matgl) (10.4.0)\n",
+            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.3.4->ase->matgl) (3.2.0)\n",
+            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.3.4->ase->matgl) (2.8.2)\n",
+            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->dgl>=2.0.0->matgl) (2024.2)\n",
+            "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas->dgl>=2.0.0->matgl) (2024.2)\n",
+            "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly>=4.5.0->pymatgen->matgl) (9.0.0)\n",
+            "Requirement already satisfied: latexcodec>=1.0.4 in /usr/local/lib/python3.10/dist-packages (from pybtex>=0.24.0->pymatgen->matgl) (3.0.0)\n",
+            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from pybtex>=0.24.0->pymatgen->matgl) (1.16.0)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->dgl>=2.0.0->matgl) (3.4.0)\n",
+            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->dgl>=2.0.0->matgl) (3.10)\n",
+            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->dgl>=2.0.0->matgl) (2024.8.30)\n",
+            "Requirement already satisfied: ruamel.yaml.clib>=0.2.7 in /usr/local/lib/python3.10/dist-packages (from ruamel.yaml>=0.17.0->pymatgen->matgl) (0.2.12)\n",
+            "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy->torch->matgl) (1.3.0)\n",
+            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch->matgl) (3.0.2)\n",
+            "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (2.4.3)\n",
+            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (1.3.1)\n",
+            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (24.2.0)\n",
+            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (1.5.0)\n",
+            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (6.1.0)\n",
+            "Requirement already satisfied: yarl<2.0,>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (1.17.0)\n",
+            "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (4.0.3)\n",
+            "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.12.0->aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning->matgl) (0.2.0)\n",
+            "Downloading matgl-1.1.3-py3-none-any.whl (223 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m223.3/223.3 kB\u001b[0m \u001b[31m12.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading torchdata-0.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.7 MB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.7/4.7 MB\u001b[0m \u001b[31m61.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading ase-3.23.0-py3-none-any.whl (2.9 MB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.9/2.9 MB\u001b[0m \u001b[31m72.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading lightning-2.4.0-py3-none-any.whl (810 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m811.0/811.0 kB\u001b[0m \u001b[31m34.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading lightning_utilities-0.11.8-py3-none-any.whl (26 kB)\n",
+            "Downloading torchmetrics-1.5.1-py3-none-any.whl (890 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m890.6/890.6 kB\u001b[0m \u001b[31m45.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading pytorch_lightning-2.4.0-py3-none-any.whl (815 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m815.2/815.2 kB\u001b[0m \u001b[31m42.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hInstalling collected packages: lightning-utilities, ase, torchmetrics, torchdata, pytorch-lightning, lightning, matgl\n",
+            "Successfully installed ase-3.23.0 lightning-2.4.0 lightning-utilities-0.11.8 matgl-1.1.3 pytorch-lightning-2.4.0 torchdata-0.7.1 torchmetrics-1.5.1\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "from __future__ import annotations\n",
+        "\n",
+        "import os\n",
+        "import shutil\n",
+        "import warnings\n",
+        "import zipfile\n",
+        "import matgl\n",
+        "\n",
+        "import matplotlib.pyplot as plt\n",
+        "import pandas as pd\n",
+        "import pytorch_lightning as pl\n",
+        "import torch\n",
+        "import pickle\n",
+        "import numpy as np\n",
+        "from dgl.data.utils import split_dataset\n",
+        "from pymatgen.core import Structure\n",
+        "from pytorch_lightning.loggers import CSVLogger\n",
+        "from lightning.pytorch import Trainer\n",
+        "from tqdm import tqdm\n",
+        "\n",
+        "from matgl.ext.pymatgen import Structure2Graph, get_element_list\n",
+        "from matgl.graph.data import MGLDataset, MGLDataLoader #collate_fn.  - shivani i don't think you need this as num_workers=0\n",
+        "from matgl.layers import BondExpansion\n",
+        "from matgl.models import MEGNet\n",
+        "from matgl.utils.io import RemoteFile\n",
+        "from matgl.utils.training import ModelLightningModule\n",
+        "\n",
+        "# To suppress warnings for clearer output\n",
+        "warnings.simplefilter(\"ignore\")"
+      ],
+      "metadata": {
+        "id": "avglyJbheVCr"
+      },
+      "execution_count": 39,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "from jarvis.db.figshare import data\n",
+        "\n",
+        "dft_3d = data('dft_3d')"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "vZFdOECqfefs",
+        "outputId": "e722910c-d5f9-48c0-85af-fb7536d81ce7"
+      },
+      "execution_count": 12,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Obtaining 3D dataset 76k ...\n",
+            "Reference:https://www.nature.com/articles/s41524-020-00440-1\n",
+            "Other versions:https://doi.org/10.6084/m9.figshare.6815699\n"
+          ]
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "100%|██████████| 40.8M/40.8M [00:01<00:00, 20.5MiB/s]\n"
+          ]
+        },
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Loading the zipfile...\n",
+            "Loading completed.\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "dft_3d[0].keys()"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "o1-OpcxGgXn3",
+        "outputId": "eb48c546-8539-4acc-f8cd-290039cd1a6f"
+      },
+      "execution_count": 13,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "dict_keys(['jid', 'spg_number', 'spg_symbol', 'formula', 'formation_energy_peratom', 'func', 'optb88vdw_bandgap', 'atoms', 'slme', 'magmom_oszicar', 'spillage', 'elastic_tensor', 'effective_masses_300K', 'kpoint_length_unit', 'maxdiff_mesh', 'maxdiff_bz', 'encut', 'optb88vdw_total_energy', 'epsx', 'epsy', 'epsz', 'mepsx', 'mepsy', 'mepsz', 'modes', 'magmom_outcar', 'max_efg', 'avg_elec_mass', 'avg_hole_mass', 'icsd', 'dfpt_piezo_max_eij', 'dfpt_piezo_max_dij', 'dfpt_piezo_max_dielectric', 'dfpt_piezo_max_dielectric_electronic', 'dfpt_piezo_max_dielectric_ionic', 'max_ir_mode', 'min_ir_mode', 'n-Seebeck', 'p-Seebeck', 'n-powerfact', 'p-powerfact', 'ncond', 'pcond', 'nkappa', 'pkappa', 'ehull', 'Tc_supercon', 'dimensionality', 'efg', 'xml_data_link', 'typ', 'exfoliation_energy', 'spg', 'crys', 'density', 'poisson', 'raw_files', 'nat', 'bulk_modulus_kv', 'shear_modulus_gv', 'mbj_bandgap', 'hse_gap', 'reference', 'search'])"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 13
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "## Let's make a dataframe from this:\n",
+        "import pandas as pd\n",
+        "import numpy as np"
+      ],
+      "metadata": {
+        "id": "RnAkEQBSgZki"
+      },
+      "execution_count": 14,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "df=pd.DataFrame(dft_3d)\n",
+        "df.head()"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 429
+        },
+        "id": "HUvXBAGDgdYn",
+        "outputId": "cb02920a-b7e5-469e-8b8e-8fb55a7177e3"
+      },
+      "execution_count": 15,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "           jid spg_number spg_symbol   formula  formation_energy_peratom  \\\n",
+              "0  JVASP-90856        129     P4/nmm  TiCuSiAs                  -0.42762   \n",
+              "1  JVASP-86097        221      Pm-3m      DyB6                  -0.41596   \n",
+              "2  JVASP-64906        119      I-4m2   Be2OsRu                   0.04847   \n",
+              "3  JVASP-98225         14     P2_1/c       KBi                  -0.44140   \n",
+              "4     JVASP-10        164      P-3m1      VSe2                  -0.71026   \n",
+              "\n",
+              "        func  optb88vdw_bandgap  \\\n",
+              "0  OptB88vdW              0.000   \n",
+              "1  OptB88vdW              0.000   \n",
+              "2  OptB88vdW              0.000   \n",
+              "3  OptB88vdW              0.472   \n",
+              "4  OptB88vdW              0.000   \n",
+              "\n",
+              "                                               atoms slme magmom_oszicar  ...  \\\n",
+              "0  {'lattice_mat': [[3.566933224304235, 0.0, -0.0...   na            0.0  ...   \n",
+              "1  {'lattice_mat': [[4.089078911208881, 0.0, 0.0]...   na            0.0  ...   \n",
+              "2  {'lattice_mat': [[-1.833590720595598, 1.833590...   na            0.0  ...   \n",
+              "3  {'lattice_mat': [[7.2963518353359165, 0.0, 0.0...   na            0.0  ...   \n",
+              "4  {'lattice_mat': [[1.6777483798834445, -2.90594...   na            0.0  ...   \n",
+              "\n",
+              "  density poisson                                          raw_files nat  \\\n",
+              "0   5.956      na                                                 []   8   \n",
+              "1   5.522      na  [OPT-LOPTICS,JVASP-86097.zip,https://ndownload...   7   \n",
+              "2  10.960      na  [OPT-LOPTICS,JVASP-64906.zip,https://ndownload...   4   \n",
+              "3   5.145      na                                                 []  32   \n",
+              "4   5.718    0.23  [FD-ELAST,JVASP-10.zip,https://ndownloader.fig...   3   \n",
+              "\n",
+              "  bulk_modulus_kv shear_modulus_gv mbj_bandgap  hse_gap  \\\n",
+              "0              na               na          na       na   \n",
+              "1              na               na          na       na   \n",
+              "2              na               na          na       na   \n",
+              "3              na               na          na       na   \n",
+              "4           48.79            33.05         0.0       na   \n",
+              "\n",
+              "               reference        search  \n",
+              "0             mp-1080455  -As-Cu-Si-Ti  \n",
+              "1              mp-568319         -B-Dy  \n",
+              "2  auid-3eaf68dd483bf4f4     -Be-Os-Ru  \n",
+              "3               mp-31104         -Bi-K  \n",
+              "4                 mp-694         -Se-V  \n",
+              "\n",
+              "[5 rows x 64 columns]"
+            ],
+            "text/html": [
+              "\n",
+              "  <div id=\"df-7bedbd8a-b0f7-4b76-aac4-3afa628ac70d\" class=\"colab-df-container\">\n",
+              "    <div>\n",
+              "<style scoped>\n",
+              "    .dataframe tbody tr th:only-of-type {\n",
+              "        vertical-align: middle;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe tbody tr th {\n",
+              "        vertical-align: top;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe thead th {\n",
+              "        text-align: right;\n",
+              "    }\n",
+              "</style>\n",
+              "<table border=\"1\" class=\"dataframe\">\n",
+              "  <thead>\n",
+              "    <tr style=\"text-align: right;\">\n",
+              "      <th></th>\n",
+              "      <th>jid</th>\n",
+              "      <th>spg_number</th>\n",
+              "      <th>spg_symbol</th>\n",
+              "      <th>formula</th>\n",
+              "      <th>formation_energy_peratom</th>\n",
+              "      <th>func</th>\n",
+              "      <th>optb88vdw_bandgap</th>\n",
+              "      <th>atoms</th>\n",
+              "      <th>slme</th>\n",
+              "      <th>magmom_oszicar</th>\n",
+              "      <th>...</th>\n",
+              "      <th>density</th>\n",
+              "      <th>poisson</th>\n",
+              "      <th>raw_files</th>\n",
+              "      <th>nat</th>\n",
+              "      <th>bulk_modulus_kv</th>\n",
+              "      <th>shear_modulus_gv</th>\n",
+              "      <th>mbj_bandgap</th>\n",
+              "      <th>hse_gap</th>\n",
+              "      <th>reference</th>\n",
+              "      <th>search</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>JVASP-90856</td>\n",
+              "      <td>129</td>\n",
+              "      <td>P4/nmm</td>\n",
+              "      <td>TiCuSiAs</td>\n",
+              "      <td>-0.42762</td>\n",
+              "      <td>OptB88vdW</td>\n",
+              "      <td>0.000</td>\n",
+              "      <td>{'lattice_mat': [[3.566933224304235, 0.0, -0.0...</td>\n",
+              "      <td>na</td>\n",
+              "      <td>0.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>5.956</td>\n",
+              "      <td>na</td>\n",
+              "      <td>[]</td>\n",
+              "      <td>8</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>mp-1080455</td>\n",
+              "      <td>-As-Cu-Si-Ti</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>JVASP-86097</td>\n",
+              "      <td>221</td>\n",
+              "      <td>Pm-3m</td>\n",
+              "      <td>DyB6</td>\n",
+              "      <td>-0.41596</td>\n",
+              "      <td>OptB88vdW</td>\n",
+              "      <td>0.000</td>\n",
+              "      <td>{'lattice_mat': [[4.089078911208881, 0.0, 0.0]...</td>\n",
+              "      <td>na</td>\n",
+              "      <td>0.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>5.522</td>\n",
+              "      <td>na</td>\n",
+              "      <td>[OPT-LOPTICS,JVASP-86097.zip,https://ndownload...</td>\n",
+              "      <td>7</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>mp-568319</td>\n",
+              "      <td>-B-Dy</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>JVASP-64906</td>\n",
+              "      <td>119</td>\n",
+              "      <td>I-4m2</td>\n",
+              "      <td>Be2OsRu</td>\n",
+              "      <td>0.04847</td>\n",
+              "      <td>OptB88vdW</td>\n",
+              "      <td>0.000</td>\n",
+              "      <td>{'lattice_mat': [[-1.833590720595598, 1.833590...</td>\n",
+              "      <td>na</td>\n",
+              "      <td>0.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>10.960</td>\n",
+              "      <td>na</td>\n",
+              "      <td>[OPT-LOPTICS,JVASP-64906.zip,https://ndownload...</td>\n",
+              "      <td>4</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>auid-3eaf68dd483bf4f4</td>\n",
+              "      <td>-Be-Os-Ru</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>3</th>\n",
+              "      <td>JVASP-98225</td>\n",
+              "      <td>14</td>\n",
+              "      <td>P2_1/c</td>\n",
+              "      <td>KBi</td>\n",
+              "      <td>-0.44140</td>\n",
+              "      <td>OptB88vdW</td>\n",
+              "      <td>0.472</td>\n",
+              "      <td>{'lattice_mat': [[7.2963518353359165, 0.0, 0.0...</td>\n",
+              "      <td>na</td>\n",
+              "      <td>0.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>5.145</td>\n",
+              "      <td>na</td>\n",
+              "      <td>[]</td>\n",
+              "      <td>32</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>na</td>\n",
+              "      <td>mp-31104</td>\n",
+              "      <td>-Bi-K</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>4</th>\n",
+              "      <td>JVASP-10</td>\n",
+              "      <td>164</td>\n",
+              "      <td>P-3m1</td>\n",
+              "      <td>VSe2</td>\n",
+              "      <td>-0.71026</td>\n",
+              "      <td>OptB88vdW</td>\n",
+              "      <td>0.000</td>\n",
+              "      <td>{'lattice_mat': [[1.6777483798834445, -2.90594...</td>\n",
+              "      <td>na</td>\n",
+              "      <td>0.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>5.718</td>\n",
+              "      <td>0.23</td>\n",
+              "      <td>[FD-ELAST,JVASP-10.zip,https://ndownloader.fig...</td>\n",
+              "      <td>3</td>\n",
+              "      <td>48.79</td>\n",
+              "      <td>33.05</td>\n",
+              "      <td>0.0</td>\n",
+              "      <td>na</td>\n",
+              "      <td>mp-694</td>\n",
+              "      <td>-Se-V</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "<p>5 rows × 64 columns</p>\n",
+              "</div>\n",
+              "    <div class=\"colab-df-buttons\">\n",
+              "\n",
+              "  <div class=\"colab-df-container\">\n",
+              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7bedbd8a-b0f7-4b76-aac4-3afa628ac70d')\"\n",
+              "            title=\"Convert this dataframe to an interactive table.\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
+              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
+              "  </svg>\n",
+              "    </button>\n",
+              "\n",
+              "  <style>\n",
+              "    .colab-df-container {\n",
+              "      display:flex;\n",
+              "      gap: 12px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert {\n",
+              "      background-color: #E8F0FE;\n",
+              "      border: none;\n",
+              "      border-radius: 50%;\n",
+              "      cursor: pointer;\n",
+              "      display: none;\n",
+              "      fill: #1967D2;\n",
+              "      height: 32px;\n",
+              "      padding: 0 0 0 0;\n",
+              "      width: 32px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert:hover {\n",
+              "      background-color: #E2EBFA;\n",
+              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "      fill: #174EA6;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-buttons div {\n",
+              "      margin-bottom: 4px;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert {\n",
+              "      background-color: #3B4455;\n",
+              "      fill: #D2E3FC;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert:hover {\n",
+              "      background-color: #434B5C;\n",
+              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
+              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
+              "      fill: #FFFFFF;\n",
+              "    }\n",
+              "  </style>\n",
+              "\n",
+              "    <script>\n",
+              "      const buttonEl =\n",
+              "        document.querySelector('#df-7bedbd8a-b0f7-4b76-aac4-3afa628ac70d button.colab-df-convert');\n",
+              "      buttonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "\n",
+              "      async function convertToInteractive(key) {\n",
+              "        const element = document.querySelector('#df-7bedbd8a-b0f7-4b76-aac4-3afa628ac70d');\n",
+              "        const dataTable =\n",
+              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
+              "                                                    [key], {});\n",
+              "        if (!dataTable) return;\n",
+              "\n",
+              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
+              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
+              "          + ' to learn more about interactive tables.';\n",
+              "        element.innerHTML = '';\n",
+              "        dataTable['output_type'] = 'display_data';\n",
+              "        await google.colab.output.renderOutput(dataTable, element);\n",
+              "        const docLink = document.createElement('div');\n",
+              "        docLink.innerHTML = docLinkHtml;\n",
+              "        element.appendChild(docLink);\n",
+              "      }\n",
+              "    </script>\n",
+              "  </div>\n",
+              "\n",
+              "\n",
+              "<div id=\"df-bd8b8a00-937e-4b1d-a50c-05a9e032c404\">\n",
+              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-bd8b8a00-937e-4b1d-a50c-05a9e032c404')\"\n",
+              "            title=\"Suggest charts\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
+              "     width=\"24px\">\n",
+              "    <g>\n",
+              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
+              "    </g>\n",
+              "</svg>\n",
+              "  </button>\n",
+              "\n",
+              "<style>\n",
+              "  .colab-df-quickchart {\n",
+              "      --bg-color: #E8F0FE;\n",
+              "      --fill-color: #1967D2;\n",
+              "      --hover-bg-color: #E2EBFA;\n",
+              "      --hover-fill-color: #174EA6;\n",
+              "      --disabled-fill-color: #AAA;\n",
+              "      --disabled-bg-color: #DDD;\n",
+              "  }\n",
+              "\n",
+              "  [theme=dark] .colab-df-quickchart {\n",
+              "      --bg-color: #3B4455;\n",
+              "      --fill-color: #D2E3FC;\n",
+              "      --hover-bg-color: #434B5C;\n",
+              "      --hover-fill-color: #FFFFFF;\n",
+              "      --disabled-bg-color: #3B4455;\n",
+              "      --disabled-fill-color: #666;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart {\n",
+              "    background-color: var(--bg-color);\n",
+              "    border: none;\n",
+              "    border-radius: 50%;\n",
+              "    cursor: pointer;\n",
+              "    display: none;\n",
+              "    fill: var(--fill-color);\n",
+              "    height: 32px;\n",
+              "    padding: 0;\n",
+              "    width: 32px;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart:hover {\n",
+              "    background-color: var(--hover-bg-color);\n",
+              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "    fill: var(--button-hover-fill-color);\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart-complete:disabled,\n",
+              "  .colab-df-quickchart-complete:disabled:hover {\n",
+              "    background-color: var(--disabled-bg-color);\n",
+              "    fill: var(--disabled-fill-color);\n",
+              "    box-shadow: none;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-spinner {\n",
+              "    border: 2px solid var(--fill-color);\n",
+              "    border-color: transparent;\n",
+              "    border-bottom-color: var(--fill-color);\n",
+              "    animation:\n",
+              "      spin 1s steps(1) infinite;\n",
+              "  }\n",
+              "\n",
+              "  @keyframes spin {\n",
+              "    0% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "      border-left-color: var(--fill-color);\n",
+              "    }\n",
+              "    20% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    30% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    40% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    60% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    80% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "    90% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "  }\n",
+              "</style>\n",
+              "\n",
+              "  <script>\n",
+              "    async function quickchart(key) {\n",
+              "      const quickchartButtonEl =\n",
+              "        document.querySelector('#' + key + ' button');\n",
+              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
+              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
+              "      try {\n",
+              "        const charts = await google.colab.kernel.invokeFunction(\n",
+              "            'suggestCharts', [key], {});\n",
+              "      } catch (error) {\n",
+              "        console.error('Error during call to suggestCharts:', error);\n",
+              "      }\n",
+              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
+              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
+              "    }\n",
+              "    (() => {\n",
+              "      let quickchartButtonEl =\n",
+              "        document.querySelector('#df-bd8b8a00-937e-4b1d-a50c-05a9e032c404 button');\n",
+              "      quickchartButtonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "    })();\n",
+              "  </script>\n",
+              "</div>\n",
+              "\n",
+              "    </div>\n",
+              "  </div>\n"
+            ],
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "dataframe",
+              "variable_name": "df"
+            }
+          },
+          "metadata": {},
+          "execution_count": 15
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "## Count number of entries for each property\n",
+        "for i in df.columns.values:\n",
+        "  val=df[i].replace('na',np.nan).dropna().values\n",
+        "  print(i,len(val))"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "hrRk8GKighlh",
+        "outputId": "d54272bd-a432-462c-d89a-65241d14db65"
+      },
+      "execution_count": 16,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "jid 75993\n",
+            "spg_number 75993\n",
+            "spg_symbol 75993\n",
+            "formula 75993\n",
+            "formation_energy_peratom 75993\n",
+            "func 75993\n",
+            "optb88vdw_bandgap 75993\n",
+            "atoms 75993\n",
+            "slme 9770\n",
+            "magmom_oszicar 71320\n",
+            "spillage 11377\n",
+            "elastic_tensor 25513\n",
+            "effective_masses_300K 75993\n",
+            "kpoint_length_unit 75671\n",
+            "maxdiff_mesh 5861\n",
+            "maxdiff_bz 5861\n",
+            "encut 75670\n",
+            "optb88vdw_total_energy 75993\n",
+            "epsx 52168\n",
+            "epsy 52168\n",
+            "epsz 52168\n",
+            "mepsx 18293\n",
+            "mepsy 18293\n",
+            "mepsz 18293\n",
+            "modes 13910\n",
+            "magmom_outcar 74261\n",
+            "max_efg 11871\n",
+            "avg_elec_mass 17645\n",
+            "avg_hole_mass 17645\n",
+            "icsd 75993\n",
+            "dfpt_piezo_max_eij 4799\n",
+            "dfpt_piezo_max_dij 3347\n",
+            "dfpt_piezo_max_dielectric 4706\n",
+            "dfpt_piezo_max_dielectric_electronic 4809\n",
+            "dfpt_piezo_max_dielectric_ionic 4809\n",
+            "max_ir_mode 4805\n",
+            "min_ir_mode 4809\n",
+            "n-Seebeck 23218\n",
+            "p-Seebeck 23218\n",
+            "n-powerfact 23218\n",
+            "p-powerfact 23218\n",
+            "ncond 23218\n",
+            "pcond 23218\n",
+            "nkappa 23218\n",
+            "pkappa 23218\n",
+            "ehull 75993\n",
+            "Tc_supercon 1058\n",
+            "dimensionality 75560\n",
+            "efg 75993\n",
+            "xml_data_link 75993\n",
+            "typ 75993\n",
+            "exfoliation_energy 813\n",
+            "spg 75993\n",
+            "crys 75993\n",
+            "density 75993\n",
+            "poisson 23597\n",
+            "raw_files 75993\n",
+            "nat 75993\n",
+            "bulk_modulus_kv 23824\n",
+            "shear_modulus_gv 23824\n",
+            "mbj_bandgap 19805\n",
+            "hse_gap 56\n",
+            "reference 75993\n",
+            "search 75993\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "## Filter dataset based on desired property\n",
+        "## We will focus on elastic properties for today, i.e. Bulk modulus"
+      ],
+      "metadata": {
+        "id": "6dxg4ITfgkOE"
+      },
+      "execution_count": 17,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "from jarvis.core.atoms import Atoms\n",
+        "bm=df[df.bulk_modulus_kv != 'na']\n",
+        "data = [(Atoms.from_dict(bm.iloc[i]['atoms']).pymatgen_converter(), bm.iloc[i].bulk_modulus_kv) for i in range(len(bm))]"
+      ],
+      "metadata": {
+        "id": "xcuLFYdNgq-u"
+      },
+      "execution_count": 18,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "import itertools\n",
+        "def get_stoichiometry(elements):\n",
+        "    return [(g[0], len(list(g[1]))) for g in itertools.groupby(elements)]"
+      ],
+      "metadata": {
+        "id": "Sc1zXAn4gtTT"
+      },
+      "execution_count": 19,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "## Use all the material dataset for training the bulk modulus\n",
+        "from tqdm import tqdm\n",
+        "\n",
+        "stoichs=[]   #stoichiometry\n",
+        "bulk=[]      #bulk modulus\n",
+        "for i in tqdm(range(len(bm))):\n",
+        "    stoichs.append(Atoms.from_dict(bm.iloc[i]['atoms']).pymatgen_converter())\n",
+        "    bulk.append(bm.iloc[i]['bulk_modulus_kv'])\n",
+        "data_ran=list(zip(stoichs,bulk))\n",
+        "#write out the dataset, to train later\n",
+        "import pickle\n",
+        "with open('data_ran.pickle', 'wb') as f:\n",
+        "    pickle.dump(data_ran, f)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "arU4jF5tgvt0",
+        "outputId": "c75f7f94-afe6-4d42-e81a-93405ddcc301"
+      },
+      "execution_count": 20,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "100%|██████████| 23824/23824 [00:25<00:00, 921.20it/s]\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "#read in the dataset\n",
+        "data_ran=pd.read_pickle('./data_ran.pickle')"
+      ],
+      "metadata": {
+        "id": "CFgTo75EgzKR"
+      },
+      "execution_count": 22,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "type(data_ran)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "BWZuJzqNg-ak",
+        "outputId": "8076df63-2b15-4739-f5fe-9f703b68db6f"
+      },
+      "execution_count": 23,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "list"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 23
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "import random\n",
+        "import numpy as np\n",
+        "\n",
+        "\n",
+        "random.shuffle(data_ran)\n",
+        "\n",
+        "structures=[d[0] for d in data_ran[:15000]]\n",
+        "targets=np.log10([d[1] for d in data_ran])\n",
+        "\n",
+        "print(structures[0],targets[0])"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "TG4g1Dp4hBhg",
+        "outputId": "a3adbd5b-95c9-4ec9-8cd0-4c39136ea699"
+      },
+      "execution_count": 24,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Full Formula (Li4 Ce4 O8)\n",
+            "Reduced Formula: LiCeO2\n",
+            "abc   :   5.778710   5.859847   6.029586\n",
+            "angles:  90.000000  90.000000 103.986129\n",
+            "pbc   :       True       True       True\n",
+            "Sites (16)\n",
+            "  #  SP           a         b         c\n",
+            "---  ----  --------  --------  --------\n",
+            "  0  Li    0.182502  0.662954  0.132604\n",
+            "  1  Li    0.317498  0.337046  0.632604\n",
+            "  2  Li    0.817498  0.337046  0.867396\n",
+            "  3  Li    0.682502  0.662954  0.367396\n",
+            "  4  Ce    0.303409  0.200495  0.071539\n",
+            "  5  Ce    0.803409  0.200495  0.428461\n",
+            "  6  Ce    0.696591  0.799505  0.928461\n",
+            "  7  Ce    0.196591  0.799505  0.571539\n",
+            "  8  O     0.986063  0.906145  0.246099\n",
+            "  9  O     0.696592  0.43465   0.136137\n",
+            " 10  O     0.513937  0.093855  0.746099\n",
+            " 11  O     0.013937  0.093855  0.753901\n",
+            " 12  O     0.303408  0.56535   0.863863\n",
+            " 13  O     0.803408  0.56535   0.636137\n",
+            " 14  O     0.196592  0.43465   0.363863\n",
+            " 15  O     0.486063  0.906145  0.253901 2.0546896429499797\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# get element types in the dataset\n",
+        "elem_list = get_element_list(structures)\n",
+        "# setup a graph converter\n",
+        "converter = Structure2Graph(element_types=elem_list, cutoff=4.0)\n",
+        "# convert the raw dataset into MEGNetDataset\n",
+        "mp_dataset = MGLDataset(\n",
+        "    structures=structures,\n",
+        "    labels={\"bulk_modulus_kv\": targets},\n",
+        "    converter=converter,\n",
+        ")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "Z-jazl2PhHsP",
+        "outputId": "0044297b-6dc9-4f70-83f0-afb9c4c558d7"
+      },
+      "execution_count": 25,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "100%|██████████| 15000/15000 [00:24<00:00, 616.21it/s]\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "train_data, val_data, test_data = split_dataset(\n",
+        "    mp_dataset,\n",
+        "    frac_list=[0.6, 0.2, 0.2],\n",
+        "    shuffle=True,\n",
+        "    random_state=42,\n",
+        ")\n",
+        "train_loader, val_loader, test_loader = MGLDataLoader(\n",
+        "    train_data=train_data,\n",
+        "    val_data=val_data,\n",
+        "    test_data=test_data,\n",
+        "    batch_size=64,\n",
+        "    num_workers=0,\n",
+        ")"
+      ],
+      "metadata": {
+        "id": "QPyjAxGghK0Q"
+      },
+      "execution_count": 26,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# setup the embedding layer for node attributes\n",
+        "node_embed = torch.nn.Embedding(len(elem_list), 16)\n",
+        "# define the bond expansion\n",
+        "bond_expansion = BondExpansion(rbf_type=\"Gaussian\", initial=0.0, final=5.0, num_centers=100, width=0.5)\n",
+        "\n",
+        "# setup the architecture of MEGNet model\n",
+        "model = MEGNet(\n",
+        "    dim_node_embedding=16,\n",
+        "    dim_edge_embedding=100,\n",
+        "    dim_state_embedding=2,\n",
+        "    nblocks=3,\n",
+        "    hidden_layer_sizes_input=(64, 32),\n",
+        "    hidden_layer_sizes_conv=(64, 64, 32),\n",
+        "    nlayers_set2set=1,\n",
+        "    niters_set2set=2,\n",
+        "    hidden_layer_sizes_output=(32, 16),\n",
+        "    is_classification=False,\n",
+        "    activation_type=\"softplus2\",\n",
+        "    bond_expansion=bond_expansion,\n",
+        "    #collate_fn=collate_fn,  shivani - not needed now?\n",
+        "    cutoff=4.0,\n",
+        "    gauss_width=0.5,\n",
+        ")\n",
+        "\n",
+        "# setup the MEGNetTrainer\n",
+        "lit_module = ModelLightningModule(model=model)"
+      ],
+      "metadata": {
+        "id": "pYGXwyZphQtd"
+      },
+      "execution_count": 33,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "logger = CSVLogger(\"logged\", name=\"MEGNet_training\")\n",
+        "trainer = Trainer(max_epochs=5, accelerator=\"cpu\", logger=logger) #set to SMALL NUMBER FOR TESTING, PLEASE CHANGE.\n",
+        "trainer.fit(model=lit_module, train_dataloaders=train_loader, val_dataloaders=val_loader)\n",
+        "\n",
+        "warnings.simplefilter(\"ignore\")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 708,
+          "referenced_widgets": [
+            "768ce9da55994740bd19d449bd0880db",
+            "744b1e9c9b304373b89b69c16527bba4",
+            "c87376480c15453e80da77d7b6d2dc8d",
+            "a2274b0c8e724eba88ed9831e0fe657f",
+            "1d9bf139827846faaca37ba65aa026fc",
+            "58e128907c7c4270a06475bcbe214344",
+            "82d62370c96f4a63a54da01f895e194a",
+            "6e9ad03ead644bddbd57452191ec933e",
+            "d2667d11892849faafba2b44e977c0f7",
+            "d965cf7c3f3a42189cbfc933911a0247",
+            "8ae912d0878b4a37956c43fb76cbd2e5",
+            "d9d6aacd59ea4fcf9c0f4224b377c610",
+            "3d0ea474af934d64a2bbbdf0fdb32a02",
+            "1bb71e54cd95404b846d9cbe5d551ca4",
+            "c0cc07d05463491fa633ecbf841ee082",
+            "4433c936afb347899ef59e62b0fdd9a0",
+            "8ff7258417a34807bf11740040d7e54c",
+            "c4f756d6ef224ddbaaf3a04ef0470078",
+            "4d3773a2ea1344838abd5d565cc14763",
+            "106bdf51936f49efab22ca3fa22bb1a1",
+            "cdb174433a1d43a3bd5274791234bf0d",
+            "ca8fcb63cae84124b3536af2434dfcf1",
+            "52064c4ca7734cd9baea5a5d8e81a81a",
+            "b74dfb101dd84c97893a6ba875cfcba0",
+            "b5334febcbb248b5a1cce202a2de0b55",
+            "622af7e0cf1d405aa6c178009b72558e",
+            "bfde609fc1054a24b8c3756613cbfa2e",
+            "3af2179787e2482c852c6db649181967",
+            "0d01dd8ca27944839e51976b2e63c557",
+            "2fd6a0dc83f34fa695755bfdb12b62ae",
+            "2091a3dd510943b79d027917a1617112",
+            "9bcd8d062d554d66b110c399d9c0b625",
+            "e53dd3ed466a49c4ad12cf824a1e6ed3",
+            "2e3d634584694485a3dc805dd4e6bb71",
+            "731b73b798c440e8ae4428f118cf4b50",
+            "fe08f3f0bffc41c684745a6f3352c70a",
+            "862a622adef047479bf306e707f8362e",
+            "ab911180843344b7b9231fc356a1a829",
+            "07f41aeca3df4799a3c07f54ab61661f",
+            "4928e22f1f7541c7883d6bddbd6d1a49",
+            "0625bafcce584b17bda54af0054c69da",
+            "bad36731d291429ba9ac961539ff09a2",
+            "545ae88a21f44cdbbbf1832e6dac8152",
+            "e46782297fb4465e94e19a56e56f0dcf",
+            "6fbc5cb56b044b36b6ac6fa704a42509",
+            "ea5611dacff74566a5d536b61fce35b2",
+            "5522746482f845bca9a95e0a2224909e",
+            "ad81dd6ad47541a692b0802aba292c87",
+            "88972e62ec0c4b4bb33780ecaf4df32f",
+            "bd1f348e965244e89c2d53fb83da7934",
+            "15ed082c47c24ad2bf4a84ae85198b41",
+            "f5e16d6a057e44458ad68b354ff01eda",
+            "5a2f302420ac451ba2a0c967c7b80b8a",
+            "d988de00f6b34fb5b7edc6aacbf6ce24",
+            "dfa2352a7ec947e585caabea0b5378c0",
+            "f0a25dc24c19453ba9f3e84169914ed5",
+            "17e55c8a116546cfadd75932be36604c",
+            "9ef9e5e64a5546fda0b2f2ee360b063b",
+            "0f296de304ef4f2aab1c61d922220962",
+            "7c47a7b3bed64f7e94054764e8607b14",
+            "7e5e21fb8a7d4ebea7c71e9f655fe606",
+            "9fb1d2f72fda43e4a91e4cbb23426322",
+            "0cc181a9b3e04d658d0eefefaabecaf4",
+            "b320af0dc127481fb92415d2247a565a",
+            "2a6e76a13e5747c2888b73ff55361dea",
+            "2d3bfc8b4da94766a48e6bd84e3932b3",
+            "530114990c934b02b04ed88233a4cda3",
+            "2fbda58508c94503891ad1ab96445398",
+            "348fc0c1069a4430be11d2112f212080",
+            "0c134e301fe5481bbcd47eb35ff1ecd9",
+            "cda06210315d42f3b4909bdc14310e15",
+            "98131182118a4e0bbb0de266875c10ec",
+            "9ef52af34b6d4030b0ed2ad1006e2a05",
+            "c719f246dc254ba284b1975932eaedf9",
+            "b70eedcca7744a8dab61e3c5796e2072",
+            "3ccc25decd5b48e39bd101a6a526865e",
+            "904fb13e4c9a4290a95c7003770d0a32"
+          ]
+        },
+        "id": "nqWWnzQUhoki",
+        "outputId": "71988016-cb28-41b3-ea83-4400f135f481"
+      },
+      "execution_count": 40,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "INFO: GPU available: False, used: False\n",
+            "INFO:lightning.pytorch.utilities.rank_zero:GPU available: False, used: False\n",
+            "INFO: TPU available: False, using: 0 TPU cores\n",
+            "INFO:lightning.pytorch.utilities.rank_zero:TPU available: False, using: 0 TPU cores\n",
+            "INFO: HPU available: False, using: 0 HPUs\n",
+            "INFO:lightning.pytorch.utilities.rank_zero:HPU available: False, using: 0 HPUs\n",
+            "INFO: \n",
+            "  | Name  | Type              | Params | Mode \n",
+            "----------------------------------------------------\n",
+            "0 | model | MEGNet            | 189 K  | train\n",
+            "1 | mae   | MeanAbsoluteError | 0      | train\n",
+            "2 | rmse  | MeanSquaredError  | 0      | train\n",
+            "----------------------------------------------------\n",
+            "189 K     Trainable params\n",
+            "100       Non-trainable params\n",
+            "189 K     Total params\n",
+            "0.758     Total estimated model params size (MB)\n",
+            "109       Modules in train mode\n",
+            "0         Modules in eval mode\n",
+            "INFO:lightning.pytorch.callbacks.model_summary:\n",
+            "  | Name  | Type              | Params | Mode \n",
+            "----------------------------------------------------\n",
+            "0 | model | MEGNet            | 189 K  | train\n",
+            "1 | mae   | MeanAbsoluteError | 0      | train\n",
+            "2 | rmse  | MeanSquaredError  | 0      | train\n",
+            "----------------------------------------------------\n",
+            "189 K     Trainable params\n",
+            "100       Non-trainable params\n",
+            "189 K     Total params\n",
+            "0.758     Total estimated model params size (MB)\n",
+            "109       Modules in train mode\n",
+            "0         Modules in eval mode\n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Sanity Checking: |          | 0/? [00:00<?, ?it/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "768ce9da55994740bd19d449bd0880db"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Training: |          | 0/? [00:00<?, ?it/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "d9d6aacd59ea4fcf9c0f4224b377c610"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Validation: |          | 0/? [00:00<?, ?it/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "52064c4ca7734cd9baea5a5d8e81a81a"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Validation: |          | 0/? [00:00<?, ?it/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "2e3d634584694485a3dc805dd4e6bb71"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Validation: |          | 0/? [00:00<?, ?it/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "6fbc5cb56b044b36b6ac6fa704a42509"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Validation: |          | 0/? [00:00<?, ?it/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "f0a25dc24c19453ba9f3e84169914ed5"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "Validation: |          | 0/? [00:00<?, ?it/s]"
+            ],
+            "application/vnd.jupyter.widget-view+json": {
+              "version_major": 2,
+              "version_minor": 0,
+              "model_id": "530114990c934b02b04ed88233a4cda3"
+            }
+          },
+          "metadata": {}
+        },
+        {
+          "output_type": "stream",
+          "name": "stderr",
+          "text": [
+            "INFO: `Trainer.fit` stopped: `max_epochs=5` reached.\n",
+            "INFO:lightning.pytorch.utilities.rank_zero:`Trainer.fit` stopped: `max_epochs=5` reached.\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "metrics = pd.read_csv(\"logged/MEGNet_training/version_0/metrics.csv\")\n",
+        "metrics[\"train_MAE\"].dropna().plot()\n",
+        "metrics[\"val_MAE\"].dropna().plot()\n",
+        "\n",
+        "_ = plt.legend()\n",
+        "#plt.savefig(\"loss.jpg\")"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 430
+        },
+        "id": "x2mTOHAGhqvE",
+        "outputId": "252e83de-6b95-4b75-ac17-cbc96a04a0cf"
+      },
+      "execution_count": 41,
+      "outputs": [
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "<Figure size 640x480 with 1 Axes>"
+            ],
+            "image/png": "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0/yjvLw8ffnll0pPT6+yLzw8XCkpKR4XFm/evFlt27b12O6++26v1u8wtb1B3yLFxcUKDw9XUVGRwsLCGrocAMANuHr1qo4ePapOnTopJCSkoctBHavp77e279+cuQEAAFYh3AAAYLkJEyZUedZM5TZhwoSGLq/OcUExAACWmzdvnqZNm1btPhsvzyDcAABguTZt2qhNmzYNXUa94WMpAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAOAjOnbsqIULFzZ0GY0e4QYAAAt17NhRDodDq1evrrKvW7ducjgcWr58eZV9WVlZ8vf31/z586vsW758uRwOR5WtsX0NBuEGAABLxcTEaNmyZR5tn3/+uVwul5o2bVrtmOzsbP3qV79SdnZ2tfvDwsJ05swZj+348eN1XvutINwAAHyfMVLppYbZavn90++8846io6NVUVHh0T548GCNHTtWX3/9tQYPHqyoqCg1a9ZMffr00UcffXRLy5KZmalt27bp5MmT7rbs7GxlZmZW+43f27Zt05UrVzRv3jwVFxdrx44dVfo4HA45nU6PLSoq6pbqrGs8oRgA4PvKLksvRzfMsZ87LQVVfxbkH/385z/X5MmT9fHHHyslJUWSdP78eW3evFmbNm3SxYsX9cADD+ill15ScHCwVqxYoUGDBunIkSOKjY29qdKioqKUlpam3//+95o1a5YuX76sNWvWaNu2bVqxYkWV/kuXLlVGRoYCAwOVkZGhpUuXql+/fjd17IbEmRsAAOpBixYtdP/992vVqlXutnXr1qlVq1a699571bNnTz3xxBPq3r274uLi9OKLL6pz58768MMPb+m4Y8eO1fLly2WM0bp169S5c2clJCRU6VdcXKx169Zp+PDhkqThw4frD3/4gy5evOjRr6ioqMqXb95///23VGNd48wNAMD3BTb5/gxKQx27ljIzM/X444/rrbfeUnBwsFauXKnHHntMfn5+unjxon79619r48aNOnPmjK5du6YrV67oxIkTt1TewIED9cQTT+iTTz5Rdna2xo4dW22/9957T507d1bPnj0lSQkJCerQoYPWrFmjcePGufs1b95ce/fu9RgbGhp6SzXWNcINAMD3ORy1+miooQ0aNEjGGG3cuFF9+vTR9u3b9dprr0mSpk2bpi1btmjBggXq0qWLQkNDNXToUJWWlt7S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X1sjff9R1H333ae0tDTNnz/ffSx/f/9aha5K3C0FAIDvqe37t1cuKJaklStXatKkSUpJSZGfn5/S09P1+uuvu/eXlZXpyJEjunz5srvttddec/ctKSlRWlqa3nrrLff+devW6ezZs3r33Xf17rvvuts7dOigY8eOeWsqAADAh3jtzE1jxpkbAAB8T4M+5wYAAKChEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKsQbgAAgFUINwAAwCqEGwAAYBXCDQAAsArhBgAAWIVwAwAArEK4AQAAViHcAAAAqxBuAACAVQg3AADAKoQbAABgFcINAACwCuEGAABYhXADAACsQrgBAABWIdwAAACrEG4AAIBVCDcAAMAqhBsAAGAVwg0AALAK4QYAAFiFcAMAAKxCuAEAAFYh3AAAAKt4LdycP39emZmZCgsLU0REhMaNG6eLFy/WOObq1auaOHGiWrZsqWbNmik9PV35+fnV9v3222/Vvn17ORwOFRYWemEGAADAF3kt3GRmZurAgQPasmWLNmzYoE8++UTjx4+vccwvf/lL/fGPf9TatWu1bds2nT59Wo888ki1fceNG6ef/OQn3igdAAD4MIcxxtT1ix46dEh33XWXdu/erd69e0uSNm/erAceeEDffPONoqOjq4wpKipS69attWrVKg0dOlSSdPjwYXXt2lW5ubnq27evu+/bb7+tNWvWaM6cOUpJSdF3332niIiIWtdXXFys8PBwFRUVKSws7NYmCwAA6kVt37+9cuYmNzdXERER7mAjSampqfLz89POnTurHZOXl6eysjKlpqa62+Lj4xUbG6vc3Fx328GDBzVv3jytWLFCfn61K7+kpETFxcUeGwAAsJNXwo3L5VKbNm082gICAhQZGSmXy3XdMUFBQVXOwERFRbnHlJSUKCMjQ/Pnz1dsbGyt68nKylJ4eLh7i4mJubEJAQAAn3FD4WbGjBlyOBw1bocPH/ZW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\n"
+          },
+          "metadata": {}
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "metrics"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 383
+        },
+        "id": "qZ0XV5e2jYXR",
+        "outputId": "ce1b9f10-d929-4db9-ace9-4c2801731f3b"
+      },
+      "execution_count": 42,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "   epoch  step  train_MAE  train_RMSE  train_Total_Loss  val_MAE  val_RMSE  \\\n",
+              "0      0   140        NaN         NaN               NaN      NaN       NaN   \n",
+              "1      0   140        NaN         NaN               NaN      NaN       NaN   \n",
+              "2      1   281        NaN         NaN               NaN      NaN       NaN   \n",
+              "3      1   281        NaN         NaN               NaN      NaN       NaN   \n",
+              "4      2   422        NaN         NaN               NaN      NaN       NaN   \n",
+              "5      2   422        NaN         NaN               NaN      NaN       NaN   \n",
+              "6      3   563        NaN         NaN               NaN      NaN       NaN   \n",
+              "7      3   563        NaN         NaN               NaN      NaN       NaN   \n",
+              "8      4   704        NaN         NaN               NaN      NaN       NaN   \n",
+              "9      4   704        NaN         NaN               NaN      NaN       NaN   \n",
+              "\n",
+              "   val_Total_Loss  \n",
+              "0             NaN  \n",
+              "1             NaN  \n",
+              "2             NaN  \n",
+              "3             NaN  \n",
+              "4             NaN  \n",
+              "5             NaN  \n",
+              "6             NaN  \n",
+              "7             NaN  \n",
+              "8             NaN  \n",
+              "9             NaN  "
+            ],
+            "text/html": [
+              "\n",
+              "  <div id=\"df-3f3f3a66-fe27-47d9-8a3b-a4d6fae45b02\" class=\"colab-df-container\">\n",
+              "    <div>\n",
+              "<style scoped>\n",
+              "    .dataframe tbody tr th:only-of-type {\n",
+              "        vertical-align: middle;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe tbody tr th {\n",
+              "        vertical-align: top;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe thead th {\n",
+              "        text-align: right;\n",
+              "    }\n",
+              "</style>\n",
+              "<table border=\"1\" class=\"dataframe\">\n",
+              "  <thead>\n",
+              "    <tr style=\"text-align: right;\">\n",
+              "      <th></th>\n",
+              "      <th>epoch</th>\n",
+              "      <th>step</th>\n",
+              "      <th>train_MAE</th>\n",
+              "      <th>train_RMSE</th>\n",
+              "      <th>train_Total_Loss</th>\n",
+              "      <th>val_MAE</th>\n",
+              "      <th>val_RMSE</th>\n",
+              "      <th>val_Total_Loss</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>0</td>\n",
+              "      <td>140</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>0</td>\n",
+              "      <td>140</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>1</td>\n",
+              "      <td>281</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>3</th>\n",
+              "      <td>1</td>\n",
+              "      <td>281</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>4</th>\n",
+              "      <td>2</td>\n",
+              "      <td>422</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>5</th>\n",
+              "      <td>2</td>\n",
+              "      <td>422</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>6</th>\n",
+              "      <td>3</td>\n",
+              "      <td>563</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>7</th>\n",
+              "      <td>3</td>\n",
+              "      <td>563</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>8</th>\n",
+              "      <td>4</td>\n",
+              "      <td>704</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>9</th>\n",
+              "      <td>4</td>\n",
+              "      <td>704</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "</div>\n",
+              "    <div class=\"colab-df-buttons\">\n",
+              "\n",
+              "  <div class=\"colab-df-container\">\n",
+              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3f3f3a66-fe27-47d9-8a3b-a4d6fae45b02')\"\n",
+              "            title=\"Convert this dataframe to an interactive table.\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
+              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
+              "  </svg>\n",
+              "    </button>\n",
+              "\n",
+              "  <style>\n",
+              "    .colab-df-container {\n",
+              "      display:flex;\n",
+              "      gap: 12px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert {\n",
+              "      background-color: #E8F0FE;\n",
+              "      border: none;\n",
+              "      border-radius: 50%;\n",
+              "      cursor: pointer;\n",
+              "      display: none;\n",
+              "      fill: #1967D2;\n",
+              "      height: 32px;\n",
+              "      padding: 0 0 0 0;\n",
+              "      width: 32px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert:hover {\n",
+              "      background-color: #E2EBFA;\n",
+              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "      fill: #174EA6;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-buttons div {\n",
+              "      margin-bottom: 4px;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert {\n",
+              "      background-color: #3B4455;\n",
+              "      fill: #D2E3FC;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert:hover {\n",
+              "      background-color: #434B5C;\n",
+              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
+              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
+              "      fill: #FFFFFF;\n",
+              "    }\n",
+              "  </style>\n",
+              "\n",
+              "    <script>\n",
+              "      const buttonEl =\n",
+              "        document.querySelector('#df-3f3f3a66-fe27-47d9-8a3b-a4d6fae45b02 button.colab-df-convert');\n",
+              "      buttonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "\n",
+              "      async function convertToInteractive(key) {\n",
+              "        const element = document.querySelector('#df-3f3f3a66-fe27-47d9-8a3b-a4d6fae45b02');\n",
+              "        const dataTable =\n",
+              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
+              "                                                    [key], {});\n",
+              "        if (!dataTable) return;\n",
+              "\n",
+              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
+              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
+              "          + ' to learn more about interactive tables.';\n",
+              "        element.innerHTML = '';\n",
+              "        dataTable['output_type'] = 'display_data';\n",
+              "        await google.colab.output.renderOutput(dataTable, element);\n",
+              "        const docLink = document.createElement('div');\n",
+              "        docLink.innerHTML = docLinkHtml;\n",
+              "        element.appendChild(docLink);\n",
+              "      }\n",
+              "    </script>\n",
+              "  </div>\n",
+              "\n",
+              "\n",
+              "<div id=\"df-87ed75c9-b3bc-43d0-a0ee-4bc56bb39170\">\n",
+              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-87ed75c9-b3bc-43d0-a0ee-4bc56bb39170')\"\n",
+              "            title=\"Suggest charts\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
+              "     width=\"24px\">\n",
+              "    <g>\n",
+              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
+              "    </g>\n",
+              "</svg>\n",
+              "  </button>\n",
+              "\n",
+              "<style>\n",
+              "  .colab-df-quickchart {\n",
+              "      --bg-color: #E8F0FE;\n",
+              "      --fill-color: #1967D2;\n",
+              "      --hover-bg-color: #E2EBFA;\n",
+              "      --hover-fill-color: #174EA6;\n",
+              "      --disabled-fill-color: #AAA;\n",
+              "      --disabled-bg-color: #DDD;\n",
+              "  }\n",
+              "\n",
+              "  [theme=dark] .colab-df-quickchart {\n",
+              "      --bg-color: #3B4455;\n",
+              "      --fill-color: #D2E3FC;\n",
+              "      --hover-bg-color: #434B5C;\n",
+              "      --hover-fill-color: #FFFFFF;\n",
+              "      --disabled-bg-color: #3B4455;\n",
+              "      --disabled-fill-color: #666;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart {\n",
+              "    background-color: var(--bg-color);\n",
+              "    border: none;\n",
+              "    border-radius: 50%;\n",
+              "    cursor: pointer;\n",
+              "    display: none;\n",
+              "    fill: var(--fill-color);\n",
+              "    height: 32px;\n",
+              "    padding: 0;\n",
+              "    width: 32px;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart:hover {\n",
+              "    background-color: var(--hover-bg-color);\n",
+              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "    fill: var(--button-hover-fill-color);\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart-complete:disabled,\n",
+              "  .colab-df-quickchart-complete:disabled:hover {\n",
+              "    background-color: var(--disabled-bg-color);\n",
+              "    fill: var(--disabled-fill-color);\n",
+              "    box-shadow: none;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-spinner {\n",
+              "    border: 2px solid var(--fill-color);\n",
+              "    border-color: transparent;\n",
+              "    border-bottom-color: var(--fill-color);\n",
+              "    animation:\n",
+              "      spin 1s steps(1) infinite;\n",
+              "  }\n",
+              "\n",
+              "  @keyframes spin {\n",
+              "    0% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "      border-left-color: var(--fill-color);\n",
+              "    }\n",
+              "    20% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    30% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    40% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    60% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    80% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "    90% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "  }\n",
+              "</style>\n",
+              "\n",
+              "  <script>\n",
+              "    async function quickchart(key) {\n",
+              "      const quickchartButtonEl =\n",
+              "        document.querySelector('#' + key + ' button');\n",
+              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
+              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
+              "      try {\n",
+              "        const charts = await google.colab.kernel.invokeFunction(\n",
+              "            'suggestCharts', [key], {});\n",
+              "      } catch (error) {\n",
+              "        console.error('Error during call to suggestCharts:', error);\n",
+              "      }\n",
+              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
+              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
+              "    }\n",
+              "    (() => {\n",
+              "      let quickchartButtonEl =\n",
+              "        document.querySelector('#df-87ed75c9-b3bc-43d0-a0ee-4bc56bb39170 button');\n",
+              "      quickchartButtonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "    })();\n",
+              "  </script>\n",
+              "</div>\n",
+              "\n",
+              "  <div id=\"id_b784e831-0f56-432a-aa7e-2249f5c19941\">\n",
+              "    <style>\n",
+              "      .colab-df-generate {\n",
+              "        background-color: #E8F0FE;\n",
+              "        border: none;\n",
+              "        border-radius: 50%;\n",
+              "        cursor: pointer;\n",
+              "        display: none;\n",
+              "        fill: #1967D2;\n",
+              "        height: 32px;\n",
+              "        padding: 0 0 0 0;\n",
+              "        width: 32px;\n",
+              "      }\n",
+              "\n",
+              "      .colab-df-generate:hover {\n",
+              "        background-color: #E2EBFA;\n",
+              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "        fill: #174EA6;\n",
+              "      }\n",
+              "\n",
+              "      [theme=dark] .colab-df-generate {\n",
+              "        background-color: #3B4455;\n",
+              "        fill: #D2E3FC;\n",
+              "      }\n",
+              "\n",
+              "      [theme=dark] .colab-df-generate:hover {\n",
+              "        background-color: #434B5C;\n",
+              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
+              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
+              "        fill: #FFFFFF;\n",
+              "      }\n",
+              "    </style>\n",
+              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('metrics')\"\n",
+              "            title=\"Generate code using this dataframe.\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
+              "       width=\"24px\">\n",
+              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
+              "  </svg>\n",
+              "    </button>\n",
+              "    <script>\n",
+              "      (() => {\n",
+              "      const buttonEl =\n",
+              "        document.querySelector('#id_b784e831-0f56-432a-aa7e-2249f5c19941 button.colab-df-generate');\n",
+              "      buttonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "\n",
+              "      buttonEl.onclick = () => {\n",
+              "        google.colab.notebook.generateWithVariable('metrics');\n",
+              "      }\n",
+              "      })();\n",
+              "    </script>\n",
+              "  </div>\n",
+              "\n",
+              "    </div>\n",
+              "  </div>\n"
+            ],
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "dataframe",
+              "variable_name": "metrics",
+              "summary": "{\n  \"name\": \"metrics\",\n  \"rows\": 10,\n  \"fields\": [\n    {\n      \"column\": \"epoch\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1,\n        \"min\": 0,\n        \"max\": 4,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          1,\n          4,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"step\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 210,\n        \"min\": 140,\n        \"max\": 704,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          281,\n          704,\n          422\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"train_MAE\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": null,\n        \"max\": null,\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"train_RMSE\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": null,\n        \"max\": null,\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"train_Total_Loss\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": null,\n        \"max\": null,\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"val_MAE\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": null,\n        \"max\": null,\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"val_RMSE\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": null,\n        \"max\": null,\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"val_Total_Loss\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": null,\n        \"max\": null,\n        \"num_unique_values\": 0,\n        \"samples\": [],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
+            }
+          },
+          "metadata": {},
+          "execution_count": 42
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "i=0\n",
+        "prediction=np.zeros(len(test_data))\n",
+        "for i in range(len(structures_test)):\n",
+        "    prediction[i]=model.predict_structure(structures_test[i])"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 233
+        },
+        "id": "XUzf_WX5jZb5",
+        "outputId": "be203ece-03f9-43e1-d66d-3f2213753479"
+      },
+      "execution_count": 43,
+      "outputs": [
+        {
+          "output_type": "error",
+          "ename": "NameError",
+          "evalue": "name 'structures_test' is not defined",
+          "traceback": [
+            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+            "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
+            "\u001b[0;32m<ipython-input-43-2431dbd08dbf>\u001b[0m in \u001b[0;36m<cell line: 3>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0mprediction\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstructures_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      4\u001b[0m     \u001b[0mprediction\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict_structure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstructures_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+            "\u001b[0;31mNameError\u001b[0m: name 'structures_test' is not defined"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [],
+      "metadata": {
+        "id": "txs3tg93kQfr"
+      },
+      "execution_count": null,
+      "outputs": []
+    }
+  ]
+}
\ No newline at end of file