{"id":36619,"date":"2024-11-01T09:50:02","date_gmt":"2024-11-01T09:50:02","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36619"},"modified":"2024-11-01T11:52:29","modified_gmt":"2024-11-01T11:52:29","slug":"deep-learning-pytorch-course-transfer-learning","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36619\/","title":{"rendered":"Deep Learning PyTorch Course, Transfer Learning"},"content":{"rendered":"<p><body><\/p>\n<h2>1. Introduction<\/h2>\n<p>\n        Transfer Learning is a very important technology in the fields of machine learning and deep learning. This technology refers to the process of reusing the weights or parameters learned for one task on another similar task. Transfer learning can save a lot of time and resources when the number of samples is small or when using a new dataset.\n    <\/p>\n<h2>2. The Necessity of Transfer Learning<\/h2>\n<p>\n        Collecting data and training models require a lot of time and cost. Therefore, by utilizing the knowledge learned from existing models for new tasks, efficiency can be increased. For example, if a model for image classification has already been trained, such a model can be utilized for similar tasks like plant classification.\n    <\/p>\n<h2>3. The Concept of Transfer Learning<\/h2>\n<p>\n        In general, transfer learning includes the following steps:\n    <\/p>\n<ul>\n<li>Select a pre-trained model<\/li>\n<li>Load some or all weights from the existing model<\/li>\n<li>Retrain part of the model to fit new data (fine-tuning)<\/li>\n<\/ul>\n<h2>4. Transfer Learning in PyTorch<\/h2>\n<p>\n        PyTorch provides various features that support transfer learning. This makes it easy to use complex models. The following example explains the process of performing image classification using a pre-trained model with the torchvision library in PyTorch.\n    <\/p>\n<h3>4.1 Preparing the Dataset<\/h3>\n<p>\n        This section explains how to load and preprocess image datasets. We will use the CIFAR-10 dataset here.\n    <\/p>\n<pre><code>\nimport torch\nimport torchvision\nimport torchvision.transforms as transforms\n\n# Data preprocessing\ntransform = transforms.Compose([\n    transforms.Resize((224, 224)),\n    transforms.ToTensor(),\n])\n\n# Load CIFAR-10 dataset\ntrainset = torchvision.datasets.CIFAR10(root='.\/data', train=True,\n                                        download=True, transform=transform)\ntrainloader = torch.utils.data.DataLoader(trainset, batch_size=64,\n                                          shuffle=True, num_workers=2)\n\ntestset = torchvision.datasets.CIFAR10(root='.\/data', train=False,\n                                       download=True, transform=transform)\ntestloader = torch.utils.data.DataLoader(testset, batch_size=64,\n                                         shuffle=False, num_workers=2)\n    <\/code><\/pre>\n<h3>4.2 Loading the Pre-trained Model<\/h3>\n<p>\n        This section describes how to load the pre-trained ResNet18 model from PyTorch&#8217;s torchvision.\n    <\/p>\n<pre><code>\nimport torchvision.models as models\n\n# Load pre-trained model\nmodel = models.resnet18(pretrained=True)\n\n# Modify the last layer\nnum_classes = 10  # Number of classes in CIFAR-10\nmodel.fc = torch.nn.Linear(model.fc.in_features, num_classes)\n    <\/code><\/pre>\n<h3>4.3 Defining the Loss Function and Optimizer<\/h3>\n<p>\n        This section defines the loss function and optimization algorithm for the multi-class classification problem.\n    <\/p>\n<pre><code>\nimport torch.optim as optim\n\ncriterion = torch.nn.CrossEntropyLoss()  # Loss function\noptimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)  # Optimization algorithm\n    <\/code><\/pre>\n<h3>4.4 Training the Model<\/h3>\n<p>\n        This section explains the overall code and method for training the model.\n    <\/p>\n<pre><code>\n# Model training\ndevice = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\nmodel.to(device)\n\nfor epoch in range(10):  # Number of epochs adjustable\n    running_loss = 0.0\n    for i, data in enumerate(trainloader, 0):\n        inputs, labels = data\n        inputs, labels = inputs.to(device), labels.to(device)\n\n        # Zero the gradients\n        optimizer.zero_grad()\n        outputs = model(inputs)\n        loss = criterion(outputs, labels)\n        loss.backward()\n        optimizer.step()\n\n        running_loss += loss.item()\n        if i % 100 == 99:    # Print every 100 mini-batches\n            print(f'[Epoch {epoch + 1}, Batch {i + 1}] loss: {running_loss \/ 100:.3f}')\n            running_loss = 0.0\n\nprint('Finished Training')\n    <\/code><\/pre>\n<h3>4.5 Evaluating the Model<\/h3>\n<p>\n        This section describes how to evaluate the trained model. The accuracy of the model is measured using the test dataset.\n    <\/p>\n<pre><code>\n# Model evaluation\ncorrect = 0\ntotal = 0\nwith torch.no_grad():\n    for data in testloader:\n        images, labels = data\n        images, labels = images.to(device), labels.to(device)\n        outputs = model(images)\n        _, predicted = torch.max(outputs.data, 1)\n        total += labels.size(0)\n        correct += (predicted == labels).sum().item()\n\nprint(f'Accuracy of the network on the 10000 test images: {100 * correct \/ total:.2f}%')\n    <\/code><\/pre>\n<h2>5. Conclusion<\/h2>\n<p>\n        In this course, we explored the concept of transfer learning in deep learning and how to implement it using PyTorch. Transfer learning is an important technology that helps achieve strong performance even in situations where data is scarce. By utilizing various pre-trained models, we can more easily develop high-performance models. We hope that more deep learning applications will be developed through transfer learning in the future.\n    <\/p>\n<h2>6. References<\/h2>\n<ul>\n<li><a href=\"https:\/\/pytorch.org\/docs\/stable\/index.html\">PyTorch Documentation<\/a><\/li>\n<li><a href=\"https:\/\/pytorch.org\/vision\/stable\/index.html\">TorchVision Documentation<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/yunjey\/pytorch-tutorial\">PyTorch Tutorial Repository<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction Transfer Learning is a very important technology in the fields of machine learning and deep learning. This technology refers to the process of reusing the weights or parameters learned for one task on another similar task. Transfer learning can save a lot of time and resources when the number of samples is small &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36619\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Deep Learning PyTorch Course, Transfer Learning&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[149],"tags":[],"class_list":["post-36619","post","type-post","status-publish","format-standard","hentry","category-pytorch-study"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deep Learning PyTorch Course, Transfer Learning - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/36619\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Learning PyTorch Course, Transfer Learning - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction Transfer Learning is a very important technology in the fields of machine learning and deep learning. This technology refers to the process of reusing the weights or parameters learned for one task on another similar task. Transfer learning can save a lot of time and resources when the number of samples is small &hellip; \ub354 \ubcf4\uae30 &quot;Deep Learning PyTorch Course, Transfer Learning&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36619\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:50:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:52:29+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36619\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36619\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Deep Learning PyTorch Course, Transfer Learning\",\"datePublished\":\"2024-11-01T09:50:02+00:00\",\"dateModified\":\"2024-11-01T11:52:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36619\/\"},\"wordCount\":370,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"PyTorch Study\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36619\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36619\/\",\"name\":\"Deep Learning PyTorch Course, Transfer Learning - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:50:02+00:00\",\"dateModified\":\"2024-11-01T11:52:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36619\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36619\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36619\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Learning PyTorch Course, Transfer Learning\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deep Learning PyTorch Course, Transfer Learning - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/36619\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Learning PyTorch Course, Transfer Learning - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction Transfer Learning is a very important technology in the fields of machine learning and deep learning. This technology refers to the process of reusing the weights or parameters learned for one task on another similar task. Transfer learning can save a lot of time and resources when the number of samples is small &hellip; \ub354 \ubcf4\uae30 \"Deep Learning PyTorch Course, Transfer Learning\"","og_url":"https:\/\/atmokpo.com\/w\/36619\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:50:02+00:00","article_modified_time":"2024-11-01T11:52:29+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36619\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36619\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Deep Learning PyTorch Course, Transfer Learning","datePublished":"2024-11-01T09:50:02+00:00","dateModified":"2024-11-01T11:52:29+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36619\/"},"wordCount":370,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["PyTorch Study"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36619\/","url":"https:\/\/atmokpo.com\/w\/36619\/","name":"Deep Learning PyTorch Course, Transfer Learning - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:50:02+00:00","dateModified":"2024-11-01T11:52:29+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36619\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36619\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36619\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Deep Learning PyTorch Course, Transfer Learning"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=36619"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36619\/revisions"}],"predecessor-version":[{"id":36620,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36619\/revisions\/36620"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}