{"id":5394,"date":"2024-03-14T02:47:12","date_gmt":"2024-03-14T02:47:12","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/"},"modified":"2025-08-01T14:32:09","modified_gmt":"2025-08-01T14:32:09","slug":"how-to-compress-and-prune-models-in-pytorch-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/","title":{"rendered":"PyTorch Model Compression: Pruning &#038; Quantization Guide"},"content":{"rendered":"<p>Model compression and pruning in PyTorch can be achieved by following these steps:<\/p>\n<ol>\n<li>Model compression: Models can be compressed using model quantization techniques, which reduce the precision of model parameters from 32-bit floating point to lower precision numbers, in order to decrease the model&#8217;s size and computational workload. PyTorch provides the torch.quantization module to assist users in implementing model quantization compression.<\/li>\n<li>Model pruning involves removing redundant parameters or neurons from the model in order to reduce the size and computational load while maintaining performance. PyTorch provides the torch.nn.utils.prune module to assist users in implementing model pruning operations, allowing users to choose different pruning algorithms and strategies as needed.<\/li>\n<\/ol>\n<p>Below is a simple example code that demonstrates how to prune a model 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<span class=\"hljs-keyword\">import<\/span> torch.nn.utils.prune <span class=\"hljs-keyword\">as<\/span> prune\r\n\r\n<span class=\"hljs-comment\"># \u5b9a\u4e49\u4e00\u4e2a\u7b80\u5355\u7684\u795e\u7ecf\u7f51\u7edc\u6a21\u578b<\/span>\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Net<\/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>(Net, self).__init__()\r\n        self.fc1 = nn.Linear(<span class=\"hljs-number\">784<\/span>, <span class=\"hljs-number\">256<\/span>)\r\n        self.fc2 = nn.Linear(<span class=\"hljs-number\">256<\/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 = torch.flatten(x, <span class=\"hljs-number\">1<\/span>)\r\n        x = self.fc1(x)\r\n        x = self.fc2(x)\r\n        <span class=\"hljs-keyword\">return<\/span> x\r\n\r\nmodel = Net()\r\n\r\n<span class=\"hljs-comment\"># \u4f7f\u7528L1\u8303\u6570\u8fdb\u884c\u526a\u679d\u64cd\u4f5c\uff0c\u526a\u679d\u6bd4\u4f8b\u4e3a50%<\/span>\r\nprune.l1_unstructured(model.fc1, name=<span class=\"hljs-string\">'weight'<\/span>, amount=<span class=\"hljs-number\">0.5<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u5bf9\u6a21\u578b\u8fdb\u884c\u526a\u679d\u540e\uff0c\u9700\u8981\u8c03\u7528apply\u65b9\u6cd5\u6765\u5e94\u7528\u526a\u679d\u64cd\u4f5c<\/span>\r\nprune.remove(model.fc1, <span class=\"hljs-string\">'weight'<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u53ef\u4ee5\u901a\u8fc7\u6253\u5370\u6a21\u578b\u53c2\u6570\u67e5\u770b\u526a\u679d\u540e\u7684\u6548\u679c<\/span>\r\n<span class=\"hljs-built_in\">print<\/span>(model.fc1.weight)\r\n<\/code><\/pre>\n<p>In the example above, we defined a simple neural network model and performed 50% weight pruning using the L1 norm. By printing the model parameters, we can see the effect of pruning. Users can optimize the model by choosing different pruning algorithms and pruning ratios as needed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Model compression and pruning in PyTorch can be achieved by following these steps: Model compression: Models can be compressed using model quantization techniques, which reduce the precision of model parameters from 32-bit floating point to lower precision numbers, in order to decrease the model&#8217;s size and computational workload. PyTorch provides the torch.quantization module to assist [&hellip;]<\/p>\n","protected":false},"author":5,"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":[1280,1193,5810,1239,1194],"class_list":["post-5394","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-deep-learning-optimization","tag-model-compression","tag-model-pruning","tag-pytorch","tag-quantization"],"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>PyTorch Model Compression: Pruning &amp; Quantization Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn PyTorch model compression techniques: quantization for size reduction and pruning to remove unnecessary parameters. Optimize your ML models!\" \/>\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-compress-and-prune-models-in-pytorch-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PyTorch Model Compression: Pruning &amp; Quantization Guide\" \/>\n<meta property=\"og:description\" content=\"Learn PyTorch model compression techniques: quantization for size reduction and pruning to remove unnecessary parameters. Optimize your ML models!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/\" \/>\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:47:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-01T14:32:09+00:00\" \/>\n<meta name=\"author\" content=\"Emily Johnson\" \/>\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=\"Emily Johnson\" \/>\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-compress-and-prune-models-in-pytorch-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/\"},\"author\":{\"name\":\"Emily Johnson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378\"},\"headline\":\"PyTorch Model Compression: Pruning &#038; Quantization Guide\",\"datePublished\":\"2024-03-14T02:47:12+00:00\",\"dateModified\":\"2025-08-01T14:32:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/\"},\"wordCount\":180,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Deep Learning Optimization\",\"model compression\",\"Model Pruning\",\"PyTorch\",\"quantization\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/\",\"name\":\"PyTorch Model Compression: Pruning & Quantization Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T02:47:12+00:00\",\"dateModified\":\"2025-08-01T14:32:09+00:00\",\"description\":\"Learn PyTorch model compression techniques: quantization for size reduction and pruning to remove unnecessary parameters. Optimize your ML models!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PyTorch Model Compression: Pruning &#038; Quantization Guide\"}]},{\"@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\/3b041b19cffc258705478ecfab895378\",\"name\":\"Emily Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g\",\"caption\":\"Emily Johnson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PyTorch Model Compression: Pruning & Quantization Guide - Blog - Silicon Cloud","description":"Learn PyTorch model compression techniques: quantization for size reduction and pruning to remove unnecessary parameters. Optimize your ML models!","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-compress-and-prune-models-in-pytorch-2\/","og_locale":"en_US","og_type":"article","og_title":"PyTorch Model Compression: Pruning & Quantization Guide","og_description":"Learn PyTorch model compression techniques: quantization for size reduction and pruning to remove unnecessary parameters. Optimize your ML models!","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T02:47:12+00:00","article_modified_time":"2025-08-01T14:32:09+00:00","author":"Emily Johnson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Emily Johnson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/"},"author":{"name":"Emily Johnson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3b041b19cffc258705478ecfab895378"},"headline":"PyTorch Model Compression: Pruning &#038; Quantization Guide","datePublished":"2024-03-14T02:47:12+00:00","dateModified":"2025-08-01T14:32:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/"},"wordCount":180,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Deep Learning Optimization","model compression","Model Pruning","PyTorch","quantization"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/","name":"PyTorch Model Compression: Pruning & Quantization Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T02:47:12+00:00","dateModified":"2025-08-01T14:32:09+00:00","description":"Learn PyTorch model compression techniques: quantization for size reduction and pruning to remove unnecessary parameters. Optimize your ML models!","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-compress-and-prune-models-in-pytorch-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PyTorch Model Compression: Pruning &#038; Quantization Guide"}]},{"@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\/3b041b19cffc258705478ecfab895378","name":"Emily Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5cb4e73d02ab1d79f2dfe919389ff7c1de072baa97686392031c03d858cc358?s=96&d=mm&r=g","caption":"Emily Johnson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/emilyjohnson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5394","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=5394"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5394\/revisions"}],"predecessor-version":[{"id":150141,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5394\/revisions\/150141"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=5394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=5394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=5394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}