From db973266abe99e4d971ddfcb47ad472091e557d4 Mon Sep 17 00:00:00 2001 From: YeonwooSung Date: Sat, 9 Jul 2022 16:23:19 +0900 Subject: [PATCH] Add tutorial for torchvision --- .../DeepLearning/Frameworks/PyTorch/README.md | 4 ++++ .../Frameworks/PyTorch/torchvision/README.md | 9 +++++++++ .../PyTorch/torchvision/src/Torchvision_tutorial.ipynb | 1 + 3 files changed, 14 insertions(+) create mode 100644 MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/README.md create mode 100644 MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/src/Torchvision_tutorial.ipynb diff --git a/MachineLearning/DeepLearning/Frameworks/PyTorch/README.md b/MachineLearning/DeepLearning/Frameworks/PyTorch/README.md index c2ae9cf..eb4b4ab 100644 --- a/MachineLearning/DeepLearning/Frameworks/PyTorch/README.md +++ b/MachineLearning/DeepLearning/Frameworks/PyTorch/README.md @@ -4,6 +4,10 @@ ## Features +## Related libraries + +1. [torchvision](./torchvision/) + ## Discussions ### CUDA diff --git a/MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/README.md b/MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/README.md new file mode 100644 index 0000000..8809f55 --- /dev/null +++ b/MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/README.md @@ -0,0 +1,9 @@ +# torchvision + +The torchvision package consists of popular datasets, model architectures, and common image transformations for computer vision. + +## Using pretrained models + +By using the torchvision package, we could easily load and use the pretrained vision models such as Resnet and Alexnet. + +[Example notebook for using pretrained models with torchvision](./src/Torchvision_tutorial.ipynb) diff --git a/MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/src/Torchvision_tutorial.ipynb b/MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/src/Torchvision_tutorial.ipynb new file mode 100644 index 0000000..35e4613 --- /dev/null +++ b/MachineLearning/DeepLearning/Frameworks/PyTorch/torchvision/src/Torchvision_tutorial.ipynb @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"Torchvision_tutorial.ipynb","provenance":[],"machine_shape":"hm","authorship_tag":"ABX9TyNPDWerMq1J4kHtgeHPAa9R"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"accelerator":"GPU","gpuClass":"standard","widgets":{"application/vnd.jupyter.widget-state+json":{"ff373d8a0b3f408980314077c9f36527":{"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_8153b07975b84b35b286b1dcc083be99","IPY_MODEL_c47c7b1fadab4fd1a64e3aa44624201e","IPY_MODEL_8e2a23a7f2e6420a881fba57282e711f"],"layout":"IPY_MODEL_5011c892d639410abebdd3e8cc5c4085"}},"8153b07975b84b35b286b1dcc083be99":{"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_372bbf63aec44327a8209eff82ccce74","placeholder":"​","style":"IPY_MODEL_c4514b0748f4433dbbcdd184a4523a37","value":"100%"}},"c47c7b1fadab4fd1a64e3aa44624201e":{"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_76b8c59cd3ee40ea9b95a224a7539767","max":178793939,"min":0,"orientation":"horizontal","style":"IPY_MODEL_9dc8f4eb828a4ef9a57c757dda91a017","value":178793939}},"8e2a23a7f2e6420a881fba57282e711f":{"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_a2de86124d9f495bb51ba88ceb35f42b","placeholder":"​","style":"IPY_MODEL_ecea2eb4e45b412a9bde2edf4ef9f5b7","value":" 171M/171M [00:02<00:00, 89.2MB/s]"}},"5011c892d639410abebdd3e8cc5c4085":{"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}},"372bbf63aec44327a8209eff82ccce74":{"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}},"c4514b0748f4433dbbcdd184a4523a37":{"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":""}},"76b8c59cd3ee40ea9b95a224a7539767":{"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}},"9dc8f4eb828a4ef9a57c757dda91a017":{"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":""}},"a2de86124d9f495bb51ba88ceb35f42b":{"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}},"ecea2eb4e45b412a9bde2edf4ef9f5b7":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"cells":[{"cell_type":"code","execution_count":2,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"j3yr5ue5w0dk","executionInfo":{"status":"ok","timestamp":1657350971031,"user_tz":-540,"elapsed":20445,"user":{"displayName":"성연우","userId":"12015659827226767816"}},"outputId":"d2faca4b-2a0f-4403-ac3b-b693c64db6b1"},"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/drive/\n"]}],"source":["from google.colab import drive\n","\n","drive.mount('/content/drive/')"]},{"cell_type":"code","source":["import os\n","os.chdir(\"drive/\")\n","os.chdir('My Drive')\n","os.chdir('Experiment')"],"metadata":{"id":"aMudp_Ktw_-L","executionInfo":{"status":"ok","timestamp":1657351015291,"user_tz":-540,"elapsed":371,"user":{"displayName":"성연우","userId":"12015659827226767816"}}},"execution_count":3,"outputs":[]},{"cell_type":"code","source":["import torch\n","import torch.nn as nn\n","\n","import torchvision\n","from torchvision import models, transforms\n","\n","from PIL import Image\n","import urllib.request"],"metadata":{"id":"CVoRZ66Ww_7P","executionInfo":{"status":"ok","timestamp":1657351021569,"user_tz":-540,"elapsed":2871,"user":{"displayName":"성연우","userId":"12015659827226767816"}}},"execution_count":4,"outputs":[]},{"cell_type":"code","source":["dir(models)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Np3dzsxew_4j","executionInfo":{"status":"ok","timestamp":1657351024894,"user_tz":-540,"elapsed":369,"user":{"displayName":"성연우","userId":"12015659827226767816"}},"outputId":"caafe4ee-7718-4180-89c4-1b589e367a31"},"execution_count":5,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['AlexNet',\n"," 'ConvNeXt',\n"," 'DenseNet',\n"," 'EfficientNet',\n"," 'GoogLeNet',\n"," 'GoogLeNetOutputs',\n"," 'Inception3',\n"," 'InceptionOutputs',\n"," 'MNASNet',\n"," 'MobileNetV2',\n"," 'MobileNetV3',\n"," 'RegNet',\n"," 'ResNet',\n"," 'ShuffleNetV2',\n"," 'SqueezeNet',\n"," 'VGG',\n"," 'VisionTransformer',\n"," '_GoogLeNetOutputs',\n"," '_InceptionOutputs',\n"," '__builtins__',\n"," '__cached__',\n"," '__doc__',\n"," '__file__',\n"," '__loader__',\n"," '__name__',\n"," '__package__',\n"," '__path__',\n"," '__spec__',\n"," '_utils',\n"," 'alexnet',\n"," 'convnext',\n"," 'convnext_base',\n"," 'convnext_large',\n"," 'convnext_small',\n"," 'convnext_tiny',\n"," 'densenet',\n"," 'densenet121',\n"," 'densenet161',\n"," 'densenet169',\n"," 'densenet201',\n"," 'detection',\n"," 'efficientnet',\n"," 'efficientnet_b0',\n"," 'efficientnet_b1',\n"," 'efficientnet_b2',\n"," 'efficientnet_b3',\n"," 'efficientnet_b4',\n"," 'efficientnet_b5',\n"," 'efficientnet_b6',\n"," 'efficientnet_b7',\n"," 'feature_extraction',\n"," 'googlenet',\n"," 'inception',\n"," 'inception_v3',\n"," 'mnasnet',\n"," 'mnasnet0_5',\n"," 'mnasnet0_75',\n"," 'mnasnet1_0',\n"," 'mnasnet1_3',\n"," 'mobilenet',\n"," 'mobilenet_v2',\n"," 'mobilenet_v3_large',\n"," 'mobilenet_v3_small',\n"," 'mobilenetv2',\n"," 'mobilenetv3',\n"," 'optical_flow',\n"," 'quantization',\n"," 'regnet',\n"," 'regnet_x_16gf',\n"," 'regnet_x_1_6gf',\n"," 'regnet_x_32gf',\n"," 'regnet_x_3_2gf',\n"," 'regnet_x_400mf',\n"," 'regnet_x_800mf',\n"," 'regnet_x_8gf',\n"," 'regnet_y_128gf',\n"," 'regnet_y_16gf',\n"," 'regnet_y_1_6gf',\n"," 'regnet_y_32gf',\n"," 'regnet_y_3_2gf',\n"," 'regnet_y_400mf',\n"," 'regnet_y_800mf',\n"," 'regnet_y_8gf',\n"," 'resnet',\n"," 'resnet101',\n"," 'resnet152',\n"," 'resnet18',\n"," 'resnet34',\n"," 'resnet50',\n"," 'resnext101_32x8d',\n"," 'resnext50_32x4d',\n"," 'segmentation',\n"," 'shufflenet_v2_x0_5',\n"," 'shufflenet_v2_x1_0',\n"," 'shufflenet_v2_x1_5',\n"," 'shufflenet_v2_x2_0',\n"," 'shufflenetv2',\n"," 'squeezenet',\n"," 'squeezenet1_0',\n"," 'squeezenet1_1',\n"," 'vgg',\n"," 'vgg11',\n"," 'vgg11_bn',\n"," 'vgg13',\n"," 'vgg13_bn',\n"," 'vgg16',\n"," 'vgg16_bn',\n"," 'vgg19',\n"," 'vgg19_bn',\n"," 'video',\n"," 'vision_transformer',\n"," 'vit_b_16',\n"," 'vit_b_32',\n"," 'vit_l_16',\n"," 'vit_l_32',\n"," 'wide_resnet101_2',\n"," 'wide_resnet50_2']"]},"metadata":{},"execution_count":5}]},{"cell_type":"code","source":["resnet = models.resnet101(pretrained=True)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":66,"referenced_widgets":["ff373d8a0b3f408980314077c9f36527","8153b07975b84b35b286b1dcc083be99","c47c7b1fadab4fd1a64e3aa44624201e","8e2a23a7f2e6420a881fba57282e711f","5011c892d639410abebdd3e8cc5c4085","372bbf63aec44327a8209eff82ccce74","c4514b0748f4433dbbcdd184a4523a37","76b8c59cd3ee40ea9b95a224a7539767","9dc8f4eb828a4ef9a57c757dda91a017","a2de86124d9f495bb51ba88ceb35f42b","ecea2eb4e45b412a9bde2edf4ef9f5b7"]},"id":"GX4f9h8Kw_1x","executionInfo":{"status":"ok","timestamp":1657351029085,"user_tz":-540,"elapsed":2831,"user":{"displayName":"성연우","userId":"12015659827226767816"}},"outputId":"4d3c5df5-5268-4f5e-ac2c-edbedbde5af9"},"execution_count":6,"outputs":[{"output_type":"stream","name":"stderr","text":["Downloading: \"https://download.pytorch.org/models/resnet101-63fe2227.pth\" to /root/.cache/torch/hub/checkpoints/resnet101-63fe2227.pth\n"]},{"output_type":"display_data","data":{"text/plain":[" 0%| | 0.00/171M [00:00)"]},"metadata":{},"execution_count":13}]},{"cell_type":"code","source":["_, index = torch.max(out, 1)"],"metadata":{"id":"L4m3KQLnz2-3","executionInfo":{"status":"ok","timestamp":1657351106851,"user_tz":-540,"elapsed":359,"user":{"displayName":"성연우","userId":"12015659827226767816"}}},"execution_count":14,"outputs":[]},{"cell_type":"code","source":[" "],"metadata":{"id":"S6Vfrwlm0ETd"},"execution_count":null,"outputs":[]}]} \ No newline at end of file