{"id":36665,"date":"2024-11-01T09:50:25","date_gmt":"2024-11-01T09:50:25","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36665"},"modified":"2024-11-01T11:52:18","modified_gmt":"2024-11-01T11:52:18","slug":"deep-learning-pytorch-course-architecture-of-pytorch","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36665\/","title":{"rendered":"Deep Learning PyTorch Course, Architecture of PyTorch"},"content":{"rendered":"<p><body><\/p>\n<p>Hello, today we will take a deep dive into the architecture of PyTorch, a deep learning framework.<\/p>\n<h2>1. What is PyTorch?<\/h2>\n<p>PyTorch is an open-source machine learning framework developed by Facebook AI Research. It is designed for gradient computation, automatic differentiation, and tensor operations. PyTorch is highly useful for research-oriented tasks and has a more intuitive and Pythonic syntax compared to other frameworks like TensorFlow.<\/p>\n<h2>2. Basic Concepts of PyTorch<\/h2>\n<h3>2.1 Tensor<\/h3>\n<p>The fundamental data structure in PyTorch is a tensor. A tensor is a multi-dimensional array similar to a numpy array but can perform computations faster on a GPU. Tensors can be created as follows:<\/p>\n<pre><code>import torch\n\n# Create a 1D tensor\ntensor_1d = torch.tensor([1, 2, 3, 4, 5])\nprint(tensor_1d)\n\n# Create a 2D tensor\ntensor_2d = torch.tensor([[1, 2], [3, 4]])\nprint(tensor_2d)<\/code><\/pre>\n<h3>2.2 Autograd<\/h3>\n<p>Autograd is the automatic differentiation feature of PyTorch. PyTorch can compute gradients by setting the <code>requires_grad<\/code> attribute for any tensor:<\/p>\n<pre><code>x = torch.ones(2, 2, requires_grad=True)\ny = x + 2\nz = y * y * 3\nout = z.mean()\n\nprint(out)\n\n# Backpropagation\nout.backward()\nprint(x.grad)<\/code><\/pre>\n<h2>3. Exploring PyTorch Architecture<\/h2>\n<p>PyTorch is composed of several components for creating deep neural networks. This allows users to design and train new models efficiently.<\/p>\n<h3>3.1 Module<\/h3>\n<p>A module is the basic building block of PyTorch, implemented by inheriting the nn.Module class. Each neural network layer is implemented as a module:<\/p>\n<pre><code>import torch.nn as nn\n\nclass MyModel(nn.Module):\n    def __init__(self):\n        super(MyModel, self).__init__()\n        self.fc1 = nn.Linear(in_features=2, out_features=2)\n\n    def forward(self, x):\n        return self.fc1(x)<\/code><\/pre>\n<h3>3.2 Loss Function<\/h3>\n<p>A loss function is a metric to evaluate the performance of the model by calculating the difference between predicted and actual values. There are various loss functions available in PyTorch:<\/p>\n<pre><code>loss_fn = nn.MSELoss()\n\n# Predicted and actual values\ny_pred = torch.tensor([0.0, 1.0])\ny_true = torch.tensor([0.5, 0.5])\nloss = loss_fn(y_pred, y_true)\nprint(loss)<\/code><\/pre>\n<h3>3.3 Optimization<\/h3>\n<p>This is the process of updating the model&#8217;s parameters. PyTorch allows efficient learning using various optimization techniques:<\/p>\n<pre><code>import torch.optim as optim\n\nmodel = MyModel()\noptimizer = optim.SGD(model.parameters(), lr=0.01)\n\n# Training process\nfor epoch in range(100):\n    optimizer.zero_grad()  # Gradient reset\n    y_pred = model(torch.tensor([[1.0, 2.0]]))  # Model prediction\n    loss = loss_fn(y_pred, torch.tensor([[0.0, 1.0]]))  # Loss calculation\n    loss.backward()  # Backpropagation\n    optimizer.step()  # Parameter update<\/code><\/pre>\n<h2>4. Practice: Creating a Simple Neural Network<\/h2>\n<p>Now, based on the content described above, let&#8217;s create a simple neural network. This neural network will perform digit image classification using the MNIST dataset.<\/p>\n<h3>4.1 Preparing the Dataset<\/h3>\n<pre><code>from torchvision import datasets, transforms\n\ntransform = transforms.Compose([transforms.ToTensor()])\ntrain_dataset = datasets.MNIST(root='.\/data', train=True, download=True, transform=transform)\ntrain_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=32, shuffle=True)<\/code><\/pre>\n<h3>4.2 Defining the Neural Network Architecture<\/h3>\n<pre><code>class SimpleNN(nn.Module):\n        def __init__(self):\n            super(SimpleNN, self).__init__()\n            self.fc1 = nn.Linear(784, 128)  # 28*28=784\n            self.fc2 = nn.Linear(128, 10)\n\n        def forward(self, x):\n            x = x.view(-1, 784)  # Flatten\n            x = torch.relu(self.fc1(x))\n            x = self.fc2(x)\n            return x<\/code><\/pre>\n<h3>4.3 Training the Model<\/h3>\n<pre><code>model = SimpleNN()\noptimizer = optim.Adam(model.parameters(), lr=0.001)\nloss_fn = nn.CrossEntropyLoss()\n\nfor epoch in range(5):\n    for images, labels in train_loader:\n        optimizer.zero_grad()\n        outputs = model(images)\n        loss = loss_fn(outputs, labels)\n        loss.backward()\n        optimizer.step()\n\n    print(f'Epoch [{epoch + 1}\/5], Loss: {loss.item():.4f}')<\/code><\/pre>\n<h2>5. Conclusion<\/h2>\n<p>In this lecture, we explored the architecture of PyTorch and various components that constitute a neural network model. Due to its intuitive ideas and flexibility, PyTorch is very effective for deep learning research and development. We hope you will challenge yourself with various projects utilizing PyTorch in the future.<\/p>\n<h2>6. References<\/h2>\n<ul>\n<li><a href=\"https:\/\/pytorch.org\/\">Official PyTorch Website<\/a><\/li>\n<li><a href=\"https:\/\/pytorch.org\/tutorials\/\">PyTorch Tutorials<\/a><\/li>\n<li><a href=\"https:\/\/docs.python.org\/3\/\">Official Python Documentation<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello, today we will take a deep dive into the architecture of PyTorch, a deep learning framework. 1. What is PyTorch? PyTorch is an open-source machine learning framework developed by Facebook AI Research. It is designed for gradient computation, automatic differentiation, and tensor operations. PyTorch is highly useful for research-oriented tasks and has a more &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36665\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Deep Learning PyTorch Course, Architecture of PyTorch&#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-36665","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, Architecture of PyTorch - \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\/36665\/\" \/>\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, Architecture of PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello, today we will take a deep dive into the architecture of PyTorch, a deep learning framework. 1. What is PyTorch? PyTorch is an open-source machine learning framework developed by Facebook AI Research. It is designed for gradient computation, automatic differentiation, and tensor operations. PyTorch is highly useful for research-oriented tasks and has a more &hellip; \ub354 \ubcf4\uae30 &quot;Deep Learning PyTorch Course, Architecture of PyTorch&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36665\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:50:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:52:18+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\/36665\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36665\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Deep Learning PyTorch Course, Architecture of PyTorch\",\"datePublished\":\"2024-11-01T09:50:25+00:00\",\"dateModified\":\"2024-11-01T11:52:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36665\/\"},\"wordCount\":333,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"PyTorch Study\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36665\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36665\/\",\"name\":\"Deep Learning PyTorch Course, Architecture of PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:50:25+00:00\",\"dateModified\":\"2024-11-01T11:52:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36665\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36665\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36665\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Learning PyTorch Course, Architecture of PyTorch\"}]},{\"@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, Architecture of PyTorch - \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\/36665\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Learning PyTorch Course, Architecture of PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello, today we will take a deep dive into the architecture of PyTorch, a deep learning framework. 1. What is PyTorch? PyTorch is an open-source machine learning framework developed by Facebook AI Research. It is designed for gradient computation, automatic differentiation, and tensor operations. PyTorch is highly useful for research-oriented tasks and has a more &hellip; \ub354 \ubcf4\uae30 \"Deep Learning PyTorch Course, Architecture of PyTorch\"","og_url":"https:\/\/atmokpo.com\/w\/36665\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:50:25+00:00","article_modified_time":"2024-11-01T11:52:18+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\/36665\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36665\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Deep Learning PyTorch Course, Architecture of PyTorch","datePublished":"2024-11-01T09:50:25+00:00","dateModified":"2024-11-01T11:52:18+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36665\/"},"wordCount":333,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["PyTorch Study"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36665\/","url":"https:\/\/atmokpo.com\/w\/36665\/","name":"Deep Learning PyTorch Course, Architecture of PyTorch - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:50:25+00:00","dateModified":"2024-11-01T11:52:18+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36665\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36665\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36665\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Deep Learning PyTorch Course, Architecture of PyTorch"}]},{"@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\/36665","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=36665"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36665\/revisions"}],"predecessor-version":[{"id":36666,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36665\/revisions\/36666"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}