Skip to content

Instantly share code, notes, and snippets.

@mauicv
Last active April 26, 2022 16:45
Show Gist options
  • Save mauicv/20263a3dd5746a17f89271bdad456830 to your computer and use it in GitHub Desktop.
Save mauicv/20263a3dd5746a17f89271bdad456830 to your computer and use it in GitHub Desktop.
MNIST-torch-similarity-explainer-example.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "MNIST-torch-similarity-explainer-example.ipynb",
"provenance": [],
"collapsed_sections": [],
"authorship_tag": "ABX9TyOenSOtBAeO9+w/p8D8oFIn",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"43fda35200654b49863ba51a6a90ba1a": {
"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_19b269ba7bdb47bfb4928558bd1aa8dc",
"IPY_MODEL_745b8527d6c84c029e30199cbdc3ae7e",
"IPY_MODEL_9dc9be2ad4d84eb9bace0dcb30a01d82"
],
"layout": "IPY_MODEL_ab54ee287a3048a68f1c7ab257ceaa65"
}
},
"19b269ba7bdb47bfb4928558bd1aa8dc": {
"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_81854d37b94a468fbe3faa4d3ebd76c5",
"placeholder": "​",
"style": "IPY_MODEL_76ecd6398f4843069c62f3521a87f671",
"value": ""
}
},
"745b8527d6c84c029e30199cbdc3ae7e": {
"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_794d6d82b462496b8a7bed29372357bf",
"max": 9912422,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_0dda201f416145acb9664e52e52514d0",
"value": 9912422
}
},
"9dc9be2ad4d84eb9bace0dcb30a01d82": {
"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_16b3b06f12db4200a165a4cb6cf563fa",
"placeholder": "​",
"style": "IPY_MODEL_fc4b04b01de94056a2b220d2f5bda6b6",
"value": " 9913344/? [00:00<00:00, 17651424.36it/s]"
}
},
"ab54ee287a3048a68f1c7ab257ceaa65": {
"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
}
},
"81854d37b94a468fbe3faa4d3ebd76c5": {
"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
}
},
"76ecd6398f4843069c62f3521a87f671": {
"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": ""
}
},
"794d6d82b462496b8a7bed29372357bf": {
"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
}
},
"0dda201f416145acb9664e52e52514d0": {
"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": ""
}
},
"16b3b06f12db4200a165a4cb6cf563fa": {
"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
}
},
"fc4b04b01de94056a2b220d2f5bda6b6": {
"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": ""
}
},
"b066b88b324449c1a23be1379a669399": {
"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_6bc3743757aa4c328861b79b2740b61e",
"IPY_MODEL_acf3e5a2252340be9664360dec6c865f",
"IPY_MODEL_0b9ded5cb9a84c38b5219c16799c3449"
],
"layout": "IPY_MODEL_8cc7c8a17ed642fab6ff7d085b529898"
}
},
"6bc3743757aa4c328861b79b2740b61e": {
"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_4ee423f0ec824ce4b3616da0614cbe8c",
"placeholder": "​",
"style": "IPY_MODEL_bfe48624ee90472faa1ecb62d0ec369d",
"value": ""
}
},
"acf3e5a2252340be9664360dec6c865f": {
"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_e6567b6a43c44435a16b4cf6085a8fc8",
"max": 28881,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_f1af79aa673d48dbaeab1b84fa85b8d8",
"value": 28881
}
},
"0b9ded5cb9a84c38b5219c16799c3449": {
"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_6ffa76ca541e4171a905b08da01503e8",
"placeholder": "​",
"style": "IPY_MODEL_1bc075739e2a42d388d866a440bc2e76",
"value": " 29696/? [00:00<00:00, 9220.07it/s]"
}
},
"8cc7c8a17ed642fab6ff7d085b529898": {
"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
}
},
"4ee423f0ec824ce4b3616da0614cbe8c": {
"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
}
},
"bfe48624ee90472faa1ecb62d0ec369d": {
"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": ""
}
},
"e6567b6a43c44435a16b4cf6085a8fc8": {
"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
}
},
"f1af79aa673d48dbaeab1b84fa85b8d8": {
"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": ""
}
},
"6ffa76ca541e4171a905b08da01503e8": {
"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
}
},
"1bc075739e2a42d388d866a440bc2e76": {
"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": ""
}
},
"c9d3a75802e24768b608257010263f8d": {
"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_9fd2bd73143046ad819ba31f40cbdef4",
"IPY_MODEL_1d31587a8f7e4fb5ba62537a62ee8a4d",
"IPY_MODEL_676991f905ba42869676c14836dd327a"
],
"layout": "IPY_MODEL_ab047279d2284c29a35536ebfa7922c8"
}
},
"9fd2bd73143046ad819ba31f40cbdef4": {
"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_e6c0813dc21e406fbe78a789228ac278",
"placeholder": "​",
"style": "IPY_MODEL_3324b85f6b25470ba521897ca87a2c4e",
"value": ""
}
},
"1d31587a8f7e4fb5ba62537a62ee8a4d": {
"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_ecf69a55dacf4f6ab7d64d11a60ad634",
"max": 1648877,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_b42cf738c74e4620913dd60fbf060752",
"value": 1648877
}
},
"676991f905ba42869676c14836dd327a": {
"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_5f418e4faa8d43fb939581df5e3903ce",
"placeholder": "​",
"style": "IPY_MODEL_ebad4d5c43cf4822b0d2eb71eaf356b4",
"value": " 1649664/? [00:00<00:00, 3503030.68it/s]"
}
},
"ab047279d2284c29a35536ebfa7922c8": {
"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
}
},
"e6c0813dc21e406fbe78a789228ac278": {
"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
}
},
"3324b85f6b25470ba521897ca87a2c4e": {
"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": ""
}
},
"ecf69a55dacf4f6ab7d64d11a60ad634": {
"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
}
},
"b42cf738c74e4620913dd60fbf060752": {
"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": ""
}
},
"5f418e4faa8d43fb939581df5e3903ce": {
"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
}
},
"ebad4d5c43cf4822b0d2eb71eaf356b4": {
"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": ""
}
},
"151f103d468b4ae38fdb3f4d345f2e81": {
"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_d9c76aeec2e349f9acd30cdb36d19e8a",
"IPY_MODEL_a74ba9d771c8480f861827935c046f46",
"IPY_MODEL_91583303e41c4eba95f9a79254da1fc3"
],
"layout": "IPY_MODEL_c66f105ff8d8408bb1db74545115eb1f"
}
},
"d9c76aeec2e349f9acd30cdb36d19e8a": {
"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_8b9718bd433d4b9db415ab75021f6ca6",
"placeholder": "​",
"style": "IPY_MODEL_e391301702aa4aa28c8ded412bcf4bad",
"value": ""
}
},
"a74ba9d771c8480f861827935c046f46": {
"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_250f936398f64197a3a1110cbb73c0b6",
"max": 4542,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_9c464ac1e65d46f8964fc4e76eadf95a",
"value": 4542
}
},
"91583303e41c4eba95f9a79254da1fc3": {
"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_48419d2615b74e0580b139fccf884382",
"placeholder": "​",
"style": "IPY_MODEL_fb550b4434c54198b1915dd868771ed6",
"value": " 5120/? [00:00<00:00, 5194.02it/s]"
}
},
"c66f105ff8d8408bb1db74545115eb1f": {
"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
}
},
"8b9718bd433d4b9db415ab75021f6ca6": {
"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
}
},
"e391301702aa4aa28c8ded412bcf4bad": {
"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": ""
}
},
"250f936398f64197a3a1110cbb73c0b6": {
"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
}
},
"9c464ac1e65d46f8964fc4e76eadf95a": {
"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": ""
}
},
"48419d2615b74e0580b139fccf884382": {
"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
}
},
"fb550b4434c54198b1915dd868771ed6": {
"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": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/mauicv/20263a3dd5746a17f89271bdad456830/mnist-torch-similarity-explainer-example.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"source": [
"# Check if running on colab\n",
"try:\n",
" import google.colab\n",
" IN_COLAB = True\n",
"except:\n",
" IN_COLAB = False\n",
"\n",
"# pip install specific PR\n",
"if IN_COLAB:\n",
" !pip install -q git+https://github.com/mauicv/alibi.git@bugfix/sim-method-batch-explainations"
],
"metadata": {
"id": "q2cMw8ryI_Bp",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "d7ec57c4-686c-4cb2-e5b6-6c3d0025cb83"
},
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[K |████████████████████████████████| 4.0 MB 5.5 MB/s \n",
"\u001b[K |████████████████████████████████| 28.0 MB 8.7 MB/s \n",
"\u001b[K |████████████████████████████████| 462 kB 45.6 MB/s \n",
"\u001b[K |████████████████████████████████| 6.6 MB 33.3 MB/s \n",
"\u001b[K |████████████████████████████████| 77 kB 5.9 MB/s \n",
"\u001b[K |████████████████████████████████| 895 kB 60.0 MB/s \n",
"\u001b[K |████████████████████████████████| 596 kB 42.7 MB/s \n",
"\u001b[?25h Building wheel for alibi (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Building wheel for spacy-lookups-data (setup.py) ... \u001b[?25l\u001b[?25hdone\n"
]
}
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "OoCmI8vW7Ah-",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 423,
"referenced_widgets": [
"43fda35200654b49863ba51a6a90ba1a",
"19b269ba7bdb47bfb4928558bd1aa8dc",
"745b8527d6c84c029e30199cbdc3ae7e",
"9dc9be2ad4d84eb9bace0dcb30a01d82",
"ab54ee287a3048a68f1c7ab257ceaa65",
"81854d37b94a468fbe3faa4d3ebd76c5",
"76ecd6398f4843069c62f3521a87f671",
"794d6d82b462496b8a7bed29372357bf",
"0dda201f416145acb9664e52e52514d0",
"16b3b06f12db4200a165a4cb6cf563fa",
"fc4b04b01de94056a2b220d2f5bda6b6",
"b066b88b324449c1a23be1379a669399",
"6bc3743757aa4c328861b79b2740b61e",
"acf3e5a2252340be9664360dec6c865f",
"0b9ded5cb9a84c38b5219c16799c3449",
"8cc7c8a17ed642fab6ff7d085b529898",
"4ee423f0ec824ce4b3616da0614cbe8c",
"bfe48624ee90472faa1ecb62d0ec369d",
"e6567b6a43c44435a16b4cf6085a8fc8",
"f1af79aa673d48dbaeab1b84fa85b8d8",
"6ffa76ca541e4171a905b08da01503e8",
"1bc075739e2a42d388d866a440bc2e76",
"c9d3a75802e24768b608257010263f8d",
"9fd2bd73143046ad819ba31f40cbdef4",
"1d31587a8f7e4fb5ba62537a62ee8a4d",
"676991f905ba42869676c14836dd327a",
"ab047279d2284c29a35536ebfa7922c8",
"e6c0813dc21e406fbe78a789228ac278",
"3324b85f6b25470ba521897ca87a2c4e",
"ecf69a55dacf4f6ab7d64d11a60ad634",
"b42cf738c74e4620913dd60fbf060752",
"5f418e4faa8d43fb939581df5e3903ce",
"ebad4d5c43cf4822b0d2eb71eaf356b4",
"151f103d468b4ae38fdb3f4d345f2e81",
"d9c76aeec2e349f9acd30cdb36d19e8a",
"a74ba9d771c8480f861827935c046f46",
"91583303e41c4eba95f9a79254da1fc3",
"c66f105ff8d8408bb1db74545115eb1f",
"8b9718bd433d4b9db415ab75021f6ca6",
"e391301702aa4aa28c8ded412bcf4bad",
"250f936398f64197a3a1110cbb73c0b6",
"9c464ac1e65d46f8964fc4e76eadf95a",
"48419d2615b74e0580b139fccf884382",
"fb550b4434c54198b1915dd868771ed6"
]
},
"outputId": "95624402-db4d-40d4-c255-65d04a710e5b"
},
"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": {
"text/plain": [
" 0%| | 0/9912422 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "43fda35200654b49863ba51a6a90ba1a"
}
},
"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": {
"text/plain": [
" 0%| | 0/28881 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "b066b88b324449c1a23be1379a669399"
}
},
"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": {
"text/plain": [
" 0%| | 0/1648877 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "c9d3a75802e24768b608257010263f8d"
}
},
"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": {
"text/plain": [
" 0%| | 0/4542 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "151f103d468b4ae38fdb3f4d345f2e81"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Extracting ./data/MNIST/raw/t10k-labels-idx1-ubyte.gz to ./data/MNIST/raw\n",
"\n"
]
}
],
"source": [
"import torch\n",
"import torchvision\n",
"import torchvision.transforms as transforms\n",
"\n",
"transform = transforms.Compose(\n",
" [transforms.ToTensor(),\n",
" torchvision.transforms.Normalize((0.1307,), (0.3081,))])\n",
"\n",
"batch_size = 64\n",
"\n",
"trainset = torchvision.datasets.MNIST(root='./data', train=True,\n",
" download=True, transform=transform)\n",
"trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size,\n",
" shuffle=True, num_workers=2)\n",
"\n",
"testset = torchvision.datasets.MNIST(root='./data', train=False,\n",
" download=True, transform=transform)\n",
"testloader = torch.utils.data.DataLoader(testset, batch_size=batch_size,\n",
" shuffle=False, num_workers=2)\n",
"\n",
"classes = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')\n"
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"def imshow(img):\n",
" # img = img / 2 + 0.5 # unnormalize\n",
" print(img.shape)\n",
" npimg = img.numpy()[0, :, :]\n",
" plt.imshow(npimg, cmap='gray',)\n",
" plt.show()\n"
],
"metadata": {
"id": "5_ldTNPGfofQ"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"\n",
"\n",
"class Net(nn.Module):\n",
" def __init__(self):\n",
" super().__init__()\n",
" self.conv1 = nn.Conv2d(1, 6, 5)\n",
" self.pool = nn.MaxPool2d(2, 2)\n",
" self.conv2 = nn.Conv2d(6, 16, 5)\n",
" self.fc1 = nn.Linear(256, 120)\n",
" self.fc2 = nn.Linear(120, 84)\n",
" self.fc3 = nn.Linear(84, 10)\n",
"\n",
" def forward(self, x):\n",
" x = self.pool(F.relu(self.conv1(x)))\n",
" x = self.pool(F.relu(self.conv2(x)))\n",
" x = torch.flatten(x, 1)\n",
" x = F.relu(self.fc1(x))\n",
" x = F.relu(self.fc2(x))\n",
" x = self.fc3(x)\n",
" return x\n",
"\n",
"\n",
"net = Net()"
],
"metadata": {
"id": "mLONx0b17dUy"
},
"execution_count": 4,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import torch.optim as optim\n",
"\n",
"criterion = nn.CrossEntropyLoss()\n",
"optimizer = optim.Adam(net.parameters(), lr=0.01)\n",
"\n",
"for epoch in range(2): # loop over the dataset multiple times\n",
"\n",
" running_loss = 0.0\n",
" for i, data in enumerate(trainloader, 0):\n",
" # get the inputs; data is a list of [inputs, labels]\n",
" inputs, labels = data\n",
"\n",
" # zero the parameter gradients\n",
" optimizer.zero_grad()\n",
"\n",
" # forward + backward + optimize\n",
" outputs = net(inputs)\n",
" loss = criterion(outputs, labels)\n",
" loss.backward()\n",
" optimizer.step()\n",
"\n",
" # print statistics\n",
" running_loss += loss.item()\n",
" if i % 100 == 99: # print every 2000 mini-batches\n",
" print(f'[{epoch + 1}, {i + 1:5d}] loss: {running_loss / 200:.3f}')\n",
" running_loss = 0.0\n",
"\n",
"print('Finished Training')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "4_Db-u-8fvBW",
"outputId": "ccf8ffa4-b8a6-4aa2-8789-ec934e9627c0"
},
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[1, 100] loss: 0.323\n",
"[1, 200] loss: 0.098\n",
"[1, 300] loss: 0.088\n",
"[1, 400] loss: 0.070\n",
"[1, 500] loss: 0.067\n",
"[1, 600] loss: 0.059\n",
"[1, 700] loss: 0.060\n",
"[1, 800] loss: 0.067\n",
"[1, 900] loss: 0.056\n",
"[2, 100] loss: 0.049\n",
"[2, 200] loss: 0.048\n",
"[2, 300] loss: 0.044\n",
"[2, 400] loss: 0.056\n",
"[2, 500] loss: 0.055\n",
"[2, 600] loss: 0.040\n",
"[2, 700] loss: 0.053\n",
"[2, 800] loss: 0.045\n",
"[2, 900] loss: 0.048\n",
"Finished Training\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"correct = 0\n",
"total = 0\n",
"with torch.no_grad():\n",
" for data in testloader:\n",
" images, labels = data\n",
" outputs = net(images)\n",
" _, predicted = torch.max(outputs.data, 1)\n",
" total += labels.size(0)\n",
" correct += (predicted == labels).sum().item()\n",
"\n",
"print(f'Accuracy of the network on the 10000 test images: {100 * correct // total} %')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "mIExVZ85hEAm",
"outputId": "28d41b30-6124-47e4-f1f5-98fd9f9e5ace"
},
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Accuracy of the network on the 10000 test images: 97 %\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from alibi.explainers.similarity.grad import GradientSimilarity\n",
"\n",
"explainer = GradientSimilarity(predictor=net, loss_fn=criterion, precompute_grads=True, backend='pytorch', sim_fn='grad_cos')\n"
],
"metadata": {
"id": "amVuceirOz0N"
},
"execution_count": 7,
"outputs": []
},
{
"cell_type": "code",
"source": [
"X_train = np.zeros((1000, 1, 28, 28))\n",
"Y_train = np.zeros((1000, 1))\n",
"\n",
"data = list(iter(trainset))[0:1000]\n",
"X_train = np.array([x.detach().numpy() for x, _ in data[0:1000]])\n",
"Y_train = np.array([l for _, l in data[0:1000]])[:, None]\n"
],
"metadata": {
"id": "07V2Cwa-i5IQ"
},
"execution_count": 8,
"outputs": []
},
{
"cell_type": "code",
"source": [
"explainer.fit(X_train=X_train.astype(np.float32), Y_train=Y_train[:, 0].astype(np.int))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2zYODGXziv9I",
"outputId": "25dc7067-7156-4f08-a15a-eb01b3832a8f"
},
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:1: DeprecationWarning: `np.int` is a deprecated alias for the builtin `int`. To silence this warning, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.\n",
"Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
" \"\"\"Entry point for launching an IPython kernel.\n"
]
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"GradientSimilarity(meta={\n",
" 'name': 'GradientSimilarity',\n",
" 'type': ['whitebox'],\n",
" 'explanations': ['local'],\n",
" 'params': {\n",
" 'sim_fn_name': 'grad_cos',\n",
" 'store_grads': True,\n",
" 'backend_name': 'pytorch',\n",
" 'task_name': 'classification'}\n",
" ,\n",
" 'version': '0.6.6dev'}\n",
")"
]
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "code",
"source": [
"from random import randint\n",
"ind = randint(0, 1000)\n",
"X = X_train[ind: ind + 2]\n",
"explanation = explainer.explain(X)"
],
"metadata": {
"id": "c0wX8TXvmeDc"
},
"execution_count": 19,
"outputs": []
},
{
"cell_type": "code",
"source": [
"plt.imshow(X[0, 0], cmap='gray',)\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "tRIV6a-kuKVc",
"outputId": "c3d76d29-84e1-46a0-d810-6f22da346865"
},
"execution_count": 21,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"\n",
"def display_imgs(images):\n",
" fig, axes = plt.subplots(ncols=len(images), figsize=(10,10))\n",
"\n",
" for i in range(len(images)):\n",
" axes[i].imshow(images[i, 0, :, :], cmap='gray')"
],
"metadata": {
"id": "rDC28J_HGNAW"
},
"execution_count": 22,
"outputs": []
},
{
"cell_type": "code",
"source": [
"reordered_X_train = X_train[explanation.data['ordered_indices']]\n",
"images = reordered_X_train[0, 0: 5]\n",
"display_imgs(images)\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 163
},
"id": "9q2RZJPvrHfT",
"outputId": "663c2f25-64a9-4c7c-b6f4-a1803b02d774"
},
"execution_count": 27,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(5, 1, 28, 28)\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 720x720 with 5 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"images = reordered_X_train[0, -5:]\n",
"display_imgs(images)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 146
},
"id": "k3obLmLZrymJ",
"outputId": "8e271c57-88e6-4c28-a91e-fb5c8a46b150"
},
"execution_count": 28,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 720x720 with 5 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAACBCAYAAAAPH4TmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAVnElEQVR4nO3df9BVVb3H8c8SMbDIgas+oRL+CC0kw2CQCzc0B52QKbUxU0cFZYap1MTQfMIc0bCYTKaZspKEQY00/JFaTTJcRqGQ+HFR7yWJAI1RB0NRBgdEIdb9g9NyreVzDmef55x99lnn/Zpx+O6z9rP3Gr7PPiz3Wvu7jbVWAAAAqN5Bze4AAABAq2EABQAAkBEDKAAAgIwYQAEAAGTEAAoAACAjBlAAAAAZdWsAZYz5gjFmvTFmozGms16dQnOQz3SQy7SQz3SQy3SYWutAGWN6SPq7pLMkvSJplaSLrbUv1K97yAv5TAe5TAv5TAe5TMvB3fjZEZI2WmtflCRjzIOSzpVU9hfBGEPVziaz1poyTZnySS6br165LO1DPpuMazMdXJtpKZfP7kzhHS3pZW/7ldJnAWPMZGPMamPM6m6cC413wHySy5bBtZkWrs10cG0mpDt3oKpirZ0tabbESLrVkcu0kM90kMu0kM/W0J07UK9KGuBtH1P6DK2JfKaDXKaFfKaDXCakOwOoVZIGGWOOM8YcIukiSU/Up1toAvKZDnKZFvKZDnKZkJqn8Ky1e40xV0taKKmHpLnW2r/WrWfIFflMB7lMC/lMB7lMS81lDGo6GXO5TVfh6ZBMyGXz1SuXEvksAq7NdHBtpqURT+EBAAC0JQZQAAAAGTGAAgAAyIgBFAAAQEYMoAAAADJiAAUAAJBRw1/lAgBAtfr16xdsjx8/3sUjRowI2i6++OKyP+eX6Nm9e3fQNmPGDBfPmjUraHv33Xcz9hjtijtQAAAAGTGAAgAAyIhK5G2GasfpoNrx++bMmRNsX3HFFTUdZ9myZS6++eabg7ann366pmNWq52vzSlTprj4a1/7WtA2cOBAF/fs2bPsMYwJ//qq/bftlFNOCbZfeOGFqn6uEq7NtFCJHAAAoE4YQAEAAGTEAAoAACAjyhigbZxxxhkuvuWWW8q2xeK1FWie888/38UTJ0508Re/+MVgP3/9y/PPPx+0xY+0+0aPHu3i+fPnB21Dhw518euvv15dh1GVjo4OF3/sYx8L2rZs2eLiefPmBW1Dhgxx8bp164I2fx3cUUcdVY9utoWVK1e6eNiwYTUdY9euXS7+3ve+F7T98pe/dPFbb71V0/GLgjtQAAAAGTGAAgAAyIgyBm2m3R6Vnj59uovjabtqFXUKL9VHpXv16uXizs7OoO2GG27ocr9nn3022O/yyy938YYNG4K2PXv2lD33/fff7+JLLrkkaDvppJNcvHHjxrLHqFW7XZvlnHDCCcH2pk2bqvq56667Lti+4447yu67fft2F8fTVJs3b67qfJW08rXpX0tZxgeDBw92sV9uIj7GokWLXDxu3Lhaupg7yhgAAADUCQMoAACAjBhAAQAAZNS2ZQx69+7t4osuuihou+mmm1x8/fXXu/ixxx5reL/GjBnj4njNzvHHH+/ihx9+OGjz14bgfbWue0J+DjnkkGDbf4VKvAZq3759LvavgauuuirY74033qipL9u2bau6n2iMatc8SWEZA/97O/bOO+8E2/6j9fVY85SSU089taafO/300118zjnnuHjq1Knd7lNRcQcKAAAgIwZQAAAAGbXNFJ7/CLIk/exnP3Px5z//+aDt7bffdvHf/va3uvelb9++Lo7fPH7bbbe5uEePHmWPcfLJJ9e9Xyl46qmnGnrM+HcF3RdXKvanzWP+I9Zf/epX696XHTt2lG3z+3XllVfW/dzY77DDDgu2Bw0a5OJf//rXQZtf8iAuN7JmzRoXx9+zq1ev7nY/EVqyZImL/SrwKeMOFAAAQEYMoAAAADI64ADKGDPXGLPVGLPW+6yfMWaRMWZD6c++lY6B4iCf6SCXaSGf6SCX7aGaNVDzJP1U0n3eZ52SFltrZxpjOkvbN9a/e9kcfvjhwfa1117r4gkTJgRtxxxzjIvffffdoO3CCy90caU1UH65+kMPPTRo89dnjBw5MmgbP368i4844oiyx69k7969Nf2cWiif1TrjjDO6jCuJ10tUemVBtcdsgnlq0VyOHj3axd/+9reDNj8Xr732WtDmPx7dCMcdd5yL498Rv88NMk8tms9qHHnkkcG2/9j75z73ORfH6ww/9alPlT2m/7sSv87HL4HRhDVP85RwLrsyfPhwF1922WUujr9bV61alVufGu2Ad6CstUslvRl9fK6ke0vxvZLOq3O/0CDkMx3kMi3kMx3ksj3U+hReh7V2Syl+TVJHuR2NMZMlTa7xPMhHVfkkly2BazMtXJvp4NpMTLfLGFhrbaW3RVtrZ0uaLTXmrdIHHfT+TbQHH3wwaDvzzDOrOsbEiRODbb8S7mmnnebiSm9nP/vss6s6V3ds3brVxX615nqqlM9G57Ja8ZSaX2386aefLrtv3Obz2wo8ZZdJs69N38EHh181fumC+Bb/Sy+95GJ/mkeqvcJ4tfxpiLhfK1eubOi5D6QVrs24vMrMmTNdPGrUqKDNL1fgT5dWmk6v5KGHHgq2ly5dWtNx8lCkazOLoUOHujguP+JPr/v/Lq9duzbY7/bbb29Q7/JX61N4/zTG9Jek0p9bD7A/io18poNcpoV8poNcJqbWAdQTkv69KnuCpMfr0x00CflMB7lMC/lMB7lMTDVlDB6QtFzSScaYV4wxkyTNlHSWMWaDpLGlbbQA8pkOcpkW8pkOctkeTK3zzTWdrAFzuX65gAceeKCmY/ivbpGkXr16udgvVVCrnTt3Btt+yYP4UWnfnj17gu0LLrjAxb/73e9q6ou1tvwJM2jmvPz06dODbX8NVMxf23Trrbd2+bkUrnuq9DqY+BHrSuuqGq1euZQan8/41Q733HOPi3ft2hW0+WVE/vjHPzayWx+wb98+F8ffjf5rlvzfpXpJ4dr8yle+EmxX+51cjzVQ8XfppZdemrkf9dJK12YWTz75pIvHjh1bdr9K+Zw7d66L/VJDkvTOO+90t4sNUS6fVCIHAADIiAEUAABARt0uY5A3v3SAJP3iF7/o9jH79OnT7WPEj2o+8sgjLl6+fHnQ9tvf/tbFvXv3Dtree+89F/u3oKXap+1S4E+xVZqyq3WKzd+v0vRelhIHzZzeK4IePXq42J9qjy1atCjYznPa7kMf+lBu52oHCxcuDLZ//vOfu/iEE04I2vxyMX/6059cHE/j+FXKY9/61reqanvssceCtqJOFRXdtGnTXLxkyZKgza/2PmbMGBfHZYKuvPLKsse/5pprXBy/IaSIuAMFAACQEQMoAACAjFpuCu++++4Ltv1qtrHt27e7OH7Zr1/V+803w1cW+RWHly1b5mK/QrIkrVu3ruwx/JcpxlNv/pN9fj8k6ctf/rKLn3nmGWG/Sk/G1Vt8a7rS9KFfKTuePmx3kyZNcvFZZ51Vdj9/ujtvN9xwQ9X7xtc/PmjHjh3Btj8lU6tKSxfGjRvn4iFDhgRtn/3sZ10cv7C6EU9RtoM1a9Z0Gcf8afn4KfQZM2a4OJ7O85+WzPM7v1bcgQIAAMiIARQAAEBGDKAAAAAyark1UB0dHWXb5syZE2x3dna6OF4r9eKLL9a1X/GjmrNnz3Zx/CZ6v8J4/Hg36572yzL/XanCeC3iY1Qqm4Dyhg0b5uK4SrS/tnD+/Pm59Sk2atSoYNvv58aNG4M2v/wIisevIi+FFbDzfOMGQnfeeWew3bdvXxdPnTo1aPvud7/rYtZAAQAAJIgBFAAAQEYtN4UXP446cuRIF19//fVBm39Ld9u2bXXvi/9C1ErVVf1yB1L4ePeKFSvq3q9W5b8kOEvF73rLMg3YzH4Wnf93E0+hPPzwwzn35n0f/vCHXfzJT34yaPP7effddwdt8UvHkY+DDnr///PjshMnnnhi2Z/zK1nHyzuQH3/JiiQtXrzYxfG/2a32fcodKAAAgIwYQAEAAGTEAAoAACCjllsDtWDBgorbjRSXKrj88svL7uvPv1999dVB21/+8pe69isV/tqjeB2SPzfuvz5FCtdONVP82G27vdrlM5/5TLA9cOBAF+/atSto+8Mf/pBLn7py5plnutjvY8x/uzya55RTTnHx7bffXvXP+a+AefXVV+vaJ9RHq5eX4A4UAABARgygAAAAMmq5Kby8jR8/3sVz584tu9/mzZuDbb/C+MqVK+vfsQRVKh9Qjwrj1ar1Udp2f8N7r169gu2ePXu6OC4BEFf5bqTBgwcH27/61a/K7uv/nvnV0ttN7969g21/+cKnP/3poO0b3/hGXc8dP9oeb5ezdOnSYHvWrFl16xPQFe5AAQAAZMQACgAAICMGUAAAABmxBqoLQ4cOdfH9999fdj+/VEG8DoB1T63FX/d0yy23BG3+uph4fZRfqiDPdVqtpk+fPsH2BRdc4OJGvNbl61//uot/+MMfBm2HHnpo2Z/zX/mxd+/euveryMaOHeviuFzA8OHDXfz444/XdHz/FTqSdOONN7r4vPPOc/HJJ59c9THfeustF19zzTVB29q1a7N2ETmI1yT67r333hx70n3cgQIAAMjogAMoY8wAY8xTxpgXjDF/NcZcW/q8nzFmkTFmQ+nPvo3vLrqLXKaDazMt5DIdXJvtwRyoEqgxpr+k/tbaNcaYPpL+R9J5kiZKetNaO9MY0ympr7X2xgqHkjGmkGVHR40aFWz7FaX9R7Fff/31YL9vfvObLv7Nb37ToN7V3bCUc1krP+fxNJ0xxsXx9eK3NcFRKvC16U9pjhkzJmh76aWXXPyjH/0oaLvnnntcfOSRRwZtfkXpo48+2sW33XZbsN8VV1xRVR/jCtUDBgyo6ucaJNdrc8qUKcH2zTff7OLDDjssaHv++eddHOdy586dLo6vnY9//ONlz+dXGK90jfni7+Bzzz3XxQVbNlHoazNP8TW8ZMkSFw8aNCho+8QnPuHif/zjHw3tVxbW2i6/6A94B8pau8Vau6YUvy1pnaSjJZ0r6d8Tlvdq/y8HCo5cpoNrMy3kMh1cm+0h0yJyY8yxkk6VtEJSh7V2S6npNUkdZX5msqTJtXcRjUAu00I+00Eu00I+01X1InJjzEckPSJpirV2h99m999z7fI2o7V2trV2uLV2eFftyB+5TAv5TAe5TAv5TFtVd6CMMT21/5dgvrX20dLH/zTG9LfWbimtk9raqE42gv/4+UMPPRS0+eue/EeZJ02aFOz3+9//vkG9a5wUc1mLeK1Gpde3+Ouj/N+bIihyPv3H1H/yk58EbcOGDXPxXXfdFbTNmDHDxf61KIWlQ/zXwzz77LPBftOmTXNxZ2dn0OaXVIjXXzVT3rn015BJH1z35PMfPd+0aVPQ5q9f+uhHPxq0xfkr51//+peLV6xYEbR9//vfd/Hy5cuDtu3bt1d1/GYo8rWZp/gaO/HEE128e/fuoM1fT9cKqnkKz0iaI2mdtdZ/udATkiaU4gmSaisOgryRy0RwbSaHXCaCa7M9VHMHarSkyyT9nzHmudJn0yTNlLTAGDNJ0mZJFzami6gzcpkOrs20kMt0cG22gQOWMajryZr4OOaQIUOC7UWLFrm4oyNcx/fee++5+NJLL3VxIyom563c45hZtfqjtfGUnT9NF2tyqYKy6pVLqfH5jB9l9iuFX3LJJUFbpe+k9evXu9ivGP/cc88F+/lVtRcuXBi0vfzyyy6Oq143cwoh72sznm5bsGCBi/2/vyrO5+Is/56sWrXKxf5365133ln1MYqqla7NRhg5cqSL47d5HHHEES6eMGFC0FZrlftGq7mMAQAAAEIMoAAAADJiAAUAAJBRpkKarWbEiBEujt/y7K978t/oLYWvB/jzn//coN4hb9OnT3fx6aefXnY//xUkqI+tW8OntW+99dYu43o5++yzy7b5669a7bHpetqxIyhLpAsvfH898/nnnx+0felLX3Kx//0oSUuXLnXx2rVrgzZ/ndPq1auDNr8cgl+eAq3p2GOPdfGyZctc7JcbkcKyJUVd81Qt7kABAABkxAAKAAAgo6Sm8Py3e0vh45N+9VMpvGV83XXXBW3PPPNMA3qHIonLGPjTdkWrNo7s7r77bhdPnhy+Umzbtm15d6cl+FN68ZKHeBs4/vjjg+0nn3yyy/38pROS9OMf/7hRXcodd6AAAAAyYgAFAACQEQMoAACAjFr+VS79+/d38aOPPhq0xa9o8c2ZM8fFP/jBD4K2ffv21al3xdPOr3Lx1z3Fr24p6utaKmn310Wkpp2vzdS0w7XplyqQpNNOO83FfqmLxYsXB/vt3r27sR1rAF7lAgAAUCcMoAAAADJq+Sk8ZMM0QTraYZqgnXBtpoNrMy1M4QEAANQJAygAAICMGEABAABkxAAKAAAgIwZQAAAAGTGAAgAAyOjgnM/3hqTNkg4vxc3Wbv0YWMdjkcvy8uhLPXMp7e/vTrXX32E1uDa7ryj9kLg266Eo+Wz6tZlrHSh3UmNWW2uH535i+lF3Rel7UfohFasvWRSp30XpS1H6UYui9L0o/ZCK1ZcsitTvovSlCP1gCg8AACAjBlAAAAAZNWsANbtJ543Rj+4rSt+L0g+pWH3Jokj9LkpfitKPWhSl70Xph1SsvmRRpH4XpS9N70dT1kABAAC0MqbwAAAAMmIABQAAkFGuAyhjzBeMMeuNMRuNMZ05n3uuMWarMWat91k/Y8wiY8yG0p99c+jHAGPMU8aYF4wxfzXGXNusvnQHuUwnlxL5LJ0ziXySy3RyKZHPIucytwGUMaaHpLskjZM0WNLFxpjBeZ1f0jxJX4g+65S02Fo7SNLi0naj7ZU01Vo7WNJISVeV/h6a0ZeakEun5XMpkU9Py+eTXDotn0uJfJYUN5fW2lz+k/SfkhZ629+R9J28zl8657GS1nrb6yX1L8X9Ja3Psz+l8z4u6awi9IVctl8uyWda+SSX6eSSfBY/l3lO4R0t6WVv+5XSZ83UYa3dUopfk9SR58mNMcdKOlXSimb3JSNyGWnhXErk8wNaOJ/kMtLCuZTIZ6BouWQReYndP4zNraaDMeYjkh6RNMVau6OZfUkNuUwL+UwHuUxLnn+HRcxlngOoVyUN8LaPKX3WTP80xvSXpNKfW/M4qTGmp/b/Isy31j7azL7UiFyWJJBLiXw6CeSTXJYkkEuJfKp0nkLmMs8B1CpJg4wxxxljDpF0kaQncjx/V56QNKEUT9D+udWGMsYYSXMkrbPWzmpmX7qBXCqZXErkU1Iy+SSXSiaXEvksdi5zXvx1jqS/S9ok6aacz/2ApC2S9mj/PPIkSf+h/av3N0j6b0n9cujHf2n/rcb/lfRc6b9zmtEXckkuyWd6+SSX6eSSfBY7l7zKBQAAICMWkQMAAGTEAAoAACAjBlAAAAAZMYACAADIiAEUAABARgygAAAAMmIABQAAkNH/A5up9WK1IlZ/AAAAAElFTkSuQmCC\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"plt.imshow(X[1, 0], cmap='gray',)\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"id": "X1VnEr9bwjjH",
"outputId": "c84df796-8fae-48d5-fab1-4e997deda91f"
},
"execution_count": 31,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"images = reordered_X_train[1, 0: 5]\n",
"display_imgs(images)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 163
},
"id": "mNAgJWBowPpi",
"outputId": "c8d4c8da-ed93-404f-bb28-700ae70424f8"
},
"execution_count": 29,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(5, 1, 28, 28)\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 720x720 with 5 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"images = reordered_X_train[0, -5:]\n",
"display_imgs(images)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 163
},
"id": "Tx4C-KwkwQWH",
"outputId": "efa2441b-909b-48c4-b196-b2372039b2f5"
},
"execution_count": 30,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(5, 1, 28, 28)\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 720x720 with 5 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAACBCAYAAAAPH4TmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAVnElEQVR4nO3df9BVVb3H8c8SMbDIgas+oRL+CC0kw2CQCzc0B52QKbUxU0cFZYap1MTQfMIc0bCYTKaZspKEQY00/JFaTTJcRqGQ+HFR7yWJAI1RB0NRBgdEIdb9g9NyreVzDmef55x99lnn/Zpx+O6z9rP3Gr7PPiz3Wvu7jbVWAAAAqN5Bze4AAABAq2EABQAAkBEDKAAAgIwYQAEAAGTEAAoAACAjBlAAAAAZdWsAZYz5gjFmvTFmozGms16dQnOQz3SQy7SQz3SQy3SYWutAGWN6SPq7pLMkvSJplaSLrbUv1K97yAv5TAe5TAv5TAe5TMvB3fjZEZI2WmtflCRjzIOSzpVU9hfBGEPVziaz1poyTZnySS6br165LO1DPpuMazMdXJtpKZfP7kzhHS3pZW/7ldJnAWPMZGPMamPM6m6cC413wHySy5bBtZkWrs10cG0mpDt3oKpirZ0tabbESLrVkcu0kM90kMu0kM/W0J07UK9KGuBtH1P6DK2JfKaDXKaFfKaDXCakOwOoVZIGGWOOM8YcIukiSU/Up1toAvKZDnKZFvKZDnKZkJqn8Ky1e40xV0taKKmHpLnW2r/WrWfIFflMB7lMC/lMB7lMS81lDGo6GXO5TVfh6ZBMyGXz1SuXEvksAq7NdHBtpqURT+EBAAC0JQZQAAAAGTGAAgAAyIgBFAAAQEYMoAAAADJiAAUAAJBRw1/lAgBAtfr16xdsjx8/3sUjRowI2i6++OKyP+eX6Nm9e3fQNmPGDBfPmjUraHv33Xcz9hjtijtQAAAAGTGAAgAAyIhK5G2GasfpoNrx++bMmRNsX3HFFTUdZ9myZS6++eabg7ann366pmNWq52vzSlTprj4a1/7WtA2cOBAF/fs2bPsMYwJ//qq/bftlFNOCbZfeOGFqn6uEq7NtFCJHAAAoE4YQAEAAGTEAAoAACAjyhigbZxxxhkuvuWWW8q2xeK1FWie888/38UTJ0508Re/+MVgP3/9y/PPPx+0xY+0+0aPHu3i+fPnB21Dhw518euvv15dh1GVjo4OF3/sYx8L2rZs2eLiefPmBW1Dhgxx8bp164I2fx3cUUcdVY9utoWVK1e6eNiwYTUdY9euXS7+3ve+F7T98pe/dPFbb71V0/GLgjtQAAAAGTGAAgAAyIgyBm2m3R6Vnj59uovjabtqFXUKL9VHpXv16uXizs7OoO2GG27ocr9nn3022O/yyy938YYNG4K2PXv2lD33/fff7+JLLrkkaDvppJNcvHHjxrLHqFW7XZvlnHDCCcH2pk2bqvq56667Lti+4447yu67fft2F8fTVJs3b67qfJW08rXpX0tZxgeDBw92sV9uIj7GokWLXDxu3Lhaupg7yhgAAADUCQMoAACAjBhAAQAAZNS2ZQx69+7t4osuuihou+mmm1x8/fXXu/ixxx5reL/GjBnj4njNzvHHH+/ihx9+OGjz14bgfbWue0J+DjnkkGDbf4VKvAZq3759LvavgauuuirY74033qipL9u2bau6n2iMatc8SWEZA/97O/bOO+8E2/6j9fVY85SSU089taafO/300118zjnnuHjq1Knd7lNRcQcKAAAgIwZQAAAAGbXNFJ7/CLIk/exnP3Px5z//+aDt7bffdvHf/va3uvelb9++Lo7fPH7bbbe5uEePHmWPcfLJJ9e9Xyl46qmnGnrM+HcF3RdXKvanzWP+I9Zf/epX696XHTt2lG3z+3XllVfW/dzY77DDDgu2Bw0a5OJf//rXQZtf8iAuN7JmzRoXx9+zq1ev7nY/EVqyZImL/SrwKeMOFAAAQEYMoAAAADI64ADKGDPXGLPVGLPW+6yfMWaRMWZD6c++lY6B4iCf6SCXaSGf6SCX7aGaNVDzJP1U0n3eZ52SFltrZxpjOkvbN9a/e9kcfvjhwfa1117r4gkTJgRtxxxzjIvffffdoO3CCy90caU1UH65+kMPPTRo89dnjBw5MmgbP368i4844oiyx69k7969Nf2cWiif1TrjjDO6jCuJ10tUemVBtcdsgnlq0VyOHj3axd/+9reDNj8Xr732WtDmPx7dCMcdd5yL498Rv88NMk8tms9qHHnkkcG2/9j75z73ORfH6ww/9alPlT2m/7sSv87HL4HRhDVP85RwLrsyfPhwF1922WUujr9bV61alVufGu2Ad6CstUslvRl9fK6ke0vxvZLOq3O/0CDkMx3kMi3kMx3ksj3U+hReh7V2Syl+TVJHuR2NMZMlTa7xPMhHVfkkly2BazMtXJvp4NpMTLfLGFhrbaW3RVtrZ0uaLTXmrdIHHfT+TbQHH3wwaDvzzDOrOsbEiRODbb8S7mmnnebiSm9nP/vss6s6V3ds3brVxX615nqqlM9G57Ja8ZSaX2386aefLrtv3Obz2wo8ZZdJs69N38EHh181fumC+Bb/Sy+95GJ/mkeqvcJ4tfxpiLhfK1eubOi5D6QVrs24vMrMmTNdPGrUqKDNL1fgT5dWmk6v5KGHHgq2ly5dWtNx8lCkazOLoUOHujguP+JPr/v/Lq9duzbY7/bbb29Q7/JX61N4/zTG9Jek0p9bD7A/io18poNcpoV8poNcJqbWAdQTkv69KnuCpMfr0x00CflMB7lMC/lMB7lMTDVlDB6QtFzSScaYV4wxkyTNlHSWMWaDpLGlbbQA8pkOcpkW8pkOctkeTK3zzTWdrAFzuX65gAceeKCmY/ivbpGkXr16udgvVVCrnTt3Btt+yYP4UWnfnj17gu0LLrjAxb/73e9q6ou1tvwJM2jmvPz06dODbX8NVMxf23Trrbd2+bkUrnuq9DqY+BHrSuuqGq1euZQan8/41Q733HOPi3ft2hW0+WVE/vjHPzayWx+wb98+F8ffjf5rlvzfpXpJ4dr8yle+EmxX+51cjzVQ8XfppZdemrkf9dJK12YWTz75pIvHjh1bdr9K+Zw7d66L/VJDkvTOO+90t4sNUS6fVCIHAADIiAEUAABARt0uY5A3v3SAJP3iF7/o9jH79OnT7WPEj2o+8sgjLl6+fHnQ9tvf/tbFvXv3Dtree+89F/u3oKXap+1S4E+xVZqyq3WKzd+v0vRelhIHzZzeK4IePXq42J9qjy1atCjYznPa7kMf+lBu52oHCxcuDLZ//vOfu/iEE04I2vxyMX/6059cHE/j+FXKY9/61reqanvssceCtqJOFRXdtGnTXLxkyZKgza/2PmbMGBfHZYKuvPLKsse/5pprXBy/IaSIuAMFAACQEQMoAACAjFpuCu++++4Ltv1qtrHt27e7OH7Zr1/V+803w1cW+RWHly1b5mK/QrIkrVu3ruwx/JcpxlNv/pN9fj8k6ctf/rKLn3nmGWG/Sk/G1Vt8a7rS9KFfKTuePmx3kyZNcvFZZ51Vdj9/ujtvN9xwQ9X7xtc/PmjHjh3Btj8lU6tKSxfGjRvn4iFDhgRtn/3sZ10cv7C6EU9RtoM1a9Z0Gcf8afn4KfQZM2a4OJ7O85+WzPM7v1bcgQIAAMiIARQAAEBGDKAAAAAyark1UB0dHWXb5syZE2x3dna6OF4r9eKLL9a1X/GjmrNnz3Zx/CZ6v8J4/Hg36572yzL/XanCeC3iY1Qqm4Dyhg0b5uK4SrS/tnD+/Pm59Sk2atSoYNvv58aNG4M2v/wIisevIi+FFbDzfOMGQnfeeWew3bdvXxdPnTo1aPvud7/rYtZAAQAAJIgBFAAAQEYtN4UXP446cuRIF19//fVBm39Ld9u2bXXvi/9C1ErVVf1yB1L4ePeKFSvq3q9W5b8kOEvF73rLMg3YzH4Wnf93E0+hPPzwwzn35n0f/vCHXfzJT34yaPP7effddwdt8UvHkY+DDnr///PjshMnnnhi2Z/zK1nHyzuQH3/JiiQtXrzYxfG/2a32fcodKAAAgIwYQAEAAGTEAAoAACCjllsDtWDBgorbjRSXKrj88svL7uvPv1999dVB21/+8pe69isV/tqjeB2SPzfuvz5FCtdONVP82G27vdrlM5/5TLA9cOBAF+/atSto+8Mf/pBLn7py5plnutjvY8x/uzya55RTTnHx7bffXvXP+a+AefXVV+vaJ9RHq5eX4A4UAABARgygAAAAMmq5Kby8jR8/3sVz584tu9/mzZuDbb/C+MqVK+vfsQRVKh9Qjwrj1ar1Udp2f8N7r169gu2ePXu6OC4BEFf5bqTBgwcH27/61a/K7uv/nvnV0ttN7969g21/+cKnP/3poO0b3/hGXc8dP9oeb5ezdOnSYHvWrFl16xPQFe5AAQAAZMQACgAAICMGUAAAABmxBqoLQ4cOdfH9999fdj+/VEG8DoB1T63FX/d0yy23BG3+uph4fZRfqiDPdVqtpk+fPsH2BRdc4OJGvNbl61//uot/+MMfBm2HHnpo2Z/zX/mxd+/euveryMaOHeviuFzA8OHDXfz444/XdHz/FTqSdOONN7r4vPPOc/HJJ59c9THfeustF19zzTVB29q1a7N2ETmI1yT67r333hx70n3cgQIAAMjogAMoY8wAY8xTxpgXjDF/NcZcW/q8nzFmkTFmQ+nPvo3vLrqLXKaDazMt5DIdXJvtwRyoEqgxpr+k/tbaNcaYPpL+R9J5kiZKetNaO9MY0ympr7X2xgqHkjGmkGVHR40aFWz7FaX9R7Fff/31YL9vfvObLv7Nb37ToN7V3bCUc1krP+fxNJ0xxsXx9eK3NcFRKvC16U9pjhkzJmh76aWXXPyjH/0oaLvnnntcfOSRRwZtfkXpo48+2sW33XZbsN8VV1xRVR/jCtUDBgyo6ucaJNdrc8qUKcH2zTff7OLDDjssaHv++eddHOdy586dLo6vnY9//ONlz+dXGK90jfni7+Bzzz3XxQVbNlHoazNP8TW8ZMkSFw8aNCho+8QnPuHif/zjHw3tVxbW2i6/6A94B8pau8Vau6YUvy1pnaSjJZ0r6d8Tlvdq/y8HCo5cpoNrMy3kMh1cm+0h0yJyY8yxkk6VtEJSh7V2S6npNUkdZX5msqTJtXcRjUAu00I+00Eu00I+01X1InJjzEckPSJpirV2h99m999z7fI2o7V2trV2uLV2eFftyB+5TAv5TAe5TAv5TFtVd6CMMT21/5dgvrX20dLH/zTG9LfWbimtk9raqE42gv/4+UMPPRS0+eue/EeZJ02aFOz3+9//vkG9a5wUc1mLeK1Gpde3+Ouj/N+bIihyPv3H1H/yk58EbcOGDXPxXXfdFbTNmDHDxf61KIWlQ/zXwzz77LPBftOmTXNxZ2dn0OaXVIjXXzVT3rn015BJH1z35PMfPd+0aVPQ5q9f+uhHPxq0xfkr51//+peLV6xYEbR9//vfd/Hy5cuDtu3bt1d1/GYo8rWZp/gaO/HEE128e/fuoM1fT9cKqnkKz0iaI2mdtdZ/udATkiaU4gmSaisOgryRy0RwbSaHXCaCa7M9VHMHarSkyyT9nzHmudJn0yTNlLTAGDNJ0mZJFzami6gzcpkOrs20kMt0cG22gQOWMajryZr4OOaQIUOC7UWLFrm4oyNcx/fee++5+NJLL3VxIyom563c45hZtfqjtfGUnT9NF2tyqYKy6pVLqfH5jB9l9iuFX3LJJUFbpe+k9evXu9ivGP/cc88F+/lVtRcuXBi0vfzyyy6Oq143cwoh72sznm5bsGCBi/2/vyrO5+Is/56sWrXKxf5365133ln1MYqqla7NRhg5cqSL47d5HHHEES6eMGFC0FZrlftGq7mMAQAAAEIMoAAAADJiAAUAAJBRpkKarWbEiBEujt/y7K978t/oLYWvB/jzn//coN4hb9OnT3fx6aefXnY//xUkqI+tW8OntW+99dYu43o5++yzy7b5669a7bHpetqxIyhLpAsvfH898/nnnx+0felLX3Kx//0oSUuXLnXx2rVrgzZ/ndPq1auDNr8cgl+eAq3p2GOPdfGyZctc7JcbkcKyJUVd81Qt7kABAABkxAAKAAAgo6Sm8Py3e0vh45N+9VMpvGV83XXXBW3PPPNMA3qHIonLGPjTdkWrNo7s7r77bhdPnhy+Umzbtm15d6cl+FN68ZKHeBs4/vjjg+0nn3yyy/38pROS9OMf/7hRXcodd6AAAAAyYgAFAACQEQMoAACAjFr+VS79+/d38aOPPhq0xa9o8c2ZM8fFP/jBD4K2ffv21al3xdPOr3Lx1z3Fr24p6utaKmn310Wkpp2vzdS0w7XplyqQpNNOO83FfqmLxYsXB/vt3r27sR1rAF7lAgAAUCcMoAAAADJq+Sk8ZMM0QTraYZqgnXBtpoNrMy1M4QEAANQJAygAAICMGEABAABkxAAKAAAgIwZQAAAAGTGAAgAAyOjgnM/3hqTNkg4vxc3Wbv0YWMdjkcvy8uhLPXMp7e/vTrXX32E1uDa7ryj9kLg266Eo+Wz6tZlrHSh3UmNWW2uH535i+lF3Rel7UfohFasvWRSp30XpS1H6UYui9L0o/ZCK1ZcsitTvovSlCP1gCg8AACAjBlAAAAAZNWsANbtJ543Rj+4rSt+L0g+pWH3Jokj9LkpfitKPWhSl70Xph1SsvmRRpH4XpS9N70dT1kABAAC0MqbwAAAAMmIABQAAkFGuAyhjzBeMMeuNMRuNMZ05n3uuMWarMWat91k/Y8wiY8yG0p99c+jHAGPMU8aYF4wxfzXGXNusvnQHuUwnlxL5LJ0ziXySy3RyKZHPIucytwGUMaaHpLskjZM0WNLFxpjBeZ1f0jxJX4g+65S02Fo7SNLi0naj7ZU01Vo7WNJISVeV/h6a0ZeakEun5XMpkU9Py+eTXDotn0uJfJYUN5fW2lz+k/SfkhZ629+R9J28zl8657GS1nrb6yX1L8X9Ja3Psz+l8z4u6awi9IVctl8uyWda+SSX6eSSfBY/l3lO4R0t6WVv+5XSZ83UYa3dUopfk9SR58mNMcdKOlXSimb3JSNyGWnhXErk8wNaOJ/kMtLCuZTIZ6BouWQReYndP4zNraaDMeYjkh6RNMVau6OZfUkNuUwL+UwHuUxLnn+HRcxlngOoVyUN8LaPKX3WTP80xvSXpNKfW/M4qTGmp/b/Isy31j7azL7UiFyWJJBLiXw6CeSTXJYkkEuJfKp0nkLmMs8B1CpJg4wxxxljDpF0kaQncjx/V56QNKEUT9D+udWGMsYYSXMkrbPWzmpmX7qBXCqZXErkU1Iy+SSXSiaXEvksdi5zXvx1jqS/S9ok6aacz/2ApC2S9mj/PPIkSf+h/av3N0j6b0n9cujHf2n/rcb/lfRc6b9zmtEXckkuyWd6+SSX6eSSfBY7l7zKBQAAICMWkQMAAGTEAAoAACAjBlAAAAAZMYACAADIiAEUAABARgygAAAAMmIABQAAkNH/A5up9WK1IlZ/AAAAAElFTkSuQmCC\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
""
],
"metadata": {
"id": "0s2dZkMeweQq"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment