{"id":5292,"date":"2024-03-14T02:37:56","date_gmt":"2024-03-14T02:37:56","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/"},"modified":"2025-08-01T13:10:36","modified_gmt":"2025-08-01T13:10:36","slug":"how-to-implement-a-convolutional-neural-network-in-pytorch","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/","title":{"rendered":"Build PyTorch CNN: Step-by-Step"},"content":{"rendered":"<p>In PyTorch, you can use the Conv2d class from the torch.nn module to implement a convolutional neural network. Here is a simple example demonstrating how to implement a basic convolutional neural network in PyTorch.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> torch\r\n<span class=\"hljs-keyword\">import<\/span> torch.nn <span class=\"hljs-keyword\">as<\/span> nn\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">SimpleCNN<\/span>(nn.Module):\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">__init__<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        <span class=\"hljs-built_in\">super<\/span>(SimpleCNN, self).__init__()\r\n        self.conv1 = nn.Conv2d(in_channels=<span class=\"hljs-number\">1<\/span>, out_channels=<span class=\"hljs-number\">16<\/span>, kernel_size=<span class=\"hljs-number\">3<\/span>, stride=<span class=\"hljs-number\">1<\/span>, padding=<span class=\"hljs-number\">1<\/span>)\r\n        self.relu = nn.ReLU()\r\n        self.pool = nn.MaxPool2d(kernel_size=<span class=\"hljs-number\">2<\/span>, stride=<span class=\"hljs-number\">2<\/span>)\r\n        self.conv2 = nn.Conv2d(in_channels=<span class=\"hljs-number\">16<\/span>, out_channels=<span class=\"hljs-number\">32<\/span>, kernel_size=<span class=\"hljs-number\">3<\/span>, stride=<span class=\"hljs-number\">1<\/span>, padding=<span class=\"hljs-number\">1<\/span>)\r\n        self.fc1 = nn.Linear(<span class=\"hljs-number\">32<\/span> * <span class=\"hljs-number\">7<\/span> * <span class=\"hljs-number\">7<\/span>, <span class=\"hljs-number\">128<\/span>)\r\n        self.fc2 = nn.Linear(<span class=\"hljs-number\">128<\/span>, <span class=\"hljs-number\">10<\/span>)\r\n\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">forward<\/span>(<span class=\"hljs-params\">self, x<\/span>):\r\n        x = self.conv1(x)\r\n        x = self.relu(x)\r\n        x = self.pool(x)\r\n        x = self.conv2(x)\r\n        x = self.relu(x)\r\n        x = self.pool(x)\r\n        x = x.view(-<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">32<\/span> * <span class=\"hljs-number\">7<\/span> * <span class=\"hljs-number\">7<\/span>)\r\n        x = self.fc1(x)\r\n        x = self.relu(x)\r\n        x = self.fc2(x)\r\n        <span class=\"hljs-keyword\">return<\/span> x\r\n\r\n<span class=\"hljs-comment\"># \u521b\u5efa\u4e00\u4e2aSimpleCNN\u5b9e\u4f8b<\/span>\r\nmodel = SimpleCNN()\r\n\r\n<span class=\"hljs-comment\"># \u5b9a\u4e49\u635f\u5931\u51fd\u6570\u548c\u4f18\u5316\u5668<\/span>\r\ncriterion = nn.CrossEntropyLoss()\r\noptimizer = torch.optim.Adam(model.parameters(), lr=<span class=\"hljs-number\">0.001<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u8bad\u7ec3\u6a21\u578b<\/span>\r\n<span class=\"hljs-keyword\">for<\/span> epoch <span class=\"hljs-keyword\">in<\/span> <span class=\"hljs-built_in\">range<\/span>(num_epochs):\r\n    <span class=\"hljs-keyword\">for<\/span> i, (images, labels) <span class=\"hljs-keyword\">in<\/span> <span class=\"hljs-built_in\">enumerate<\/span>(train_loader):\r\n        optimizer.zero_grad()\r\n        outputs = model(images)\r\n        loss = criterion(outputs, labels)\r\n        loss.backward()\r\n        optimizer.step()\r\n<\/code><\/pre>\n<p>In the example above, we have defined a simple convolutional neural network model, SimpleCNN, which includes two convolutional layers, ReLU activation function, max pooling layer, and two fully connected layers. We have defined the forward propagation process of the model in the forward method, and during the training process, we use cross-entropy loss function and Adam optimizer to train the model.<\/p>\n<p>In this way, we can utilize PyTorch to implement, train, and fine-tune convolutional neural network models.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In PyTorch, you can use the Conv2d class from the torch.nn module to implement a convolutional neural network. Here is a simple example demonstrating how to implement a basic convolutional neural network in PyTorch. import torch import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv1 = nn.Conv2d(in_channels=1, out_channels=16, kernel_size=3, stride=1, padding=1) self.relu = [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[3017,960,75,944,1239],"class_list":["post-5292","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-cnn","tag-deep-learning","tag-machine-learning","tag-neural-networks","tag-pytorch"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build PyTorch CNN: Step-by-Step - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to implement a convolutional neural network in PyTorch with our step-by-step guide. Complete code examples included for beginners and experts.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build PyTorch CNN: Step-by-Step\" \/>\n<meta property=\"og:description\" content=\"Learn how to implement a convolutional neural network in PyTorch with our step-by-step guide. Complete code examples included for beginners and experts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T02:37:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-01T13:10:36+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"Build PyTorch CNN: Step-by-Step\",\"datePublished\":\"2024-03-14T02:37:56+00:00\",\"dateModified\":\"2025-08-01T13:10:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/\"},\"wordCount\":117,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"CNN\",\"Deep Learning\",\"machine learning\",\"Neural Networks\",\"PyTorch\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/\",\"name\":\"Build PyTorch CNN: Step-by-Step - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T02:37:56+00:00\",\"dateModified\":\"2025-08-01T13:10:36+00:00\",\"description\":\"Learn how to implement a convolutional neural network in PyTorch with our step-by-step guide. Complete code examples included for beginners and experts.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build PyTorch CNN: Step-by-Step\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build PyTorch CNN: Step-by-Step - Blog - Silicon Cloud","description":"Learn how to implement a convolutional neural network in PyTorch with our step-by-step guide. Complete code examples included for beginners and experts.","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:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/","og_locale":"en_US","og_type":"article","og_title":"Build PyTorch CNN: Step-by-Step","og_description":"Learn how to implement a convolutional neural network in PyTorch with our step-by-step guide. Complete code examples included for beginners and experts.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T02:37:56+00:00","article_modified_time":"2025-08-01T13:10:36+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"Build PyTorch CNN: Step-by-Step","datePublished":"2024-03-14T02:37:56+00:00","dateModified":"2025-08-01T13:10:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/"},"wordCount":117,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["CNN","Deep Learning","machine learning","Neural Networks","PyTorch"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/","name":"Build PyTorch CNN: Step-by-Step - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T02:37:56+00:00","dateModified":"2025-08-01T13:10:36+00:00","description":"Learn how to implement a convolutional neural network in PyTorch with our step-by-step guide. Complete code examples included for beginners and experts.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-a-convolutional-neural-network-in-pytorch\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build PyTorch CNN: Step-by-Step"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=5292"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5292\/revisions"}],"predecessor-version":[{"id":150034,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5292\/revisions\/150034"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=5292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=5292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=5292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}