aboutsummaryrefslogtreecommitdiff
path: root/docs/researchML.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'docs/researchML.ipynb')
-rw-r--r--docs/researchML.ipynb1953
1 files changed, 1953 insertions, 0 deletions
diff --git a/docs/researchML.ipynb b/docs/researchML.ipynb
new file mode 100644
index 00000000..2f120447
--- /dev/null
+++ b/docs/researchML.ipynb
@@ -0,0 +1,1953 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "researchML.ipynb",
+ "provenance": [],
+ "collapsed_sections": []
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "language_info": {
+ "name": "python"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "7aaf00f20d77493fadb2b6ad0b96cf74": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_4b92939e2d45451da2334595d97bd68d",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_12969beb96f7497181f7167e39c40bd0",
+ "IPY_MODEL_74a47efac60c4af396b9d1e1f282827f",
+ "IPY_MODEL_3d1920917c9947148a40db3bc30a4132"
+ ]
+ }
+ },
+ "4b92939e2d45451da2334595d97bd68d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "12969beb96f7497181f7167e39c40bd0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_d3ab8f1573e54fb49837c7675c8a237e",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": "",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_b84a67505e3c4030a3839cbe0b5a2d6d"
+ }
+ },
+ "74a47efac60c4af396b9d1e1f282827f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_9fa408a5efc84e64be85faca9e0701b4",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 9912422,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 9912422,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_3041321e29fc4fab892a3e6b3b5c9bbd"
+ }
+ },
+ "3d1920917c9947148a40db3bc30a4132": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_3ebefec2c2aa499a96c4644d7855cd7d",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 9913344/? [00:00<00:00, 23815934.67it/s]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_2fe247e330224176a25f48abca95cda2"
+ }
+ },
+ "d3ab8f1573e54fb49837c7675c8a237e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "b84a67505e3c4030a3839cbe0b5a2d6d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "9fa408a5efc84e64be85faca9e0701b4": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "3041321e29fc4fab892a3e6b3b5c9bbd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "3ebefec2c2aa499a96c4644d7855cd7d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "2fe247e330224176a25f48abca95cda2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "526a499287d146c7b3c429d3460c6736": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_692b9b0b9f16464eb0426266b5123a9c",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_cc94aeb409fd4393815cb855d952af12",
+ "IPY_MODEL_cef5db1a425b481ab21d898a22a73763",
+ "IPY_MODEL_13c1cd14c03248559d8b5a604269d800"
+ ]
+ }
+ },
+ "692b9b0b9f16464eb0426266b5123a9c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "cc94aeb409fd4393815cb855d952af12": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_bf19654df95e43289ed8071ad717045c",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": "",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_0597828f149d4901ba240137e35c5bf8"
+ }
+ },
+ "cef5db1a425b481ab21d898a22a73763": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_bd60eec9f2314e96ae5bde2cc2b5bd90",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 28881,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 28881,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_0daf5c329df64e39b169cc136ceafcfd"
+ }
+ },
+ "13c1cd14c03248559d8b5a604269d800": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_6b03227602be48588c11acd7c06e599f",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 29696/? [00:00<00:00, 409622.95it/s]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_2efd7ec451034ab8be703274233277ce"
+ }
+ },
+ "bf19654df95e43289ed8071ad717045c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "0597828f149d4901ba240137e35c5bf8": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "bd60eec9f2314e96ae5bde2cc2b5bd90": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "0daf5c329df64e39b169cc136ceafcfd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "6b03227602be48588c11acd7c06e599f": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "2efd7ec451034ab8be703274233277ce": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "b5eae176555e47b582757cd8543969d1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_73209e9211ac4b929f3c112500ebed41",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_752919f2449647039640f2b0cd2a1e40",
+ "IPY_MODEL_8e577096756c42fdb6d2d0aafc080610",
+ "IPY_MODEL_3c56e65e3c8c4bde81f72adc6eca04ce"
+ ]
+ }
+ },
+ "73209e9211ac4b929f3c112500ebed41": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "752919f2449647039640f2b0cd2a1e40": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_66b17d032f8741bbb482737603af5a15",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": "",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_f3938db95eee4a218798a65ed2a9ec5d"
+ }
+ },
+ "8e577096756c42fdb6d2d0aafc080610": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_b2a53beffd864607b83f9e21662f1aec",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 1648877,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 1648877,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_0280a38e8c6e4414b6fcde5e5f23b4f2"
+ }
+ },
+ "3c56e65e3c8c4bde81f72adc6eca04ce": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_856cc2055cce4a61be024950840a9e43",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 1649664/? [00:00<00:00, 3605986.00it/s]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_c75692c664d04f19990180f3aab5ba5f"
+ }
+ },
+ "66b17d032f8741bbb482737603af5a15": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "f3938db95eee4a218798a65ed2a9ec5d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "b2a53beffd864607b83f9e21662f1aec": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "0280a38e8c6e4414b6fcde5e5f23b4f2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "856cc2055cce4a61be024950840a9e43": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "c75692c664d04f19990180f3aab5ba5f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "e599af99f6cc4feeb0f3f20b61d59fc0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_06a8f00a70e44ffaafa9e8d6c851020e",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_b457e56a4a4a45578b0ab348b2be3a41",
+ "IPY_MODEL_c7cb67769284415b99735bb819bb575b",
+ "IPY_MODEL_2b926da18fd247b294fab2bf5c352238"
+ ]
+ }
+ },
+ "06a8f00a70e44ffaafa9e8d6c851020e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "b457e56a4a4a45578b0ab348b2be3a41": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_55aa50982905491eaa854d26cd7e79c9",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": "",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_cf701b836c794ddea46ba7242fe7125e"
+ }
+ },
+ "c7cb67769284415b99735bb819bb575b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_630ce4632ce346d5a24fc7e619fc8c4e",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 4542,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 4542,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_31fc6a8e3e8f42c08be70f8a8d6f72b3"
+ }
+ },
+ "2b926da18fd247b294fab2bf5c352238": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_fb030304a11345a4a88f618281ac1508",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "​",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 5120/? [00:00<00:00, 5472.09it/s]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_36f61cfa17944f54b74701c57e12b526"
+ }
+ },
+ "55aa50982905491eaa854d26cd7e79c9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "cf701b836c794ddea46ba7242fe7125e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "630ce4632ce346d5a24fc7e619fc8c4e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "31fc6a8e3e8f42c08be70f8a8d6f72b3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "fb030304a11345a4a88f618281ac1508": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "36f61cfa17944f54b74701c57e12b526": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ }
+ }
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "#TensorFlow vs PyTorch"
+ ],
+ "metadata": {
+ "id": "vQG0yG7VjgGE"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Dve najpopularnije biblioteke deep-learning-a zasnovane na Python-u su PyTorch i TensorFlow. Početniku koji se bavi mašinskim učenjem može biti teško da odluči koju od ove dve biblioteke će koristiti kada radi sa modelom deep-learning-a. Razliku je najbolje uočiti tako što će biti kreiran klasifikator koji koristi oba framework-a za rešavanje istog problema."
+ ],
+ "metadata": {
+ "id": "5wnwB9o0gs2L"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "MNIST je akronim za skup podataka The Modified National Institute of Standards and Technology. To je kolekcija od 60.000 malih kvadratnih slika u nijansama sive boje pisanih cifara (od 0 do 9). Cilj je klasifikovati sliku koja je pisana rukom u jednu od deset klasa koje predstavljaju celobrojne vrednosti u rasponu od 0 do 9."
+ ],
+ "metadata": {
+ "id": "HLVo2_kPi0Sg"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Ukratko o TensorFlow-u"
+ ],
+ "metadata": {
+ "id": "O9uIKVoGkG1b"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Google je razvio TensorFlow, koji je open source od 2015. godine. Razvio se iz Google-ovog internog softvera za mašinsko učenje, koji je refaktorisan i optimizovan za upotrebu u proizvodnji.\n",
+ "\n",
+ "Termin \"TensorFlow\" se odnosi na način na koji su podaci organizovani i obrađeni. Tenzor je najosnovnija struktura podataka u TensorFlow-u i PyTorch-u.\n",
+ "\n",
+ "TensorFlow je biblioteka za deep learning visokih performansi."
+ ],
+ "metadata": {
+ "id": "Hu-RncH-kKgz"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Ukratko o PyTorch-u"
+ ],
+ "metadata": {
+ "id": "kk_iv5_Pxt5o"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "PyTorch je jedan od najnovijih framework-a za deep learning, koji je razvio Facebook tim i objavljen na GitHub-u 2017. PyTorch dobija na popularnosti zbog svoje lakoće korišćenja, jednostavnosti i efikasnog korišćenja memorije. To je imperativ, što znači da se pokreće odmah, a korisnik može da ga testira da vidi da li radi pre nego što napiše ceo kod.\n",
+ "\n",
+ "Možemo napisati deo koda i pokrenuti ga u realnom vremenu jer ima ugrađenu Python implementaciju koja obezbeđuje kompatibilnost kao platforma za deep learning. Brzo je stekao popularnost zbog svog korisničkog interfejsa, što je navelo Tensorflow tim da ugradi svoje najpopularnije feature-e u Tensorflow 2.0."
+ ],
+ "metadata": {
+ "id": "y_zQUFxdx7XH"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Pravljenje deep learning modela za klasifikaciju slika"
+ ],
+ "metadata": {
+ "id": "cJpjDu_Vy33y"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "U daljem tekstu ćemo uporediti upotrebljivost koda i lakoću upotrebe TensorFlow-a i PyTorch-a na najčešće korišćenom skupu podataka MNIST za klasifikaciju rukom pisanih cifara. Koristeći oba okvira, proverićemo minimalne procedure koje treba sprovesti kako bismo imali odgovarajući model klasifikacije. U oba koraka modela koje treba preduzeti su učitavanje podataka, prethodna obrada, pravljenje modela, obuka i vizuelizacija rezultata. Za oba modela slojevi i konfiguracije hiperparametara su isti.\n",
+ "\n",
+ "Počećemo prvo sa TensorFlow-om."
+ ],
+ "metadata": {
+ "id": "0ayWMoHuzIuQ"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "####TensorFlow - Model building"
+ ],
+ "metadata": {
+ "id": "_vMOqp_Zjsv4"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Pravimo model konvolucione neuronske mreže za klasifikaciju slika u TensorFlow-u."
+ ],
+ "metadata": {
+ "id": "UM6BB4oj88C3"
+ }
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "hwAWAPoMjQhN"
+ },
+ "outputs": [],
+ "source": [
+ "import tensorflow as tf\n",
+ "from tensorflow.keras.datasets import mnist \n",
+ "from tensorflow.keras.utils import to_categorical\n",
+ "from tensorflow.keras.layers import Conv2D, Flatten, Dense, MaxPooling2D\n",
+ "from tensorflow.keras.models import Sequential\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Proveravamo verziju TensorFlow-a."
+ ],
+ "metadata": {
+ "id": "W9qjmDOX9WJM"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "#pip install --upgrade tensorflow\n",
+ "print(tensorflow.__version__)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "X0sojNoGlLJh",
+ "outputId": "9971bca4-15b5-4cef-b7b6-bb380c8523fe"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "2.8.0\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Učitavamo skup podataka mnist i pravimo training i test skupove:"
+ ],
+ "metadata": {
+ "id": "o1VR27929iWZ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "mnist = tf.keras.datasets.mnist\n",
+ "(x_train, y_train),(x_test, y_test) = mnist.load_data()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "Yk04SZJXsTeZ",
+ "outputId": "1f88f77e-fa4d-4238-b4a9-98deb2242f74"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n",
+ "11493376/11490434 [==============================] - 0s 0us/step\n",
+ "11501568/11490434 [==============================] - 0s 0us/step\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Takođe je neophodno da se srede ulazni podaci."
+ ],
+ "metadata": {
+ "id": "Tei7ILqu9t_O"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# reshaping and one hot encoding\n",
+ "x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)\n",
+ "x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)\n",
+ "y_train = to_categorical(y_train)\n",
+ "y_test = to_categorical(y_test)"
+ ],
+ "metadata": {
+ "id": "vxC2d4mfsez3"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# scaling\n",
+ "x_train = x_train.astype('float32')\n",
+ "x_test = x_test.astype('float32')\n",
+ "x_train = x_train / 255.0\n",
+ "x_test = x_test / 255.0"
+ ],
+ "metadata": {
+ "id": "fVHrrpMIsgTY"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "model = Sequential()\n",
+ "model.add(Conv2D(32, (3,3), input_shape = (28,28,1), activation='relu'))\n",
+ "model.add(Conv2D(64,(3,3), activation='relu'))\n",
+ "model.add(MaxPooling2D((2,2)))\n",
+ "model.add(Flatten())\n",
+ "model.add(Dense(1024, activation='relu'))\n",
+ "model.add(Dense(10, activation='softmax'))\n",
+ "# compile\n",
+ "model.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])"
+ ],
+ "metadata": {
+ "id": "UK3Mr-QPslnC"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# training \n",
+ "history = model.fit(x_train, y_train, validation_split=0.3, epochs=5)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "5g4Lj3_MspM8",
+ "outputId": "a0dfaa33-1d5b-4a60-e210-af127cd88dc9"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Epoch 1/5\n",
+ "1313/1313 [==============================] - 209s 158ms/step - loss: 0.4175 - accuracy: 0.8820 - val_loss: 0.2058 - val_accuracy: 0.9382\n",
+ "Epoch 2/5\n",
+ "1313/1313 [==============================] - 209s 159ms/step - loss: 0.1549 - accuracy: 0.9522 - val_loss: 0.1585 - val_accuracy: 0.9532\n",
+ "Epoch 3/5\n",
+ "1313/1313 [==============================] - 206s 157ms/step - loss: 0.1115 - accuracy: 0.9653 - val_loss: 0.1066 - val_accuracy: 0.9688\n",
+ "Epoch 4/5\n",
+ "1313/1313 [==============================] - 206s 157ms/step - loss: 0.0881 - accuracy: 0.9725 - val_loss: 0.1051 - val_accuracy: 0.9675\n",
+ "Epoch 5/5\n",
+ "1313/1313 [==============================] - 205s 156ms/step - loss: 0.0749 - accuracy: 0.9763 - val_loss: 0.0923 - val_accuracy: 0.9718\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "#### PyTorch - Model building"
+ ],
+ "metadata": {
+ "id": "aqZ7Nc5TxDm3"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Pravimo model konvolucione neuronske mreže za klasifikaciju slika u PyTorch-u."
+ ],
+ "metadata": {
+ "id": "x5sFtN51-vqI"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import torch\n",
+ "import torch.nn as nn\n",
+ "import torch.optim as optim\n",
+ "import torch.nn.functional as F\n",
+ "from torchvision import datasets, transforms"
+ ],
+ "metadata": {
+ "id": "Al-YoL-VxHYS"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Učitavanje i preprocesiranje podataka."
+ ],
+ "metadata": {
+ "id": "U9Tawkpb_umB"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# pre-processor\n",
+ "transform = transforms.Compose([\n",
+ " transforms.Resize((8, 8)),\n",
+ " transforms.ToTensor(),\n",
+ " transforms.Normalize((0.1307,), (0.3081,))])"
+ ],
+ "metadata": {
+ "id": "FNqQvbBrxU3s"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# load the data\n",
+ "train_dataset = datasets.MNIST(\n",
+ " 'data', train=True, download=True, transform=transform)\n",
+ "test_dataset = datasets.MNIST(\n",
+ " 'data', train=False, download=True, transform=transform)\n",
+ " \n",
+ "train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=512)\n",
+ "test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=512)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 436,
+ "referenced_widgets": [
+ "7aaf00f20d77493fadb2b6ad0b96cf74",
+ "4b92939e2d45451da2334595d97bd68d",
+ "12969beb96f7497181f7167e39c40bd0",
+ "74a47efac60c4af396b9d1e1f282827f",
+ "3d1920917c9947148a40db3bc30a4132",
+ "d3ab8f1573e54fb49837c7675c8a237e",
+ "b84a67505e3c4030a3839cbe0b5a2d6d",
+ "9fa408a5efc84e64be85faca9e0701b4",
+ "3041321e29fc4fab892a3e6b3b5c9bbd",
+ "3ebefec2c2aa499a96c4644d7855cd7d",
+ "2fe247e330224176a25f48abca95cda2",
+ "526a499287d146c7b3c429d3460c6736",
+ "692b9b0b9f16464eb0426266b5123a9c",
+ "cc94aeb409fd4393815cb855d952af12",
+ "cef5db1a425b481ab21d898a22a73763",
+ "13c1cd14c03248559d8b5a604269d800",
+ "bf19654df95e43289ed8071ad717045c",
+ "0597828f149d4901ba240137e35c5bf8",
+ "bd60eec9f2314e96ae5bde2cc2b5bd90",
+ "0daf5c329df64e39b169cc136ceafcfd",
+ "6b03227602be48588c11acd7c06e599f",
+ "2efd7ec451034ab8be703274233277ce",
+ "b5eae176555e47b582757cd8543969d1",
+ "73209e9211ac4b929f3c112500ebed41",
+ "752919f2449647039640f2b0cd2a1e40",
+ "8e577096756c42fdb6d2d0aafc080610",
+ "3c56e65e3c8c4bde81f72adc6eca04ce",
+ "66b17d032f8741bbb482737603af5a15",
+ "f3938db95eee4a218798a65ed2a9ec5d",
+ "b2a53beffd864607b83f9e21662f1aec",
+ "0280a38e8c6e4414b6fcde5e5f23b4f2",
+ "856cc2055cce4a61be024950840a9e43",
+ "c75692c664d04f19990180f3aab5ba5f",
+ "e599af99f6cc4feeb0f3f20b61d59fc0",
+ "06a8f00a70e44ffaafa9e8d6c851020e",
+ "b457e56a4a4a45578b0ab348b2be3a41",
+ "c7cb67769284415b99735bb819bb575b",
+ "2b926da18fd247b294fab2bf5c352238",
+ "55aa50982905491eaa854d26cd7e79c9",
+ "cf701b836c794ddea46ba7242fe7125e",
+ "630ce4632ce346d5a24fc7e619fc8c4e",
+ "31fc6a8e3e8f42c08be70f8a8d6f72b3",
+ "fb030304a11345a4a88f618281ac1508",
+ "36f61cfa17944f54b74701c57e12b526"
+ ]
+ },
+ "id": "SuSa2oifxaWN",
+ "outputId": "8223ab58-4a27-4bde-ba95-f6c9d78ed907"
+ },
+ "execution_count": null,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz\n",
+ "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz to data/MNIST/raw/train-images-idx3-ubyte.gz\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "7aaf00f20d77493fadb2b6ad0b96cf74",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ " 0%| | 0/9912422 [00:00<?, ?it/s]"
+ ]
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Extracting data/MNIST/raw/train-images-idx3-ubyte.gz to data/MNIST/raw\n",
+ "\n",
+ "Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz\n",
+ "Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz to data/MNIST/raw/train-labels-idx1-ubyte.gz\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "526a499287d146c7b3c429d3460c6736",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ " 0%| | 0/28881 [00:00<?, ?it/s]"
+ ]
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Extracting data/MNIST/raw/train-labels-idx1-ubyte.gz to data/MNIST/raw\n",
+ "\n",
+ "Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz\n",
+ "Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz to data/MNIST/raw/t10k-images-idx3-ubyte.gz\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "b5eae176555e47b582757cd8543969d1",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ " 0%| | 0/1648877 [00:00<?, ?it/s]"
+ ]
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Extracting data/MNIST/raw/t10k-images-idx3-ubyte.gz to data/MNIST/raw\n",
+ "\n",
+ "Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz\n",
+ "Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz to data/MNIST/raw/t10k-labels-idx1-ubyte.gz\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "e599af99f6cc4feeb0f3f20b61d59fc0",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ " 0%| | 0/4542 [00:00<?, ?it/s]"
+ ]
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Extracting data/MNIST/raw/t10k-labels-idx1-ubyte.gz to data/MNIST/raw\n",
+ "\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ ""
+ ],
+ "metadata": {
+ "id": "qhPhR1gB_2Hu"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Build a model\n",
+ "class CNNModel(nn.Module):\n",
+ " def __init__(self):\n",
+ " super(CNNModel, self).__init__()\n",
+ " self.conv1 = nn.Conv2d(1, 32, 3, 1)\n",
+ " self.conv2 = nn.Conv2d(32, 64, 3, 1)\n",
+ " self.fc = nn.Linear(1024, 10)\n",
+ " \n",
+ " def forward(self, x):\n",
+ " x = F.relu(self.conv1(x))\n",
+ " x = F.relu(self.conv2(x))\n",
+ " x = F.max_pool2d(x, 1)\n",
+ " x = torch.flatten(x, 1)\n",
+ " x = self.fc(x)\n",
+ " output = F.log_softmax(x, dim=1)\n",
+ " return output"
+ ],
+ "metadata": {
+ "id": "khflrhn9xgZy"
+ },
+ "execution_count": null,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "net = CNNModel()\n",
+ " \n",
+ "# compiling\n",
+ "optimizer = optim.SGD(net.parameters(), lr=0.01)\n",
+ "criterion = nn.CrossEntropyLoss()"
+ ],
+ "metadata": {
+ "id": "Yab4Lz95xlLR"
+ },
+ "execution_count": null,
+ "outputs": []
+ }
+ ]
+} \ No newline at end of file