{"id":20628897,"url":"https://github.com/vipul2001/modern-cnns-implementation","last_synced_at":"2025-04-15T16:18:45.293Z","repository":{"id":45835840,"uuid":"223645924","full_name":"vipul2001/Modern-CNNs-Implementation","owner":"vipul2001","description":"AlexNet , VGG Blocks , Network In Network (NIN),GoogleNet,ResNet,DenseNet Using Pytorch","archived":false,"fork":false,"pushed_at":"2019-12-02T09:49:03.000Z","size":1039,"stargazers_count":12,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T16:18:39.954Z","etag":null,"topics":["alexnet","deep-learning","deep-neural-networks","loss","network","pytorch"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vipul2001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-23T20:04:05.000Z","updated_at":"2024-05-16T12:57:12.000Z","dependencies_parsed_at":"2022-08-31T07:51:13.371Z","dependency_job_id":null,"html_url":"https://github.com/vipul2001/Modern-CNNs-Implementation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipul2001%2FModern-CNNs-Implementation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipul2001%2FModern-CNNs-Implementation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipul2001%2FModern-CNNs-Implementation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vipul2001%2FModern-CNNs-Implementation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vipul2001","download_url":"https://codeload.github.com/vipul2001/Modern-CNNs-Implementation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249105474,"owners_count":21213537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alexnet","deep-learning","deep-neural-networks","loss","network","pytorch"],"created_at":"2024-11-16T13:23:37.959Z","updated_at":"2025-04-15T16:18:45.272Z","avatar_url":"https://github.com/vipul2001.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Modern Convolutional Networks and there Implementation using Pytorch\n\n## Sample data Used \n### Fashion MNSIT DataSet\n![data](Alexnet/fashion_set_sample.png)\n## AlexNet Structure\n![Alexnet](Alexnet/alexnet.svg)\n### code\n\u003ccode\u003e\n class AlexNet(nn.Module):\n\n    def __init__(self, num_classes=1000):\n        super(AlexNet, self).__init__()\n        self.features = nn.Sequential(\n            nn.Conv2d(1, 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(),\n            nn.Linear(256 * 6 * 6, 4096),\n            nn.ReLU(inplace=True),\n            nn.Dropout(),\n            nn.Linear(4096, 4096),\n            nn.ReLU(inplace=True),\n            nn.Linear(4096, num_classes),\n        )\n\n    def forward(self, x):\n        x = self.features(x)\n        x = self.avgpool(x)\n        x = torch.flatten(x, 1)\n        x = self.classifier(x)\n        return x\n\n\u003c/code\u003e\n\n## VGG Structure\n![VGG](VGG_Blocks/VGG.svg)\n### code\n\u003ccode\u003e\n Sequential(\n  (0): Sequential(\n    (0): Conv2d(1, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): ReLU()\n    (2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n  )\n  (1): Sequential(\n    (0): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): ReLU()\n    (2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n  )\n  (2): Sequential(\n    (0): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): ReLU()\n    (2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (3): ReLU()\n    (4): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n  )\n  (3): Sequential(\n    (0): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): ReLU()\n    (2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (3): ReLU()\n    (4): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n  )\n  (4): Sequential(\n    (0): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): ReLU()\n    (2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (3): ReLU()\n    (4): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)\n  )\n  (5): Flatten()\n  (6): Linear(in_features=25088, out_features=4096, bias=True)\n  (7): ReLU()\n  (8): Dropout(p=0.5, inplace=False)\n  (9): Linear(in_features=4096, out_features=4096, bias=True)\n  (10): ReLU()\n  (11): Dropout(p=0.5, inplace=False)\n  (12): Linear(in_features=4096, out_features=10, bias=True)\n)\n\u003c/code\u003e\n\n## NIN Structure\n![Alexnet](Network_in_Network/NIN.svg)\n## network used\n\u003ccode\u003e\n Net(\n  (n1): Sequential(\n    (0): Conv2d(1, 96, kernel_size=(11, 11), stride=(4, 4))\n    (1): ReLU()\n    (2): Conv2d(96, 96, kernel_size=(1, 1), stride=(1, 1))\n    (3): ReLU()\n    (4): Conv2d(96, 96, kernel_size=(1, 1), stride=(1, 1))\n    (5): ReLU()\n  )\n  (m1): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n  (n2): Sequential(\n    (0): Conv2d(96, 256, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n    (1): ReLU()\n    (2): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))\n    (3): ReLU()\n    (4): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))\n    (5): ReLU()\n  )\n  (m2): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n  (n3): Sequential(\n    (0): Conv2d(256, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): ReLU()\n    (2): Conv2d(384, 384, kernel_size=(1, 1), stride=(1, 1))\n    (3): ReLU()\n    (4): Conv2d(384, 384, kernel_size=(1, 1), stride=(1, 1))\n    (5): ReLU()\n  )\n  (m3): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)\n  (dropout1): Dropout2d(p=0.5, inplace=False)\n  (n4): Sequential(\n    (0): Conv2d(384, 10, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (1): ReLU()\n    (2): Conv2d(10, 10, kernel_size=(1, 1), stride=(1, 1))\n    (3): ReLU()\n    (4): Conv2d(10, 10, kernel_size=(1, 1), stride=(1, 1))\n    (5): ReLU()\n  )\n  (avg1): AdaptiveMaxPool2d(output_size=(1, 1))\n  (flat): Flatten()\n)\n\u003c/code\u003e\n\n## Loss Vs Number Of epoch\n![loss](Network_in_Network/loss.png)\n## Prediction\n![prediction](Network_in_Network/prediction.png)\n#   GoogleNet\n## Inception block\n![inception](GoogleNet/inception.svg)\n## Google Net Structure\n![Alexnet](GoogleNet/GoogleNet.svg)\n## network used\n\u003ccode\u003e\n Sequential(\n  (0): Sequential(\n    (0): Conv2d(1, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3))\n    (1): ReLU()\n    (2): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n  )\n  (1): Sequential(\n    (0): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1))\n    (1): ReLU()\n    (2): Conv2d(64, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n    (3): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n  )\n  (2): Sequential(\n    (0): Inception(\n      (p1_1): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(96, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(192, 16, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(16, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (1): Inception(\n      (p1_1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(128, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(256, 32, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(32, 96, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (2): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n  )\n  (3): Sequential(\n    (0): Inception(\n      (p1_1): Conv2d(480, 192, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(480, 96, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(96, 208, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(480, 16, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(16, 48, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(480, 64, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (1): Inception(\n      (p1_1): Conv2d(512, 160, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(512, 112, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(112, 224, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(24, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (2): Inception(\n      (p1_1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(512, 24, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(24, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (3): Inception(\n      (p1_1): Conv2d(512, 112, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(512, 144, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(144, 288, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(512, 32, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(32, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(512, 64, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (4): Inception(\n      (p1_1): Conv2d(528, 256, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(528, 160, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(160, 320, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(528, 32, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(32, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(528, 128, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (5): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n  )\n  (4): Sequential(\n    (0): Inception(\n      (p1_1): Conv2d(832, 256, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(832, 160, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(160, 320, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(832, 32, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(32, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (1): Inception(\n      (p1_1): Conv2d(832, 384, kernel_size=(1, 1), stride=(1, 1))\n      (p2_1): Conv2d(832, 192, kernel_size=(1, 1), stride=(1, 1))\n      (p2_2): Conv2d(192, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      (p3_1): Conv2d(832, 48, kernel_size=(1, 1), stride=(1, 1))\n      (p3_2): Conv2d(48, 128, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))\n      (p4_1): MaxPool2d(kernel_size=3, stride=1, padding=1, dilation=1, ceil_mode=False)\n      (p4_2): Conv2d(832, 128, kernel_size=(1, 1), stride=(1, 1))\n    )\n    (2): AdaptiveMaxPool2d(output_size=(1, 1))\n    (3): Flatten()\n  )\n  (5): Linear(in_features=1024, out_features=10, bias=True)\n)it \n\u003c/code\u003e\n\n## Loss Vs Number Of epoch\n![loss](GoogleNet/loss.png)\n## Prediction\n![prediction](GoogleNet/prediction.png)\n\n# Batch Normalization\n# Loss Function\n![loss](Batch_Normalization/loss.png)\n# Prediction\n![prediction](Batch_Normalization/prediction.png)\n# DenseNet\n## Model\n![](DenseNet/DenseNet.svg)\n## loss\n![loss](DenseNet/loss.png)\n##  Prediction\n![](DenseNet/prediction.png)\n## Train Curve\n![](DenseNet/train_acc.png)\n## Network\n\u003ccode\u003e\n  Sequential(\n  (0): Reshape()\n  (1): Conv2d(1, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3))\n  (2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n  (3): ReLU()\n  (4): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n  (5): DenseBlock(\n    (net): Sequential(\n      (0): Sequential(\n        (0): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(64, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (1): Sequential(\n        (0): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(96, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (2): Sequential(\n        (0): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (3): Sequential(\n        (0): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(160, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n    )\n  )\n  (6): Sequential(\n    (0): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n    (1): ReLU()\n    (2): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1))\n    (3): AvgPool2d(kernel_size=2, stride=2, padding=0)\n  )\n  (7): DenseBlock(\n    (net): Sequential(\n      (0): Sequential(\n        (0): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(96, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (1): Sequential(\n        (0): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (2): Sequential(\n        (0): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(160, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (3): Sequential(\n        (0): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(192, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n    )\n  )\n  (8): Sequential(\n    (0): BatchNorm2d(224, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n    (1): ReLU()\n    (2): Conv2d(224, 112, kernel_size=(1, 1), stride=(1, 1))\n    (3): AvgPool2d(kernel_size=2, stride=2, padding=0)\n  )\n  (9): DenseBlock(\n    (net): Sequential(\n      (0): Sequential(\n        (0): BatchNorm2d(112, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(112, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (1): Sequential(\n        (0): BatchNorm2d(144, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(144, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (2): Sequential(\n        (0): BatchNorm2d(176, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(176, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (3): Sequential(\n        (0): BatchNorm2d(208, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(208, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n    )\n  )\n  (10): Sequential(\n    (0): BatchNorm2d(240, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n    (1): ReLU()\n    (2): Conv2d(240, 120, kernel_size=(1, 1), stride=(1, 1))\n    (3): AvgPool2d(kernel_size=2, stride=2, padding=0)\n  )\n  (11): DenseBlock(\n    (net): Sequential(\n      (0): Sequential(\n        (0): BatchNorm2d(120, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(120, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (1): Sequential(\n        (0): BatchNorm2d(152, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(152, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (2): Sequential(\n        (0): BatchNorm2d(184, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(184, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n      (3): Sequential(\n        (0): BatchNorm2d(216, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (1): ReLU()\n        (2): Conv2d(216, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))\n      )\n    )\n  )\n  (12): BatchNorm2d(248, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n  (13): ReLU()\n  (14): AdaptiveMaxPool2d(output_size=(1, 1))\n  (15): Flatten()\n  (16): Linear(in_features=248, out_features=10, bias=True)\n)\n\u003c/code\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvipul2001%2Fmodern-cnns-implementation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvipul2001%2Fmodern-cnns-implementation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvipul2001%2Fmodern-cnns-implementation/lists"}