{"id":36671,"date":"2024-11-01T09:50:27","date_gmt":"2024-11-01T09:50:27","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36671"},"modified":"2024-11-01T11:52:17","modified_gmt":"2024-11-01T11:52:17","slug":"deep-learning-pytorch-course-convolutional-neural-network-structure","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36671\/","title":{"rendered":"Deep Learning PyTorch Course, Convolutional Neural Network Structure"},"content":{"rendered":"<p><body><\/p>\n<h2>1. Introduction<\/h2>\n<p>\n        Deep learning is a field of machine learning and a major area of artificial intelligence research. Among them, Convolutional Neural Networks (CNN) are a highly effective structure for image recognition and processing. In this course, we will explore the basic structure and operation principles of CNN using PyTorch.\n    <\/p>\n<h2>2. Basic Concepts of Convolutional Neural Networks<\/h2>\n<p>\n        Convolutional Neural Networks are composed of the following key components:\n    <\/p>\n<ul>\n<li><strong>Convolutional Layer<\/strong>: A layer designed to process high-dimensional data such as images.<\/li>\n<li><strong>Pooling Layer<\/strong>: Reduces the dimensions of feature maps, decreasing the computational load and providing invariance.<\/li>\n<li><strong>Fully Connected Layer<\/strong>: A layer used for classifying classes at the final stage of the network.<\/li>\n<\/ul>\n<h2>3. Structure of Convolutional Neural Networks<\/h2>\n<p>\n        The basic structure of Convolutional Neural Networks can be summarized as follows:\n    <\/p>\n<ol>\n<li>Input Layer: The original image is inputted.<\/li>\n<li>Convolutional Layer: Filters are applied to the input image to generate feature maps.<\/li>\n<li>Activation Layer (ReLU): ReLU activation function is used to introduce non-linearity.<\/li>\n<li>Pooling Layer: Reduces the size of the feature map to decrease the computational load.<\/li>\n<li>Fully Connected Layer: Performs predictions for various classes.<\/li>\n<\/ol>\n<h2>4. Implementing CNN with PyTorch<\/h2>\n<p>\n        Now, let\u2019s implement a simple CNN using PyTorch. We will use the Fashion MNIST dataset to classify clothing images.\n    <\/p>\n<h3>4.1. Setting Up the Environment<\/h3>\n<p>\n        Install and import the necessary libraries. Use the command below to install PyTorch:\n    <\/p>\n<pre><code>pip install torch torchvision<\/code><\/pre>\n<h3>4.2. Loading the Dataset<\/h3>\n<p>\n        Load and preprocess the Fashion MNIST dataset. The following code allows you to download and load the data.\n    <\/p>\n<pre><code>\nimport torch\nimport torchvision.transforms as transforms\nimport torchvision.datasets as datasets\nfrom torch.utils.data import DataLoader\n\n# Data preprocessing\ntransform = transforms.Compose([\n    transforms.ToTensor(),\n    transforms.Normalize((0.5,), (0.5,))\n])\n\n# Load training and testing datasets\ntrain_dataset = datasets.FashionMNIST(root='.\/data', train=True, transform=transform, download=True)\ntest_dataset = datasets.FashionMNIST(root='.\/data', train=False, transform=transform)\n\n# Set up data loaders\ntrain_loader = DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)\ntest_loader = DataLoader(dataset=test_dataset, batch_size=64, shuffle=False)\n    <\/code><\/pre>\n<h3>4.3. Defining the CNN Model<\/h3>\n<p>\n        Let\u2019s define a CNN model. The following code implements a simple CNN consisting of convolutional layers, activation layers, pooling layers, and fully connected layers.\n    <\/p>\n<pre><code>\nimport torch.nn as nn\n\nclass CNN(nn.Module):\n    def __init__(self):\n        super(CNN, self).__init__()\n        self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)  # First convolutional layer\n        self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)  # Second convolutional layer\n        self.pool = nn.MaxPool2d(kernel_size=2, stride=2)  # Max pooling layer\n        self.fc1 = nn.Linear(64 * 7 * 7, 128)  # First fully connected layer\n        self.fc2 = nn.Linear(128, 10)  # Second fully connected layer\n\n    def forward(self, x):\n        x = self.pool(torch.relu(self.conv1(x)))  # First convolution and pooling\n        x = self.pool(torch.relu(self.conv2(x)))  # Second convolution and pooling\n        x = x.view(-1, 64 * 7 * 7)  # Flatten the tensor\n        x = torch.relu(self.fc1(x))  # First fully connected layer\n        x = self.fc2(x)  # Second fully connected layer\n        return x\n    <\/code><\/pre>\n<h3>4.4. Training the Model<\/h3>\n<p>\n        To train the model, we need to set up the loss function and optimization algorithm. You can use the code below to set up the training.\n    <\/p>\n<pre><code>\nimport torch.optim as optim\n\n# Define model, loss function, and optimizer\nmodel = CNN()\ncriterion = nn.CrossEntropyLoss()\noptimizer = optim.Adam(model.parameters(), lr=0.001)\n\n# Train the model\nnum_epochs = 5\nfor epoch in range(num_epochs):\n    model.train()\n    running_loss = 0.0\n    for images, labels in train_loader:\n        optimizer.zero_grad()  # Initialize gradients\n        outputs = model(images)  # Predictions from the model\n        loss = criterion(outputs, labels)  # Calculate loss\n        loss.backward()  # Backpropagation\n        optimizer.step()  # Update weights\n        running_loss += loss.item()\n\n    print(f'Epoch [{epoch+1}\/{num_epochs}], Loss: {running_loss\/len(train_loader):.4f}')\n    <\/code><\/pre>\n<h3>4.5. Evaluating the Model<\/h3>\n<p>\n        Evaluate the trained model to check its accuracy on the test dataset. You can use the code below to perform the evaluation.\n    <\/p>\n<pre><code>\nmodel.eval()\ncorrect = 0\ntotal = 0\nwith torch.no_grad():\n    for images, labels in test_loader:\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 model on the test images: {100 * correct \/ total:.2f}%')\n    <\/code><\/pre>\n<h2>5. Conclusion<\/h2>\n<p>\n        In this course, we explored the basic structure of Convolutional Neural Networks (CNN), a core component of deep learning, as well as practical implementation methods using PyTorch. I hope you have gained an understanding of how to efficiently distinguish and classify features of image data through CNNs. The world of deep learning is vast, and it is being utilized in many future applications. I encourage you to continue improving your skills through ongoing learning and practice.\n    <\/p>\n<h2>6. References<\/h2>\n<p>\n        &#8211; Ian Goodfellow, Yoshua Bengio, Aaron Courville, <em>Deep Learning<\/em>, MIT Press, 2016<br \/>\n        &#8211; PyTorch Documentation: <a href=\"https:\/\/pytorch.org\/docs\/stable\/index.html\">https:\/\/pytorch.org\/docs\/stable\/index.html<\/a>\n<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction Deep learning is a field of machine learning and a major area of artificial intelligence research. Among them, Convolutional Neural Networks (CNN) are a highly effective structure for image recognition and processing. In this course, we will explore the basic structure and operation principles of CNN using PyTorch. 2. Basic Concepts of Convolutional &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36671\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Deep Learning PyTorch Course, Convolutional Neural Network Structure&#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-36671","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, Convolutional Neural Network Structure - \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\/36671\/\" \/>\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, Convolutional Neural Network Structure - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction Deep learning is a field of machine learning and a major area of artificial intelligence research. Among them, Convolutional Neural Networks (CNN) are a highly effective structure for image recognition and processing. In this course, we will explore the basic structure and operation principles of CNN using PyTorch. 2. Basic Concepts of Convolutional &hellip; \ub354 \ubcf4\uae30 &quot;Deep Learning PyTorch Course, Convolutional Neural Network Structure&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36671\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:50:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:52:17+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=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36671\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36671\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Deep Learning PyTorch Course, Convolutional Neural Network Structure\",\"datePublished\":\"2024-11-01T09:50:27+00:00\",\"dateModified\":\"2024-11-01T11:52:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36671\/\"},\"wordCount\":430,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"PyTorch Study\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36671\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36671\/\",\"name\":\"Deep Learning PyTorch Course, Convolutional Neural Network Structure - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:50:27+00:00\",\"dateModified\":\"2024-11-01T11:52:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36671\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36671\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36671\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Learning PyTorch Course, Convolutional Neural Network Structure\"}]},{\"@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, Convolutional Neural Network Structure - \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\/36671\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Learning PyTorch Course, Convolutional Neural Network Structure - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction Deep learning is a field of machine learning and a major area of artificial intelligence research. Among them, Convolutional Neural Networks (CNN) are a highly effective structure for image recognition and processing. In this course, we will explore the basic structure and operation principles of CNN using PyTorch. 2. Basic Concepts of Convolutional &hellip; \ub354 \ubcf4\uae30 \"Deep Learning PyTorch Course, Convolutional Neural Network Structure\"","og_url":"https:\/\/atmokpo.com\/w\/36671\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:50:27+00:00","article_modified_time":"2024-11-01T11:52:17+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":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36671\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36671\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Deep Learning PyTorch Course, Convolutional Neural Network Structure","datePublished":"2024-11-01T09:50:27+00:00","dateModified":"2024-11-01T11:52:17+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36671\/"},"wordCount":430,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["PyTorch Study"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36671\/","url":"https:\/\/atmokpo.com\/w\/36671\/","name":"Deep Learning PyTorch Course, Convolutional Neural Network Structure - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:50:27+00:00","dateModified":"2024-11-01T11:52:17+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36671\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36671\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36671\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Deep Learning PyTorch Course, Convolutional Neural Network Structure"}]},{"@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\/36671","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=36671"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36671\/revisions"}],"predecessor-version":[{"id":36672,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36671\/revisions\/36672"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}