{"id":366,"date":"2025-05-27T22:15:54","date_gmt":"2025-05-27T14:15:54","guid":{"rendered":"https:\/\/www.s7arry.top\/?p=366"},"modified":"2025-05-27T22:18:38","modified_gmt":"2025-05-27T14:18:38","slug":"pytorch3","status":"publish","type":"post","link":"https:\/\/www.s7arry.top\/index.php\/2025\/05\/27\/pytorch3\/","title":{"rendered":"\u51c6\u725b\u9a6c\u7684Pytorch\u5b66\u4e60\uff083\uff09\u6a21\u578b\u642d\u5efa"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"xyZF6\">\u6a21\u578b\u521b\u5efa\u4e8enn.Module<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"odrMq\">\u6a21\u578b\u521b\u5efa\u6b65\u9aa4<\/h2>\n\n\n\n<p id=\"u70060ba2\">\u9996\u5148\u6784\u5efa\u7f51\u7edc\u5c42\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u5377\u79ef\u5c42\u3001\u6c60\u5316\u5c42\u3001\u6fc0\u6d3b\u51fd\u6570\u5c42\u7b49<\/p>\n\n\n\n<p id=\"ua53ef3e4\">\u7136\u540e\u62fc\u63a5\u7f51\u7edc\u5c42\uff0c\u6309\u7167\u4e00\u5b9a\u7684\u62d3\u6251\u7ed3\u6784\u548c\u987a\u5e8f\u62fc\u63a5\uff0c\u4f7f\u5176\u6210\u4e3aLeNet\uff0cAlexNet\uff0cResNet\u7b49<\/p>\n\n\n\n<p id=\"ubafa0bd3\">\u6700\u540e\u8fdb\u884c\u6743\u503c\u521d\u59cb\u5316\uff0cXavier\uff0cKaiming\uff0c\u5747\u5300\u5206\u5e03\uff0c\u6b63\u6001\u5206\u5e03\u7b49<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-193-1024x433.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"433\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-193-1024x433.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-367\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u263d0e01\">\u5728\u4e4b\u524d\u7684\u4eba\u6c11\u5e01\u4e8c\u5206\u7c7b\u95ee\u9898\u4e2d\u6211\u4eec\u5c31\u521b\u5efa\u4e86\u4e00\u4e2aLeNet\uff0c\u4e0b\u9762\u662fLeNet\u7684\u793a\u610f\u56fe<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-194-1024x431.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"431\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-194-1024x431.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-368\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u4b28b65b\">LeNet\u8ba1\u7b97\u56fe\uff1a\u8f93\u516532x32x3\u7684\u5f20\u91cf\uff0c\u7ecf\u8fc7\u590d\u6742\u8fd0\u7b97\u4e4b\u540e\uff0c\u6700\u540e\u8f93\u51fa\u957f\u5ea6\u4e3a10\u7684\u5411\u91cf<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-195-1024x419.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"419\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-195-1024x419.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-369\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"y1cfJ\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"b0V5r\">\u6a21\u578b\u6784\u5efa\u4e24\u8981\u7d20<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-196.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"971\" height=\"417\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-196.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-370\"  sizes=\"auto, (max-width: 971px) 100vw, 971px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"r19Kg\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BdiaW\">\u4ee3\u7801\u89e3\u91ca<\/h3>\n\n\n\n<p id=\"u9e2d4fe2\">\u63a5\u4e0b\u6765\u6211\u4eec\u901a\u8fc7\u4ee3\u7801\u6765\u770b\u770b\u6a21\u578b\u662f\u5982\u4f55\u88ab\u521b\u5efa\u7684\u3002<\/p>\n\n\n\n<pre id=\"uwN6j\" class=\"wp-block-code\"><code># ============================ step 2\/5 \u6a21\u578b ============================\nnet = LeNet(classes=2)\nnet.initialize_weights()<\/code><\/pre>\n\n\n\n<p id=\"u814f038a\">\u6211\u4eec\u8fdb\u5165LeNet\u7684\u5b9a\u4e49\uff1a\u521b\u5efa2\u4e2a\u4e8c\u7ef4\u5377\u79ef\u5c42\u548c3\u4e2a\u5168\u8fde\u63a5\u5c42<\/p>\n\n\n\n<pre id=\"GDW5h\" class=\"wp-block-code\"><code>class LeNet(nn.Module):\n    def __init__(self, classes):\n        super(LeNet, self).__init__()\n        self.conv1 = nn.Conv2d(3, 6, 5)\n        self.conv2 = nn.Conv2d(6, 16, 5)\n        self.fc1 = nn.Linear(16*5*5, 120)\n        self.fc2 = nn.Linear(120, 84)\n        self.fc3 = nn.Linear(84, classes)<\/code><\/pre>\n\n\n\n<p id=\"u36d7b615\">\u968f\u540e\u8fdb\u884c\u4e86\u6743\u503c\u7684\u521d\u59cb\u5316<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"kxcXc\"\/>\n\n\n\n<p id=\"uabc4a0a9\">\u4e0b\u4e00\u6b65\u5c31\u662f\u5728\u6a21\u578b\u8bad\u7ec3\u65f6\u8fdb\u884c\u524d\u5411\u4f20\u64ad<\/p>\n\n\n\n<pre id=\"jXyLN\" class=\"wp-block-code\"><code># forward\n    inputs, labels = data\n    outputs = net(inputs)<\/code><\/pre>\n\n\n\n<p id=\"ua31b5d02\">\u8f6c\u5165\u5230lenet.py\u4e2d\uff0c\u53ef\u4ee5\u770b\u5230\u524d\u5411\u4f20\u64ad\u7684\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre id=\"XOB3B\" class=\"wp-block-code\"><code>def forward(self, x):\n        out = F.relu(self.conv1(x))\n        out = F.max_pool2d(out, 2)\n        out = F.relu(self.conv2(out))\n        out = F.max_pool2d(out, 2)\n        out = out.view(out.size(0), -1)\n        out = F.relu(self.fc1(out))\n        out = F.relu(self.fc2(out))\n        out = self.fc3(out)\n        return out<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"bYA0A\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"eKWVC\">nn.Module<\/h2>\n\n\n\n<p id=\"uc2414a10\">\u5728\u6a21\u578b\u6a21\u5757\u4e2d\uff0c\u6240\u6709\u6a21\u578b\u548c\u7f51\u7edc\u5c42\u90fd\u662f\u7ee7\u627f\u4e8enn.Module\u7c7b\uff0c\u56e0\u6b64\u975e\u5e38\u6709\u5fc5\u8981\u5b66\u4e60<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"JGVoo\">torch.nn<\/h3>\n\n\n\n<p id=\"u2383a79f\">torch.nn\uff0c\u662fpytorch\u4e2d\u7684\u795e\u7ecf\u7f51\u7edc\u6a21\u5757\uff0c\u5305\u542b\u4e86\u5f88\u591a\u5b50\u6a21\u5757<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-197-1024x451.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-197-1024x451.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-371\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"YFzYX\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"JfUiR\">nn.Module<\/h3>\n\n\n\n<p id=\"u531979cb\">\u5728nn.Module\u4e2d\u67098\u4e2a\u91cd\u8981\u7684\u5c5e\u6027<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-198.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"924\" height=\"495\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-198.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-372\"  sizes=\"auto, (max-width: 924px) 100vw, 924px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"XKrGO\"\/>\n\n\n\n<p id=\"u50df4316\">\u63a5\u4e0b\u6765\u6211\u4eec\u56de\u5230\u4e4b\u524d\u7684\u4ee3\u7801\uff0c\u770b\u770bnn.Module\u662f\u5982\u4f55\u521b\u5efa\u7684<\/p>\n\n\n\n<pre id=\"k74hZ\" class=\"wp-block-code\"><code>class LeNet(nn.Module):\n    def __init__(self, classes):\n        super(LeNet, self).__init__()\n        self.conv1 = nn.Conv2d(3, 6, 5)\n        self.conv2 = nn.Conv2d(6, 16, 5)\n        self.fc1 = nn.Linear(16*5*5, 120)\n        self.fc2 = nn.Linear(120, 84)\n        self.fc3 = nn.Linear(84, classes)<\/code><\/pre>\n\n\n\n<p id=\"ua8ba027c\">\u9996\u5148\u8c03\u7528\u4e86\u7236\u7c7b\u4e2d\u7684init\u51fd\u6570\u8fdb\u884c\u521d\u59cb\u5316<\/p>\n\n\n\n<p id=\"ud3a175dc\">\u5728lenet.py\u4e2d\uff0c\u9996\u5148\u8c03\u7528\u4e86\u7236\u7c7b\u4e2d\u7684init\u51fd\u6570\u8fdb\u884c\u521d\u59cb\u5316\uff0c\u8c03\u7528\u4e86module.py\u4e2d\u7684init\u51fd\u6570<\/p>\n\n\n\n<pre id=\"hObVF\" class=\"wp-block-code\"><code>def __init__(self, *args, **kwargs) -&gt; None:\n    \"\"\"Initialize internal Module state, shared by both nn.Module and ScriptModule.\"\"\"\n    torch._C._log_api_usage_once(\"python.nn_module\")\n\n    # Backward compatibility: no args used to be allowed when call_super_init=False\n    if self.call_super_init is False and bool(kwargs):\n            raise TypeError(\"{}.__init__() got an unexpected keyword argument '{}'\"\n                            \"\".format(type(self).__name__, next(iter(kwargs))))\n\n    if self.call_super_init is False and bool(args):\n            raise TypeError(f\"{type(self).__name__}.__init__() takes 1 positional argument but {len(args) + 1} were\"\n                            \" given\")\n\n    super().__setattr__('training', True)\n    super().__setattr__('_parameters', OrderedDict())\n    super().__setattr__('_buffers', OrderedDict())\n    super().__setattr__('_non_persistent_buffers_set', set())\n    super().__setattr__('_backward_pre_hooks', OrderedDict())\n    super().__setattr__('_backward_hooks', OrderedDict())\n    super().__setattr__('_is_full_backward_hook', None)\n    super().__setattr__('_forward_hooks', OrderedDict())\n    super().__setattr__('_forward_hooks_with_kwargs', OrderedDict())\n    super().__setattr__('_forward_hooks_always_called', OrderedDict())\n    super().__setattr__('_forward_pre_hooks', OrderedDict())\n    super().__setattr__('_forward_pre_hooks_with_kwargs', OrderedDict())\n    super().__setattr__('_state_dict_hooks', OrderedDict())\n    super().__setattr__('_state_dict_pre_hooks', OrderedDict())\n    super().__setattr__('_load_state_dict_pre_hooks', OrderedDict())\n    super().__setattr__('_load_state_dict_post_hooks', OrderedDict())\n    super().__setattr__('_modules', OrderedDict())<\/code><\/pre>\n\n\n\n<p id=\"u6da5abe1\">\u53ef\u4ee5\u770b\u5230\u8bbe\u7f6e\u4e86\u5f88\u591a\u7684\u5c5e\u6027\uff0c\u4ee5\u53catraining\u8bad\u7ec3\u72b6\u6001\u8bbe\u7f6e\u4e3atrue\uff0c\u8fd9\u4e2a\u51fd\u6570\u5c31\u662f\u521d\u59cb\u5316\u4e86nn.Module\u7684\u521d\u59cb\u5c5e\u6027<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"xjlgL\"\/>\n\n\n\n<p id=\"ua0654d43\">\u4e0b\u4e00\u6b65\u521b\u5efa\u5377\u79ef\u5c42\uff0c\u6211\u4eec\u8fdb\u5165\u5230conv.py\u4e2d\u770b\u5230init\u51fd\u6570<\/p>\n\n\n\n<pre id=\"w7HC4\" class=\"wp-block-code\"><code>class Conv2d(_ConvNd):\ndef __init__(\n        self,\n        in_channels: int,\n        out_channels: int,\n        kernel_size: _size_2_t,\n        stride: _size_2_t = 1,\n        padding: Union&#91;str, _size_2_t] = 0,\n        dilation: _size_2_t = 1,\n        groups: int = 1,\n        bias: bool = True,\n        padding_mode: str = 'zeros',  # TODO: refine this type\n        device=None,\n        dtype=None\n    ) -&gt; None:\n        factory_kwargs = {'device': device, 'dtype': dtype}\n        kernel_size_ = _pair(kernel_size)\n        stride_ = _pair(stride)\n        padding_ = padding if isinstance(padding, str) else _pair(padding)\n        dilation_ = _pair(dilation)\n        super().__init__(\n            in_channels, out_channels, kernel_size_, stride_, padding_, dilation_,\n            False, _pair(0), groups, bias, padding_mode, **factory_kwargs)<\/code><\/pre>\n\n\n\n<p id=\"u64790ecf\">Conv2d\u8fd9\u4e2a\u7c7b\u7ee7\u627f\u4e8eConvNd\uff0cinit\u4e2d\u8bbe\u7f6e\u4e86\u4e00\u4e9b\u53c2\u6570\u5c5e\u6027\uff0c\u7136\u540e\u8c03\u7528\u4e86\u7236\u7c7b\u7684init\u51fd\u6570<\/p>\n\n\n\n<pre id=\"RoCxn\" class=\"wp-block-code\"><code>class _ConvNd(Module):\n    def __init__(self,\n                 in_channels: int,\n                 out_channels: int,\n                 kernel_size: Tuple&#91;int, ...],\n                 stride: Tuple&#91;int, ...],\n                 padding: Tuple&#91;int, ...],\n                 dilation: Tuple&#91;int, ...],\n                 transposed: bool,\n                 output_padding: Tuple&#91;int, ...],\n                 groups: int,\n                 bias: bool,\n                 padding_mode: str,\n                 device=None,\n                 dtype=None) -&gt; None:\n        factory_kwargs = {'device': device, 'dtype': dtype}\n        super().__init__()<\/code><\/pre>\n\n\n\n<p id=\"u0f85f0fc\">\u53ef\u4ee5\u770b\u5230ConvNd\u7ee7\u627f\u4e8eModule\uff0c\u4e5f\u8c03\u7528\u4e86Module\u7684init\u51fd\u6570\uff0c\u521d\u59cb\u5316\u4e868\u4e2a\u6709\u5e8f\u5b57\u5178<\/p>\n\n\n\n<p id=\"u9c738f1c\">\u7ecf\u8fc7\u8fd9\u4e00\u7cfb\u5217\u7684\u64cd\u4f5c\uff0c\u6211\u4eec\u5c31\u6210\u529f\u521b\u5efa\u4e86\u5377\u79ef\u5c42\u5e76\u5b58\u5165module\u8fdb\u884c\u7ba1\u7406<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"ecb1h\"\/>\n\n\n\n<p id=\"u3360664f\">\u5728\u6211\u4eec\u521b\u5efa\u7b2c2\u4e2a\u5377\u79ef\u5c42\u540e\uff0c\u5728\u8d4b\u503c\u65f6\uff0c\u4f1a\u88absetattr\u51fd\u6570\u62e6\u622a\uff0c\u4f1a\u8df3\u8f6c\u5230Module\u4e2d\u7684setattr\u51fd\u6570<\/p>\n\n\n\n<pre id=\"zekBc\" class=\"wp-block-code\"><code>def add_module(self, name: str, module: Optional&#91;'Module']) -&gt; None:\n        r\"\"\"Add a child module to the current module.\n\n        The module can be accessed as an attribute using the given name.\n\n        Args:\n            name (str): name of the child module. The child module can be\n                accessed from this module using the given name\n            module (Module): child module to be added to the module.\n        \"\"\"\n        if not isinstance(module, Module) and module is not None:\n            raise TypeError(f\"{torch.typename(module)} is not a Module subclass\")\n        elif not isinstance(name, str):\n            raise TypeError(f\"module name should be a string. Got {torch.typename(name)}\")\n        elif hasattr(self, name) and name not in self._modules:\n            raise KeyError(f\"attribute '{name}' already exists\")\n        elif '.' in name:\n            raise KeyError(f\"module name can't contain \\\".\\\", got: {name}\")\n        elif name == '':\n            raise KeyError(\"module name can't be empty string \\\"\\\"\")\n        for hook in _global_module_registration_hooks.values():\n            output = hook(self, name, module)\n            if output is not None:\n                module = output\n        self._modules&#91;name] = module<\/code><\/pre>\n\n\n\n<p id=\"u07ae35b5\">\u5224\u65ad\u662f\u5426\u4e3amodule\uff0c\u7136\u540e\u52a0\u5165\u5230_modules\u4e2d<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"SMLg4\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"uZu69\">\u603b\u7ed3<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-199.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"774\" height=\"268\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-199.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-373\"  sizes=\"auto, (max-width: 774px) 100vw, 774px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"Sf5gk\"\/>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"W0k2S\">\u6a21\u578b\u5bb9\u5668\u4e0eAlexNet\u6784\u5efa<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ZPqJp\">\u6a21\u578b\u5bb9\u5668\u2014\u2014Containers<\/h2>\n\n\n\n<p id=\"ue9a5f212\">\u5728pytorch\u4e2d\u63d0\u4f9b\u4e86\u4e09\u4e2a\u5e38\u7528\u7684Containers<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-200-1024x458.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"458\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-200-1024x458.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-374\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"U7nFx\">Sequential<\/h3>\n\n\n\n<p id=\"u7243ea0d\">\u5728\u673a\u5668\u5b66\u4e60\u4e2d\u6709\u7279\u5f81\u5de5\u7a0b\u8fd9\u4e00\u64cd\u4f5c\uff0c\u4f46\u5728\u6df1\u5ea6\u5b66\u4e60\u4e2d\u5f31\u5316\u4e86\u8fd9\u4e00\u6982\u5ff5\u3002<\/p>\n\n\n\n<p id=\"ueca5c88e\">\u5728\u6df1\u5ea6\u5b66\u4e60\u4e2d\u4e5f\u6709\u4e60\u60ef\uff0c\u4ee5\u5168\u8fde\u63a5\u5c42\u4e3a\u754c\u9650\uff0c\u5c06\u6a21\u578b\u5212\u5206\u4e3a\u7279\u5f81\u63d0\u53d6\u6a21\u5757\u548c\u5206\u7c7b\u6a21\u5757\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-201-1024x464.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"464\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-201-1024x464.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-375\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"ufe0a481a\">\u6211\u4eec\u53ef\u4ee5\u7528Sequential\u5206\u522b\u5305\u88c5\u4e24\u7ec4\u7f51\u7edc\u5c42\uff0c\u7136\u540e\u7ec4\u88c5\u6210\u4e00\u4e2a\u795e\u7ecf\u7f51\u7edc<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"gkFCE\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"HjLSh\">\u65b9\u6cd5\u4e00<\/h4>\n\n\n\n<p id=\"u2a664b02\">\u76f4\u63a5\u770b\u4ee3\u7801\uff0c\u521b\u5efa\u4e00\u4e2a\u7c7b\uff0c\u53ef\u4ee5\u5c06\u4e4b\u524dLeNet\u5206\u4e3a\u4e24\u90e8\u5206\uff0c\u7528Sequential\u5305\u88c5<\/p>\n\n\n\n<p id=\"u66895260\">\u7136\u540e\u5b9a\u4e49\u524d\u5411\u4f20\u64ad<\/p>\n\n\n\n<pre id=\"A0KQO\" class=\"wp-block-code\"><code># ============================ Sequential\nclass LeNetSequential(nn.Module):\n    def __init__(self, classes):\n        super(LeNetSequential, self).__init__()\n        self.features = nn.Sequential(\n            nn.Conv2d(3, 6, 5),\n            nn.ReLU(),\n            nn.MaxPool2d(kernel_size=2, stride=2),\n            nn.Conv2d(6, 16, 5),\n            nn.ReLU(),\n            nn.MaxPool2d(kernel_size=2, stride=2),)\n\n        self.classifier = nn.Sequential(\n            nn.Linear(16*5*5, 120),\n            nn.ReLU(),\n            nn.Linear(120, 84),\n            nn.ReLU(),\n            nn.Linear(84, classes),)\n\n    def forward(self, x):\n        x = self.features(x)\n        x = x.view(x.size()&#91;0], -1)\n        x = self.classifier(x)\n        return x<\/code><\/pre>\n\n\n\n<p id=\"u31af343c\">\u63a5\u4e0b\u6765\u6211\u4eec\u8fdb\u5165container.py\u4e2d\u770b\u770bSequential\u8fd9\u4e2a\u7c7b<\/p>\n\n\n\n<p id=\"uedb2e1b0\">Sequential\u8fd9\u4e2a\u7c7b\u4f9d\u65e7\u7ee7\u627f\u4e8eModule\uff0c\u5728init\u51fd\u6570\u4e2d\u8c03\u7528\u4e86\u7236\u7c7b\u7684init\uff0c\u968f\u540e\u5224\u65ad\u53c2\u6570\u662f\u5426\u4e3a\u5b57\u5178\uff0c\u975e\u5b57\u5178\u5219for\u5faa\u73af\u8f6e\u6d41\u8c03\u7528add_module\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u5c06\u7f51\u7edc\u6dfb\u52a0\u5230Sequential\u4e2d<\/p>\n\n\n\n<pre id=\"ORzdI\" class=\"wp-block-code\"><code>class Sequential(Module):\n    def __init__(self, *args):\n        super().__init__()\n        if len(args) == 1 and isinstance(args&#91;0], OrderedDict):\n            for key, module in args&#91;0].items():\n                self.add_module(key, module)\n        else:\n            for idx, module in enumerate(args):\n                self.add_module(str(idx), module)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"MtEqy\"\/>\n\n\n\n<p id=\"ua1ee0db0\">\u56de\u5230\u539f\u6765\u7684\u4ee3\u7801\uff0c\u521b\u5efa\u4e00\u4e2a\u968f\u673a\u5f20\u91cf\uff0c\u4f20\u5165\u7f51\u7edc<\/p>\n\n\n\n<pre id=\"iuQWy\" class=\"wp-block-code\"><code>net = LeNetSequential(classes=2)\nnet = LeNetSequentialOrderDict(classes=2)\n\nfake_img = torch.randn((4, 3, 32, 32), dtype=torch.float32)\n\noutput = net(fake_img)<\/code><\/pre>\n\n\n\n<p id=\"u80f84dd1\">\u968f\u540e\u8df3\u8f6c\u5230module\u7684__call__\u51fd\u6570<\/p>\n\n\n\n<pre id=\"PBE5b\" class=\"wp-block-code\"><code>def __call__(self, *args: Any, **kwargs: Any) -&gt; Any:\n        if self.with_module:\n            module = self.module()\n            if module is None:\n                raise RuntimeError(\"You are trying to call the hook of a dead Module!\")\n            return self.hook(module, *args, **kwargs)\n        return self.hook(*args, **kwargs)<\/code><\/pre>\n\n\n\n<p id=\"u45e287b0\">\u968f\u540e\u8df3\u8f6c\u5230\u6211\u4eec\u81ea\u5b9a\u4e49\u7684forward\u51fd\u6570<\/p>\n\n\n\n<pre id=\"lEHHX\" class=\"wp-block-code\"><code>def forward(self, x):\n        x = self.features(x)\n        x = x.view(x.size()&#91;0], -1)\n        x = self.classifier(x)\n        return x<\/code><\/pre>\n\n\n\n<p id=\"u12f8f12d\">\u4e4b\u540e\u518d\u8fdb\u5165container.py\u4e2d\u7684forward\uff0c\u975e\u5e38\u7b80\u6d01\uff0c\u76f4\u63a5\u7528for\u5faa\u73afmodule\uff0c\u5bf9\u8f93\u5165\u7684\u53c2\u6570\u8fdb\u884c\u8ba1\u7b97<\/p>\n\n\n\n<pre id=\"N6qG0\" class=\"wp-block-code\"><code>def forward(self, input):\n        for module in self:\n            input = module(input)\n        return input<\/code><\/pre>\n\n\n\n<p id=\"u86d98291\">\u6700\u540e\u6211\u4eec\u5f97\u5230\u4e86\u4e00\u4e2aoutput<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"kIdco\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Fwgun\">\u65b9\u6cd5\u4e8c<\/h4>\n\n\n\n<p id=\"uc77d1a06\">\u65b9\u6cd5\u4e00\u4e2d\u7f51\u7edc\u5c42\u662f\u4ee5\u7f16\u53f7 \u6309\u987a\u5e8f\u6392\u5217\u7684\uff0c\u5f53\u7f51\u7edc\u5c42\u8fc7\u591a\u65f6\uff0c\u5c31\u5f88\u4e0d\u65b9\u4fbf\u3002<\/p>\n\n\n\n<p id=\"ua8fa53d9\">\u56e0\u6b64\u8fd8\u6709\u53e6\u4e00\u79cd\u65b9\u6cd5\uff0c\u53ef\u4ee5\u7ed9\u7f51\u7edc\u5c42\u8fdb\u884c\u547d\u540d\u3002<\/p>\n\n\n\n<pre id=\"TQTWY\" class=\"wp-block-code\"><code>class LeNetSequentialOrderDict(nn.Module):\n    def __init__(self, classes):\n        super(LeNetSequentialOrderDict, self).__init__()\n\n        self.features = nn.Sequential(OrderedDict({\n            'conv1': nn.Conv2d(3, 6, 5),\n            'relu1': nn.ReLU(inplace=True),\n            'pool1': nn.MaxPool2d(kernel_size=2, stride=2),\n\n            'conv2': nn.Conv2d(6, 16, 5),\n            'relu2': nn.ReLU(inplace=True),\n            'pool2': nn.MaxPool2d(kernel_size=2, stride=2),\n        }))\n\n        self.classifier = nn.Sequential(OrderedDict({\n            'fc1': nn.Linear(16*5*5, 120),\n            'relu3': nn.ReLU(),\n\n            'fc2': nn.Linear(120, 84),\n            'relu4': nn.ReLU(inplace=True),\n\n            'fc3': nn.Linear(84, classes),\n        }))\n\n    def forward(self, x):\n        x = self.features(x)\n        x = x.view(x.size()&#91;0], -1)\n        x = self.classifier(x)\n        return x<\/code><\/pre>\n\n\n\n<p id=\"u0dc69d8a\">\u76f4\u63a5\u8fdb\u5165container.py\uff0csequential\u7c7b\u7684init\u51fd\u6570\uff0c\u5f53\u6211\u4eec\u8f93\u5165\u7684\u662f\u4e00\u4e2aOrderedDict\uff0c\u5219\u4f1a\u901a\u8fc7\u5b57\u5178\u6765\u7ed9\u7f51\u7edc\u5c42\u4e00\u4e2akey\uff0c\u5e76\u6dfb\u52a0\u503c\u3002\uff08\u5b57\u5178\uff08\u6cdb\u578b\uff09\uff1a\u952e\u503c\u5bf9\uff09<\/p>\n\n\n\n<pre id=\"rmwEV\" class=\"wp-block-code\"><code>def __init__(self, *args):\n        super().__init__()\n        if len(args) == 1 and isinstance(args&#91;0], OrderedDict):\n            for key, module in args&#91;0].items():\n                self.add_module(key, module)\n        else:\n            for idx, module in enumerate(args):\n                self.add_module(str(idx), module)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"Qjkcw\"\/>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-202.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"148\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-202.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-376\"  sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"AZMiH\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"jS28q\">ModuleList<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-203-1024x236.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"236\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-203-1024x236.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-377\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"kbPw4\"\/>\n\n\n\n<p id=\"u066c9951\">\u76f4\u63a5\u770b\u4ee3\u7801\uff0cModuleList\u521d\u59cb\u5316\u76f4\u63a5\u5faa\u73af\u521b\u5efa<\/p>\n\n\n\n<pre id=\"eXXsO\" class=\"wp-block-code\"><code># ============================ ModuleList\n\nclass ModuleList(nn.Module):\n    def __init__(self):\n        super(ModuleList, self).__init__()\n        self.linears = nn.ModuleList(&#91;nn.Linear(10, 10) for i in range(20)])\n\n    def forward(self, x):\n        for i, linear in enumerate(self.linears):\n            x = linear(x)\n        return x<\/code><\/pre>\n\n\n\n<p id=\"ud55528fc\">\u8fdb\u5165ModuleList\u7c7b\uff0c\u770b\u770binit\uff0c\u5341\u5206\u7b80\u5355\uff0c\u5224\u65ad\u662f\u5426\u4e3a\u7a7a\uff0c\u968f\u540e\u8fdb\u884cmodule\u7684\u62fc\u63a5<\/p>\n\n\n\n<pre id=\"VoXDs\" class=\"wp-block-code\"><code>    def __init__(self, modules: Optional&#91;Iterable&#91;Module]] = None) -&gt; None:\n        super().__init__()\n        if modules is not None:\n            self += modules<\/code><\/pre>\n\n\n\n<p id=\"uf7ffbaff\">\u4e4b\u540e\u5728\u524d\u5411\u4f20\u64ad\u4e2d\uff0c\u901a\u8fc7for\u5faa\u73af\u83b7\u5f97\u6bcf\u4e00\u4e2a\u7f51\u7edc\u5c42<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"B7fXQ\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"KpNOo\">ModuleDict<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-204-1024x340.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"340\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-204-1024x340.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-378\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"tTyeh\"\/>\n\n\n\n<p id=\"u73bdfd1c\">\u4f9d\u65e7\u662f\u770b\u4ee3\u7801\uff0c\u4e0eSequential\u6709\u70b9\u7c7b\u4f3c<\/p>\n\n\n\n<pre id=\"wBzNA\" class=\"wp-block-code\"><code>class ModuleDict(nn.Module):\n    def __init__(self):\n        super(ModuleDict, self).__init__()\n        self.choices = nn.ModuleDict({\n            'conv': nn.Conv2d(10, 10, 3),\n            'pool': nn.MaxPool2d(3)\n        })\n\n        self.activations = nn.ModuleDict({\n            'relu': nn.ReLU(),\n            'prelu': nn.PReLU()\n        })\n\n    def forward(self, x, choice, act):\n        x = self.choices&#91;choice](x)\n        x = self.activations&#91;act](x)\n        return x<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"YCFat\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"XLm2y\">\u603b\u7ed3<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-205.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"964\" height=\"198\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-205.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-379\"  sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"mvxL2\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"evmWK\">AlexNet<\/h2>\n\n\n\n<p id=\"u4282a8cc\">\u7b80\u4ecb<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-206-1024x439.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"439\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-206-1024x439.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-380\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u039a1664\">\u7ed3\u6784\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-207-1024x418.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"418\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-207-1024x418.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-381\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u91575ef4\">\u4ee3\u7801\uff1aalexnet.py<\/p>\n\n\n\n<pre id=\"zU0L9\" class=\"wp-block-code\"><code>class AlexNet(nn.Module):\n    def __init__(self, num_classes: int = 1000, dropout: float = 0.5) -&gt; None:\n        super().__init__()\n        _log_api_usage_once(self)\n        self.features = nn.Sequential(\n            nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),\n            nn.ReLU(inplace=True),\n            nn.MaxPool2d(kernel_size=3, stride=2),\n            nn.Conv2d(64, 192, kernel_size=5, padding=2),\n            nn.ReLU(inplace=True),\n            nn.MaxPool2d(kernel_size=3, stride=2),\n            nn.Conv2d(192, 384, kernel_size=3, padding=1),\n            nn.ReLU(inplace=True),\n            nn.Conv2d(384, 256, kernel_size=3, padding=1),\n            nn.ReLU(inplace=True),\n            nn.Conv2d(256, 256, kernel_size=3, padding=1),\n            nn.ReLU(inplace=True),\n            nn.MaxPool2d(kernel_size=3, stride=2),\n        )\n        self.avgpool = nn.AdaptiveAvgPool2d((6, 6))\n        self.classifier = nn.Sequential(\n            nn.Dropout(p=dropout),\n            nn.Linear(256 * 6 * 6, 4096),\n            nn.ReLU(inplace=True),\n            nn.Dropout(p=dropout),\n            nn.Linear(4096, 4096),\n            nn.ReLU(inplace=True),\n            nn.Linear(4096, num_classes),\n        )\n\n    def forward(self, x: torch.Tensor) -&gt; torch.Tensor:\n        x = self.features(x)\n        x = self.avgpool(x)\n        x = torch.flatten(x, 1)\n        x = self.classifier(x)\n        return x<\/code><\/pre>\n\n\n\n<p id=\"u06f16091\">\u7ecf\u8fc7\u4ee5\u4e0a\u7684\u5b66\u4e60\uff0c\u8fd9\u91cc\u5c31\u80fd\u770b\u660e\u767d\u4e86\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"Cfq0m\"\/>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"cRTXm\">\u5377\u79ef\u5c42<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"YxXPX\">1d\/2d\/3d Convolution<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-208.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1025\" height=\"428\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-208.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-382\"  sizes=\"auto, (max-width: 1025px) 100vw, 1025px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u1b505850\">\u5377\u79ef\u6838\u662f\u7279\u5f81\u63d0\u53d6\u5668<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-209.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"432\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-209.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-383\"  sizes=\"auto, (max-width: 1023px) 100vw, 1023px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u91b0df70\">\u5377\u79ef\u7ef4\u5ea6<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-210-1024x412.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"412\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-210-1024x412.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-384\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"IbMce\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Libgp\">nn.Conv2d<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-211-1024x440.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"440\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-211-1024x440.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-385\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p id=\"ue5d77f7b\">\u8fd9\u91cc\u6ce8\u610f\u4e00\u4e0b\u7a7a\u6d1e\u5377\u79ef\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-212.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"289\" height=\"287\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-212.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-386\"  sizes=\"auto, (max-width: 289px) 100vw, 289px\" \/><\/div><\/figure>\n<\/div>\n\n\n<p id=\"ub8e78291\">\u5c3a\u5bf8\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-213.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"452\" height=\"118\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-213.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-387\"  sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><\/div><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-214.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"650\" height=\"132\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-214.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-388\"  sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/div><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"c73Vt\"\/>\n\n\n\n<p id=\"u686ac9f8\">\u770b\u4ee3\u7801<\/p>\n\n\n\n<pre id=\"RHoF5\" class=\"wp-block-code\"><code>set_seed(3)  # \u8bbe\u7f6e\u968f\u673a\u79cd\u5b50\n\n# ================================= load img ==================================\npath_img = os.path.join(os.path.dirname(os.path.abspath(__file__)), \"lena.png\")\nimg = Image.open(path_img).convert('RGB')  # 0~255\n\n# convert to tensor\nimg_transform = transforms.Compose(&#91;transforms.ToTensor()])\nimg_tensor = img_transform(img)\nimg_tensor.unsqueeze_(dim=0)    # C*H*W to B*C*H*W\n\n# ================================= create convolution layer ==================================\n\n# ================ 2d\nflag = 1\n# flag = 0\nif flag:\n    conv_layer = nn.Conv2d(3, 1, 3)   # input:(i, o, size) weights:(o, i , h, w)\n    nn.init.xavier_normal_(conv_layer.weight.data)\n\n    # calculation\n    img_conv = conv_layer(img_tensor)\n\n# ================================= visualization ==================================\nprint(\"\u5377\u79ef\u524d\u5c3a\u5bf8:{}\\n\u5377\u79ef\u540e\u5c3a\u5bf8:{}\".format(img_tensor.shape, img_conv.shape))\nimg_conv = transform_invert(img_conv&#91;0, 0:1, ...], img_transform)\nimg_raw = transform_invert(img_tensor.squeeze(), img_transform)\nplt.subplot(122).imshow(img_conv, cmap='gray')\nplt.subplot(121).imshow(img_raw)\nplt.show()<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"euP46\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Ozfd9\">\u8f6c\u7f6e\u5377\u79ef<\/h2>\n\n\n\n<p id=\"uea17e9d6\">\u8f6c\u7f6e\u5377\u79ef\u53c8\u79f0\u4e3a<s>\u53cd\u5377\u79ef<\/s>\uff08Deconvolution\uff09\u548c\u90e8\u5206\u8de8\u8d8a\u5377\u79ef\uff08Fractionally-strided Convolution\uff09\uff0c\u7528\u4e8e\u5bf9\u56fe\u50cf\u8fdb\u884c\u4e0a\u91c7\u6837\uff08UpSample\uff09<\/p>\n\n\n\n<p id=\"ueb4ccc62\">\u4e3a\u4ec0\u4e48\u79f0\u4e3a\u8f6c\u7f6e\u5377\u79ef\uff1f<\/p>\n\n\n\n<p id=\"u9c2ce9ec\">\u6b63\u5e38\u5377\u79ef\uff1a<\/p>\n\n\n\n<p id=\"uc3d637de\">\u5047\u8bbe\u56fe\u50cf\u5c3a\u5bf8\u4e3a4*4,\u5377\u79ef\u6838\u4e3a3*3,padding=0,stride=1<\/p>\n\n\n\n<p id=\"u9fa96532\">\u56fe\u50cf I16*1 \u5377\u79ef\u6838\uff1aK4*16 \u8f93\u51fa\uff1aO4*1 = K<strong>4*16<\/strong> * I16*1<\/p>\n\n\n\n<p id=\"u5d8e3431\">\u8f6c\u7f6e\u5377\u79ef\uff1a<\/p>\n\n\n\n<p id=\"u7d643490\">\u5047\u8bbe\u56fe\u50cf\u5c3a\u5bf8\u4e3a2*2,\u5377\u79ef\u6838\u4e3a3*3*3, padding=0,stride=1<\/p>\n\n\n\n<p id=\"uacb012c2\">\u56fe\u50cf\uff1aI4*1 \u5377\u79ef\u6838\uff1aK16*4 \u8f93\u51fa\uff1aO16*1 = K<strong>16*4<\/strong> * I4*1<\/p>\n\n\n\n<p id=\"uf1ff7e20\">\u5377\u79ef\u6838\u5728\u5f62\u72b6\u4e0a\u662f\u8f6c\u7f6e\u7684\uff0c\u4e0d\u53ef\u9006\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/PixPin_2025-05-27_11-31-38.gif'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"271\" height=\"576\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/PixPin_2025-05-27_11-31-38.gif\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-408\"\/><\/div><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"Nhpya\"\/>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-216.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1022\" height=\"453\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-216.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-390\"  sizes=\"auto, (max-width: 1022px) 100vw, 1022px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u399954a0\">\u5c3a\u5bf8\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-217.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"946\" height=\"249\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-217.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-391\"  sizes=\"auto, (max-width: 946px) 100vw, 946px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"v9BbA\"\/>\n\n\n\n<p id=\"u56f4217d\">\u770b\u4ee3\u7801<\/p>\n\n\n\n<pre id=\"DgF2Z\" class=\"wp-block-code\"><code># ================ transposed\n# flag = 1\nflag = 0\nif flag:\n    conv_layer = nn.ConvTranspose2d(3, 1, 3, stride=2)   # input:(i, o, size)\n    nn.init.xavier_normal_(conv_layer.weight.data)\n\n    # calculation\n    img_conv = conv_layer(img_tensor)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"kQJKk\"\/>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"L7jHd\">\u6c60\u5316\u3001\u7ebf\u6027\u3001\u6fc0\u6d3b\u51fd\u6570\u5c42<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"UYvCk\">\u6c60\u5316\u5c42<\/h2>\n\n\n\n<p id=\"u2919cd14\">\u6c60\u5316\u8fd0\u7b97\uff1a\u5bf9\u4fe1\u53f7\u8fdb\u884c\u201c\u6536\u96c6\u201d\u5e76\u201c\u603b\u7ed3\u201d\uff0c\u7c7b\u4f3c\u6c34\u6c60\u6536\u96c6\u6c34\u8d44\u6e90\uff0c\u56e0\u800c\u5f97\u540d\u6c60\u5316\u5c42<\/p>\n\n\n\n<p id=\"u912e48e0\">\u201c\u6536\u96c6\u201d\uff1a\u591a\u53d8\u5c11<\/p>\n\n\n\n<p id=\"u79aa4f24\">\u201c\u603b\u7ed3\u201d\uff1a\u6700\u5927\u503c\/\u5e73\u5747\u503c<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-218.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"558\" height=\"253\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-218.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-392\"  sizes=\"auto, (max-width: 558px) 100vw, 558px\" \/><\/div><figcaption class=\"wp-element-caption\">\u6c60\u5316<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-219.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"367\" height=\"321\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-219.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-393\"  sizes=\"auto, (max-width: 367px) 100vw, 367px\" \/><\/div><figcaption class=\"wp-element-caption\">\u6700\u5927\u6c60\u5316\u548c\u5e73\u5747\u6c60\u5316<\/figcaption><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"WMKQX\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"SgY3p\">\u6700\u5927\u6c60\u5316<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-220.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"416\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-220.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-394\"  sizes=\"auto, (max-width: 978px) 100vw, 978px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u72483d0a\">\u8fd9\u91cc\u6ce8\u610f\u4e24\u4e2a\u53c2\u6570<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ceil_mode\uff1a\u5c3a\u5bf8\u5411\u4e0a\u53d6\u6574<\/li>\n\n\n\n<li>return_indices\uff1a\u8bb0\u5f55\u6c60\u5316\u50cf\u7d20\u7d22\u5f15\uff0c\u5728\u53cd\u6c60\u5316\u7684\u65f6\u5019\u4f7f\u7528\u3002\u5982\u56fe\uff0c\u5728\u6c60\u5316\u524d\uff0c\u8bb0\u5f55\u50cf\u7d20\u7d22\u5f15\uff0c\u53cd\u6c60\u5316\u65f6\u6839\u636e\u7d22\u5f15\u8fdb\u884c\u586b\u5145\u3002<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-221.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"507\" height=\"243\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-221.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-395\"  sizes=\"auto, (max-width: 507px) 100vw, 507px\" \/><\/div><figcaption class=\"wp-element-caption\">\u6c60\u5316\u50cf\u7d20\u7d22\u5f15<\/figcaption><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"TLEOb\"\/>\n\n\n\n<p id=\"ufcdba76c\">\u770b\u4ee3\u7801<\/p>\n\n\n\n<pre id=\"jb6kD\" class=\"wp-block-code\"><code># ================ maxpool\n# flag = 1\nflag = 0\nif flag:\n    maxpool_layer = nn.MaxPool2d((2, 2), stride=(2, 2))   # input:(i, o, size) weights:(o, i , h, w)\n    img_pool = maxpool_layer(img_tensor)<\/code><\/pre>\n\n\n\n<p id=\"ueead1b8e\">\u6548\u679c\uff1a\u53ef\u4ee5\u770b\u5230\u6c60\u5316\u540e\uff0c\u56fe\u7247\u53d8\u5316\u5f88\u5c0f\uff0c\u6240\u4ee5\u6c60\u5316\u64cd\u4f5c\u53ef\u4ee5\u5254\u9664\u5197\u4f59\u4fe1\u606f\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-222.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"470\" height=\"241\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-222.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-396\"  sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><\/div><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"XxHqw\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"D43LI\">\u5e73\u5747\u6c60\u5316<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-223.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"973\" height=\"414\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-223.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-397\"  sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u48c56381\">divisor_override\uff1a\u9664\u6cd5\u56e0\u5b50\uff0c\u53ef\u4ee5\u4e0d\u9664\u4ee5\u50cf\u7d20\u7684\u4e2a\u6570\uff0c\u800c\u662f\u9664\u4ee5\u9664\u6cd5\u56e0\u5b50<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"aRVP8\"\/>\n\n\n\n<p id=\"u13e5c386\">\u4e0a\u4ee3\u7801<\/p>\n\n\n\n<pre id=\"j7dtU\" class=\"wp-block-code\"><code># ================ avgpool\n# flag = 1\nflag = 0\nif flag:\n    avgpoollayer = nn.AvgPool2d((2, 2), stride=(2, 2))   # input:(i, o, size) weights:(o, i , h, w)\n    img_pool = avgpoollayer(img_tensor)<\/code><\/pre>\n\n\n\n<p id=\"u5305c950\">\u6548\u679c\uff1a\u4e0e\u6700\u5927\u6c60\u5316\u4eae\u5ea6\u4e0a\u6709\u6240\u4e0d\u540c<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-224.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"241\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-224.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-398\"  sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/div><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"ennwu\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"VMdTF\">\u6700\u5927\u53cd\u6c60\u5316<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-225.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"418\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-225.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-399\"  sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"ozR75\"\/>\n\n\n\n<p id=\"ue56ce4ec\">\u4ee3\u7801<\/p>\n\n\n\n<pre id=\"Buncs\" class=\"wp-block-code\"><code># ================ max unpool\n# flag = 1\nflag = 0\nif flag:\n    # pooling\n    img_tensor = torch.randint(high=5, size=(1, 1, 4, 4), dtype=torch.float)\n    maxpool_layer = nn.MaxPool2d((2, 2), stride=(2, 2), return_indices=True)\n    img_pool, indices = maxpool_layer(img_tensor)\n\n    # unpooling\n    img_reconstruct = torch.randn_like(img_pool, dtype=torch.float)\n    maxunpool_layer = nn.MaxUnpool2d((2, 2), stride=(2, 2))\n    img_unpool = maxunpool_layer(img_reconstruct, indices)\n\n    print(\"raw_img:\\n{}\\nimg_pool:\\n{}\".format(img_tensor, img_pool))\n    print(\"img_reconstruct:\\n{}\\nimg_unpool:\\n{}\".format(img_reconstruct, img_unpool))<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"BpC1m\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"iEnqM\">\u7ebf\u6027\u5c42<\/h2>\n\n\n\n<p id=\"u7bf57a44\">\u7ebf\u6027\u5c42\u53c8\u79f0\u5168\u8fde\u63a5\u5c42\uff0c\u5176\u6bcf\u4e2a\u795e\u7ecf\u5143\u4e0e\u4e0a\u4e00\u5c42\u6240\u6709\u795e\u7ecf\u5143\u76f8\u8fde\u5b9e\u73b0\u5bf9\u524d\u4e00\u5c42\u7684<strong>\u7ebf\u6027\u7ec4\u5408<\/strong>\uff0c<strong>\u7ebf\u6027\u53d8\u6362<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-226.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"969\" height=\"417\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-226.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-400\"  sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/><\/div><\/figure>\n\n\n\n<p id=\"ud8cbc7ae\">\u7ebf\u6027\u52a0\u6743\u6c42\u548c<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"oOwLq\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"acYvI\">nn.Linear<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-227.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"976\" height=\"415\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-227.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-401\"  sizes=\"auto, (max-width: 976px) 100vw, 976px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"ISz8P\"\/>\n\n\n\n<p id=\"u58a14ada\">\u4ee3\u7801<\/p>\n\n\n\n<pre id=\"ySStR\" class=\"wp-block-code\"><code># ================ linear\nflag = 1\n# flag = 0\nif flag:\n    inputs = torch.tensor(&#91;&#91;1., 2, 3]])\n    linear_layer = nn.Linear(3, 4)\n    linear_layer.weight.data = torch.tensor(&#91;&#91;1., 1., 1.],\n                                             &#91;2., 2., 2.],\n                                             &#91;3., 3., 3.],\n                                             &#91;4., 4., 4.]])\n    #\u504f\u7f6e\n    linear_layer.bias.data.fill_(0.5)\n    output = linear_layer(inputs)\n    print(inputs, inputs.shape)\n    print(linear_layer.weight.data, linear_layer.weight.data.shape)\n    print(output, output.shape)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"i6VU0\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"M159R\">\u6fc0\u6d3b\u51fd\u6570\u5c42<\/h2>\n\n\n\n<p id=\"ucf6b41f3\">\u6fc0\u6d3b\u51fd\u6570\u5bf9\u7279\u5f81\u8fdb\u884c\u975e\u7ebf\u6027\u53d8\u6362\uff0c\u8d4b\u4e88\u591a\u5c42\u795e\u7ecf\u7f51\u7edc\u5177\u6709<strong>\u6df1\u5ea6<\/strong>\u7684\u610f\u4e49<\/p>\n\n\n\n<p id=\"u307d7db9\">\u5982\u4f55\u7406\u89e3\uff1a<\/p>\n\n\n\n<p id=\"u56054cdc\">\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u6709\u4e09\u4e2a\u7ebf\u6027\u5c42W1,W2,W3\uff0c\u8f93\u5165\u540e\u5206\u522b\u4e58\u4e0a\u5176\u77e9\u9635\uff0c\u6839\u636e\u77e9\u9635\u7684\u7ed3\u5408\u6027\uff0c\u76f8\u5f53\u4e8e\u4e58\u4e0a\u4e86\u4e00\u4e2a\u77e9\u9635\uff0c\u6240\u4ee5n\u4e2a\u7ebf\u6027\u5c42\u7b49\u4e8e1\u4e00\u4e2a\u7ebf\u6027\u5c42\u3002<\/p>\n\n\n\n<p id=\"ua11259a5\">\uff08\u795e\u7ecf\u7f51\u7edc\u662f\u4e3a\u4e86\u62df\u5408\u4e00\u4e2a\u51fd\u6570\uff0c\u5168\u8fde\u63a5\u5c42\u53ea\u80fd\u62df\u5408\u7ebf\u6027\u7684\uff0c\u6240\u4ee5\u518d\u591a\u7684\u7ebf\u6027\u5c42\u90fd\u53ea\u80fd\u62df\u5408\u7ebf\u6027\u7684\uff0c\u800c\u6fc0\u6d3b\u51fd\u6570\u53ef\u4ee5\u662f\u975e\u7ebf\u6027\u7684\uff0c\u5c31\u7ed9\u795e\u7ecf\u7f51\u7edc\u5f15\u5165\u4e86\u975e\u7ebf\u6027\uff09<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-228.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"967\" height=\"363\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-228.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-402\"  sizes=\"auto, (max-width: 967px) 100vw, 967px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"VyqYB\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"rve47\">nn.Sigmoid<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-229.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"407\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-229.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-403\"  sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><\/div><\/figure>\n\n\n\n<p id=\"u4a730085\">\u6613\u5bfc\u81f4\u68af\u5ea6\u6d88\u5931<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"BA4U1\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"D344P\">nn.tanh<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-230.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"979\" height=\"418\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-230.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-404\"  sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"cCSmv\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"KNmyC\">nn.ReLU<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-231.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"409\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-231.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-405\"  sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"OlHPe\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"QU4mQ\">LeakyReLU\u3001PReLU\u3001RREeLU<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-232.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"442\" data-original=\"https:\/\/www.s7arry.top\/wp-content\/uploads\/2025\/05\/image-232.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-406\"  sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"Gmv2a\"\/>\n","protected":false},"excerpt":{"rendered":"<p>\u6a21\u578b\u521b\u5efa\u4e8enn.Module \u6a21\u578b\u521b\u5efa\u6b65\u9aa4 \u9996\u5148\u6784\u5efa\u7f51\u7edc\u5c42\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u5377\u79ef\u5c42\u3001\u6c60\u5316\u5c42\u3001\u6fc0\u6d3b\u51fd\u6570\u5c42\u7b49 \u7136\u540e\u62fc\u63a5\u7f51 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":98,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[14,15],"class_list":["post-366","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-10","tag-pytorch","tag-15"],"_links":{"self":[{"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/posts\/366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/comments?post=366"}],"version-history":[{"count":2,"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/posts\/366\/revisions"}],"predecessor-version":[{"id":409,"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/posts\/366\/revisions\/409"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/media\/98"}],"wp:attachment":[{"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/media?parent=366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/categories?post=366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.s7arry.top\/index.php\/wp-json\/wp\/v2\/tags?post=366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}