Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save davidpfahler/82dc19eb0f00e5a2485b1721669af65a to your computer and use it in GitHub Desktop.
Save davidpfahler/82dc19eb0f00e5a2485b1721669af65a to your computer and use it in GitHub Desktop.
Reproduce Part 1: Baseline of "How to train your resnet"
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "reproduce_original_how_to_train_your_resnet.ipynb",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "monMVW8GPl4m",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
},
"outputId": "d484ee41-92b8-433f-cb4e-1a1e1e040937"
},
"source": [
"!pip install pydot\n",
"!git clone https://github.com/davidcpage/cifar10-fast.git\n",
"import os\n",
"os.chdir('cifar10-fast')"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": [
"Requirement already satisfied: pydot in /usr/local/lib/python3.6/dist-packages (1.3.0)\n",
"Requirement already satisfied: pyparsing>=2.1.4 in /usr/local/lib/python3.6/dist-packages (from pydot) (2.4.2)\n",
"Cloning into 'cifar10-fast'...\n",
"remote: Enumerating objects: 14, done.\u001b[K\n",
"remote: Counting objects: 100% (14/14), done.\u001b[K\n",
"remote: Compressing objects: 100% (12/12), done.\u001b[K\n",
"remote: Total 156 (delta 4), reused 5 (delta 2), pack-reused 142\u001b[K\n",
"Receiving objects: 100% (156/156), 2.18 MiB | 2.01 MiB/s, done.\n",
"Resolving deltas: 100% (82/82), done.\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "5-5kYowAPejh",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"outputId": "85caa7f2-fb86-4035-c7a3-0e8dcc3d80e5"
},
"source": [
"from IPython.core.display import display, HTML\n",
"display(HTML(\"<style>.container {width:95% !important;}</style>\"))\n",
"\n",
"from core import *\n",
"from torch_backend import *"
],
"execution_count": 3,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<style>.container {width:95% !important;}</style>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2RW24Wv4RCRd",
"colab_type": "text"
},
"source": [
"## Network definition"
]
},
{
"cell_type": "code",
"metadata": {
"id": "CVacW6IPRDd8",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 71
},
"outputId": "07d5b5ba-9323-46e8-aa60-5e11ccea2549"
},
"source": [
"def res_block(c_in, c_out, stride, **kw):\n",
" block = {\n",
" 'bn1': batch_norm(c_in, **kw),\n",
" 'relu1': nn.ReLU(True),\n",
" 'branch': {\n",
" 'conv1': nn.Conv2d(c_in, c_out, kernel_size=3, stride=stride, padding=1, bias=False),\n",
" 'bn2': batch_norm(c_out, **kw),\n",
" 'relu2': nn.ReLU(True),\n",
" 'conv2': nn.Conv2d(c_out, c_out, kernel_size=3, stride=1, padding=1, bias=False),\n",
" }\n",
" }\n",
" projection = (stride != 1) or (c_in != c_out) \n",
" if projection:\n",
" block['conv3'] = (nn.Conv2d(c_in, c_out, kernel_size=1, stride=stride, padding=0, bias=False), [rel_path('relu1')])\n",
" block['add'] = (Add(), [(rel_path('conv3') if projection else rel_path('relu1')), rel_path('branch', 'conv2')])\n",
" return block\n",
"\n",
"def DAWN_net(c=64, block=res_block, prep_bn_relu=False, concat_pool=True, **kw): \n",
" if isinstance(c, int):\n",
" c = [c, 2*c, 4*c, 4*c]\n",
" \n",
" classifier_pool = {\n",
" 'in': Identity(),\n",
" 'maxpool': nn.MaxPool2d(4),\n",
" 'avgpool': (nn.AvgPool2d(4), [rel_path('in')]),\n",
" 'concat': (Concat(), [rel_path('maxpool'), rel_path('avgpool')]),\n",
" } if concat_pool else {'pool': nn.MaxPool2d(4)}\n",
" \n",
" return {\n",
" 'prep': union({'conv': nn.Conv2d(3, c[0], kernel_size=3, stride=1, padding=1, bias=False)},\n",
" {'bn': batch_norm(c[0], **kw), 'relu': nn.ReLU(True)} if prep_bn_relu else {}),\n",
" 'layer1': {\n",
" 'block0': block(c[0], c[0], 1, **kw),\n",
" 'block1': block(c[0], c[0], 1, **kw),\n",
" },\n",
" 'layer2': {\n",
" 'block0': block(c[0], c[1], 2, **kw),\n",
" 'block1': block(c[1], c[1], 1, **kw),\n",
" },\n",
" 'layer3': {\n",
" 'block0': block(c[1], c[2], 2, **kw),\n",
" 'block1': block(c[2], c[2], 1, **kw),\n",
" },\n",
" 'layer4': {\n",
" 'block0': block(c[2], c[3], 2, **kw),\n",
" 'block1': block(c[3], c[3], 1, **kw),\n",
" },\n",
" 'final': union(classifier_pool, {\n",
" 'flatten': Flatten(),\n",
" 'linear': nn.Linear(2*c[3] if concat_pool else c[3], 10, bias=True),\n",
" }),\n",
" 'classifier': Identity(),\n",
" }\n",
"\n",
"\n",
"def conv_bn(c_in, c_out, bn_weight_init=1.0, **kw):\n",
" return {\n",
" 'conv': nn.Conv2d(c_in, c_out, kernel_size=3, stride=1, padding=1, bias=False), \n",
" 'bn': batch_norm(c_out, bn_weight_init=bn_weight_init, **kw), \n",
" 'relu': nn.ReLU(True)\n",
" }\n",
"\n",
"def basic_net(channels, weight, pool, **kw):\n",
" return {\n",
" 'prep': conv_bn(3, channels['prep'], **kw),\n",
" 'layer1': dict(conv_bn(channels['prep'], channels['layer1'], **kw), pool=pool),\n",
" 'layer2': dict(conv_bn(channels['layer1'], channels['layer2'], **kw), pool=pool),\n",
" 'layer3': dict(conv_bn(channels['layer2'], channels['layer3'], **kw), pool=pool),\n",
" 'pool': nn.MaxPool2d(4),\n",
" 'flatten': Flatten(),\n",
" 'linear': nn.Linear(channels['layer3'], 10, bias=False),\n",
" 'classifier': Mul(weight),\n",
" }\n",
"\n",
"def net(channels=None, weight=0.125, pool=nn.MaxPool2d(2), extra_layers=(), res_layers=('layer1', 'layer3'), **kw):\n",
" channels = channels or {'prep': 64, 'layer1': 128, 'layer2': 256, 'layer3': 512}\n",
" residual = lambda c, **kw: {'in': Identity(), 'res1': conv_bn(c, c, **kw), 'res2': conv_bn(c, c, **kw), \n",
" 'add': (Add(), [rel_path('in'), rel_path('res2', 'relu')])}\n",
" n = basic_net(channels, weight, pool, **kw)\n",
" for layer in res_layers:\n",
" n[layer]['residual'] = residual(channels[layer], **kw)\n",
" for layer in extra_layers:\n",
" n[layer]['extra'] = conv_bn(channels[layer], channels[layer], **kw) \n",
" return n\n",
"\n",
"\n",
"losses = {\n",
" 'loss': (nn.CrossEntropyLoss(reduce=False), [('classifier',), ('target',)]),\n",
" 'correct': (Correct(), [('classifier',), ('target',)]),\n",
"}\n",
"\n",
"remove_identity_nodes = lambda net: remove_by_type(net, Identity)"
],
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/torch/nn/_reduction.py:46: UserWarning: size_average and reduce args will be deprecated, please use reduction='none' instead.\n",
" warnings.warn(warning.format(ret))\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cHn5fD2uRWJ1",
"colab_type": "text"
},
"source": [
"## Download and preprocess data"
]
},
{
"cell_type": "code",
"metadata": {
"id": "NV8jhUp2RXyL",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 119
},
"outputId": "c54520be-2a8d-4914-fdc2-3afed6db15f4"
},
"source": [
"DATA_DIR = './data'\n",
"dataset = cifar10(DATA_DIR)\n",
"t = Timer()\n",
"print('Preprocessing training data')\n",
"train_set = list(zip(transpose(normalise(pad(dataset['train']['data'], 4))), dataset['train']['labels']))\n",
"print(f'Finished in {t():.2} seconds')\n",
"print('Preprocessing test data')\n",
"test_set = list(zip(transpose(normalise(dataset['test']['data'])), dataset['test']['labels']))\n",
"print(f'Finished in {t():.2} seconds')"
],
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": [
"\r0it [00:00, ?it/s]"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
" 99%|█████████▉| 169123840/170498071 [00:11<00:00, 17697435.16it/s]"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Files already downloaded and verified\n",
"Preprocessing training data\n",
"Finished in 2.2 seconds\n",
"Preprocessing test data\n",
"Finished in 0.068 seconds\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "J3QPMtFIRkhk",
"colab_type": "text"
},
"source": [
"## Training loop"
]
},
{
"cell_type": "code",
"metadata": {
"id": "D555ibr7RlvD",
"colab_type": "code",
"colab": {}
},
"source": [
"def train(model, lr_schedule, optimizer, train_set, test_set, batch_size, num_workers=0):\n",
" train_batches = Batches(train_set, batch_size, shuffle=True, set_random_choices=True, num_workers=num_workers)\n",
" test_batches = Batches(test_set, batch_size, shuffle=False, num_workers=num_workers)\n",
" optimizer.opt_params['lr'] = lambda step: lr_schedule(step/len(train_batches))/batch_size\n",
" table, timer = TableLogger(), Timer()\n",
" for epoch in range(lr_schedule.knots[-1]):\n",
" epoch_stats = train_epoch(model, train_batches, test_batches, optimizer.step, timer, test_time_in_total=True) \n",
" summary = union({'epoch': epoch+1, 'lr': lr_schedule(epoch+1)}, epoch_stats)\n",
" table.append(summary)\n",
" return summary"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "n2Gqd8K5QrFE",
"colab_type": "text"
},
"source": [
"## [Part 1: Baseline](https://www.myrtle.ai/2018/09/24/how_to_train_your_resnet_1/) - DAWNbench baseline + no initial bn-relu+ efficient dataloading/augmentation, 1 dataloader process (???s)"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ZTxAhCewTJtH",
"colab_type": "code",
"colab": {}
},
"source": [
"lr_schedule = PiecewiseLinear([0, 15, 30, 35], [0, 0.1, 0.005, 0])"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "2ttPMLWATKbT",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "cefb42cc-6183-414e-d654-45cd6d29d98e"
},
"source": [
"lr_schedule(1)"
],
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0.006666666666666667"
]
},
"metadata": {
"tags": []
},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Da4dECOpTcpZ",
"colab_type": "code",
"colab": {}
},
"source": [
"# lr_schedule = PiecewiseLinear([0, 1], [0, 0.006666666666666667])"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "DJzdXtRzTlvi",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "b4b8dc5d-6d3e-4287-aa45-f9e37f9942ef"
},
"source": [
"# lr_schedule.knots"
],
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[0, 1]"
]
},
"metadata": {
"tags": []
},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "XLRglgfCT4hY",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 104
},
"outputId": "4013fb83-48eb-44a7-d6e2-45640666389b"
},
"source": [
"batch_size = 128\n",
"\n",
"n = DAWN_net()\n",
"display(DotGraph(n))\n",
"model = Network(union(n, losses)).to(device)\n",
"#convert all children including batch norms to half precision (triggering slow codepath!)\n",
"for v in model.children(): \n",
" v.half()"
],
"execution_count": 20,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<core.DotGraph at 0x7f6bd1c2c6a0>"
],
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n -->\n<!-- Title: G Pages: 1 -->\n<svg width=\"1080pt\" height=\"47pt\"\n viewBox=\"0.00 0.00 1080.00 46.61\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(.1872 .1872) rotate(0) translate(4 245)\">\n<title>G</title>\n<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-245 5765,-245 5765,4 -4,4\"/>\n<g id=\"clust1\" class=\"cluster\">\n<title>cluster_prep</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M94,-61C94,-61 140,-61 140,-61 146,-61 152,-67 152,-73 152,-73 152,-124 152,-124 152,-130 146,-136 140,-136 140,-136 94,-136 94,-136 88,-136 82,-130 82,-124 82,-124 82,-73 82,-73 82,-67 88,-61 94,-61\"/>\n<text text-anchor=\"middle\" x=\"117\" y=\"-120.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">prep</text>\n</g>\n<g id=\"clust2\" class=\"cluster\">\n<title>cluster_layer1</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M176,-25C176,-25 1408,-25 1408,-25 1414,-25 1420,-31 1420,-37 1420,-37 1420,-176 1420,-176 1420,-182 1414,-188 1408,-188 1408,-188 176,-188 176,-188 170,-188 164,-182 164,-176 164,-176 164,-37 164,-37 164,-31 170,-25 176,-25\"/>\n<text text-anchor=\"middle\" x=\"792\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">layer1</text>\n</g>\n<g id=\"clust3\" class=\"cluster\">\n<title>cluster_layer1_block0</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M184,-33C184,-33 770,-33 770,-33 776,-33 782,-39 782,-45 782,-45 782,-145 782,-145 782,-151 776,-157 770,-157 770,-157 184,-157 184,-157 178,-157 172,-151 172,-145 172,-145 172,-45 172,-45 172,-39 178,-33 184,-33\"/>\n<text text-anchor=\"middle\" x=\"477\" y=\"-141.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block0</text>\n</g>\n<g id=\"clust4\" class=\"cluster\">\n<title>cluster_layer1_block0_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M364,-41C364,-41 680,-41 680,-41 686,-41 692,-47 692,-53 692,-53 692,-104 692,-104 692,-110 686,-116 680,-116 680,-116 364,-116 364,-116 358,-116 352,-110 352,-104 352,-104 352,-53 352,-53 352,-47 358,-41 364,-41\"/>\n<text text-anchor=\"middle\" x=\"522\" y=\"-100.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust5\" class=\"cluster\">\n<title>cluster_layer1_block1</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M814,-33C814,-33 1400,-33 1400,-33 1406,-33 1412,-39 1412,-45 1412,-45 1412,-145 1412,-145 1412,-151 1406,-157 1400,-157 1400,-157 814,-157 814,-157 808,-157 802,-151 802,-145 802,-145 802,-45 802,-45 802,-39 808,-33 814,-33\"/>\n<text text-anchor=\"middle\" x=\"1107\" y=\"-141.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block1</text>\n</g>\n<g id=\"clust6\" class=\"cluster\">\n<title>cluster_layer1_block1_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M994,-41C994,-41 1310,-41 1310,-41 1316,-41 1322,-47 1322,-53 1322,-53 1322,-104 1322,-104 1322,-110 1316,-116 1310,-116 1310,-116 994,-116 994,-116 988,-116 982,-110 982,-104 982,-104 982,-53 982,-53 982,-47 988,-41 994,-41\"/>\n<text text-anchor=\"middle\" x=\"1152\" y=\"-100.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust7\" class=\"cluster\">\n<title>cluster_layer2</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M1440,-16C1440,-16 2672,-16 2672,-16 2678,-16 2684,-22 2684,-28 2684,-28 2684,-201 2684,-201 2684,-207 2678,-213 2672,-213 2672,-213 1440,-213 1440,-213 1434,-213 1428,-207 1428,-201 1428,-201 1428,-28 1428,-28 1428,-22 1434,-16 1440,-16\"/>\n<text text-anchor=\"middle\" x=\"2056\" y=\"-197.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">layer2</text>\n</g>\n<g id=\"clust8\" class=\"cluster\">\n<title>cluster_layer2_block0</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M1448,-24C1448,-24 2034,-24 2034,-24 2040,-24 2046,-30 2046,-36 2046,-36 2046,-170 2046,-170 2046,-176 2040,-182 2034,-182 2034,-182 1448,-182 1448,-182 1442,-182 1436,-176 1436,-170 1436,-170 1436,-36 1436,-36 1436,-30 1442,-24 1448,-24\"/>\n<text text-anchor=\"middle\" x=\"1741\" y=\"-166.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block0</text>\n</g>\n<g id=\"clust9\" class=\"cluster\">\n<title>cluster_layer2_block0_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M1628,-32C1628,-32 1944,-32 1944,-32 1950,-32 1956,-38 1956,-44 1956,-44 1956,-95 1956,-95 1956,-101 1950,-107 1944,-107 1944,-107 1628,-107 1628,-107 1622,-107 1616,-101 1616,-95 1616,-95 1616,-44 1616,-44 1616,-38 1622,-32 1628,-32\"/>\n<text text-anchor=\"middle\" x=\"1786\" y=\"-91.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust10\" class=\"cluster\">\n<title>cluster_layer2_block1</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M2078,-24C2078,-24 2664,-24 2664,-24 2670,-24 2676,-30 2676,-36 2676,-36 2676,-136 2676,-136 2676,-142 2670,-148 2664,-148 2664,-148 2078,-148 2078,-148 2072,-148 2066,-142 2066,-136 2066,-136 2066,-36 2066,-36 2066,-30 2072,-24 2078,-24\"/>\n<text text-anchor=\"middle\" x=\"2371\" y=\"-132.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block1</text>\n</g>\n<g id=\"clust11\" class=\"cluster\">\n<title>cluster_layer2_block1_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M2258,-32C2258,-32 2574,-32 2574,-32 2580,-32 2586,-38 2586,-44 2586,-44 2586,-95 2586,-95 2586,-101 2580,-107 2574,-107 2574,-107 2258,-107 2258,-107 2252,-107 2246,-101 2246,-95 2246,-95 2246,-44 2246,-44 2246,-38 2252,-32 2258,-32\"/>\n<text text-anchor=\"middle\" x=\"2416\" y=\"-91.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust12\" class=\"cluster\">\n<title>cluster_layer3</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M2704,-36C2704,-36 3936,-36 3936,-36 3942,-36 3948,-42 3948,-48 3948,-48 3948,-221 3948,-221 3948,-227 3942,-233 3936,-233 3936,-233 2704,-233 2704,-233 2698,-233 2692,-227 2692,-221 2692,-221 2692,-48 2692,-48 2692,-42 2698,-36 2704,-36\"/>\n<text text-anchor=\"middle\" x=\"3320\" y=\"-217.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">layer3</text>\n</g>\n<g id=\"clust13\" class=\"cluster\">\n<title>cluster_layer3_block0</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M2712,-44C2712,-44 3298,-44 3298,-44 3304,-44 3310,-50 3310,-56 3310,-56 3310,-190 3310,-190 3310,-196 3304,-202 3298,-202 3298,-202 2712,-202 2712,-202 2706,-202 2700,-196 2700,-190 2700,-190 2700,-56 2700,-56 2700,-50 2706,-44 2712,-44\"/>\n<text text-anchor=\"middle\" x=\"3005\" y=\"-186.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block0</text>\n</g>\n<g id=\"clust14\" class=\"cluster\">\n<title>cluster_layer3_block0_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M2892,-52C2892,-52 3208,-52 3208,-52 3214,-52 3220,-58 3220,-64 3220,-64 3220,-115 3220,-115 3220,-121 3214,-127 3208,-127 3208,-127 2892,-127 2892,-127 2886,-127 2880,-121 2880,-115 2880,-115 2880,-64 2880,-64 2880,-58 2886,-52 2892,-52\"/>\n<text text-anchor=\"middle\" x=\"3050\" y=\"-111.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust15\" class=\"cluster\">\n<title>cluster_layer3_block1</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M3342,-44C3342,-44 3928,-44 3928,-44 3934,-44 3940,-50 3940,-56 3940,-56 3940,-156 3940,-156 3940,-162 3934,-168 3928,-168 3928,-168 3342,-168 3342,-168 3336,-168 3330,-162 3330,-156 3330,-156 3330,-56 3330,-56 3330,-50 3336,-44 3342,-44\"/>\n<text text-anchor=\"middle\" x=\"3635\" y=\"-152.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block1</text>\n</g>\n<g id=\"clust16\" class=\"cluster\">\n<title>cluster_layer3_block1_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M3522,-52C3522,-52 3838,-52 3838,-52 3844,-52 3850,-58 3850,-64 3850,-64 3850,-115 3850,-115 3850,-121 3844,-127 3838,-127 3838,-127 3522,-127 3522,-127 3516,-127 3510,-121 3510,-115 3510,-115 3510,-64 3510,-64 3510,-58 3516,-52 3522,-52\"/>\n<text text-anchor=\"middle\" x=\"3680\" y=\"-111.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust17\" class=\"cluster\">\n<title>cluster_layer4</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M3968,-8C3968,-8 5200,-8 5200,-8 5206,-8 5212,-14 5212,-20 5212,-20 5212,-193 5212,-193 5212,-199 5206,-205 5200,-205 5200,-205 3968,-205 3968,-205 3962,-205 3956,-199 3956,-193 3956,-193 3956,-20 3956,-20 3956,-14 3962,-8 3968,-8\"/>\n<text text-anchor=\"middle\" x=\"4584\" y=\"-189.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">layer4</text>\n</g>\n<g id=\"clust18\" class=\"cluster\">\n<title>cluster_layer4_block0</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M3976,-16C3976,-16 4562,-16 4562,-16 4568,-16 4574,-22 4574,-28 4574,-28 4574,-162 4574,-162 4574,-168 4568,-174 4562,-174 4562,-174 3976,-174 3976,-174 3970,-174 3964,-168 3964,-162 3964,-162 3964,-28 3964,-28 3964,-22 3970,-16 3976,-16\"/>\n<text text-anchor=\"middle\" x=\"4269\" y=\"-158.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block0</text>\n</g>\n<g id=\"clust19\" class=\"cluster\">\n<title>cluster_layer4_block0_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M4156,-24C4156,-24 4472,-24 4472,-24 4478,-24 4484,-30 4484,-36 4484,-36 4484,-87 4484,-87 4484,-93 4478,-99 4472,-99 4472,-99 4156,-99 4156,-99 4150,-99 4144,-93 4144,-87 4144,-87 4144,-36 4144,-36 4144,-30 4150,-24 4156,-24\"/>\n<text text-anchor=\"middle\" x=\"4314\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust20\" class=\"cluster\">\n<title>cluster_layer4_block1</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M4606,-16C4606,-16 5192,-16 5192,-16 5198,-16 5204,-22 5204,-28 5204,-28 5204,-128 5204,-128 5204,-134 5198,-140 5192,-140 5192,-140 4606,-140 4606,-140 4600,-140 4594,-134 4594,-128 4594,-128 4594,-28 4594,-28 4594,-22 4600,-16 4606,-16\"/>\n<text text-anchor=\"middle\" x=\"4899\" y=\"-124.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">block1</text>\n</g>\n<g id=\"clust21\" class=\"cluster\">\n<title>cluster_layer4_block1_branch</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M4786,-24C4786,-24 5102,-24 5102,-24 5108,-24 5114,-30 5114,-36 5114,-36 5114,-87 5114,-87 5114,-93 5108,-99 5102,-99 5102,-99 4786,-99 4786,-99 4780,-99 4774,-93 4774,-87 4774,-87 4774,-36 4774,-36 4774,-30 4780,-24 4786,-24\"/>\n<text text-anchor=\"middle\" x=\"4944\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">branch</text>\n</g>\n<g id=\"clust22\" class=\"cluster\">\n<title>cluster_final</title>\n<path fill=\"#777777\" fill-opacity=\"0.266667\" stroke=\"#000000\" d=\"M5236,-36C5236,-36 5656,-36 5656,-36 5662,-36 5668,-42 5668,-48 5668,-48 5668,-153 5668,-153 5668,-159 5662,-165 5656,-165 5656,-165 5236,-165 5236,-165 5230,-165 5224,-159 5224,-153 5224,-153 5224,-48 5224,-48 5224,-42 5230,-36 5236,-36\"/>\n<text text-anchor=\"middle\" x=\"5446\" y=\"-149.8\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">final</text>\n</g>\n<!-- prep_conv -->\n<g id=\"node1\" class=\"node\">\n<title>prep_conv</title>\n<g id=\"a_node1\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 3, &#39;out_channels&#39;: 64, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M132,-105C132,-105 102,-105 102,-105 96,-105 90,-99 90,-93 90,-93 90,-81 90,-81 90,-75 96,-69 102,-69 102,-69 132,-69 132,-69 138,-69 144,-75 144,-81 144,-81 144,-93 144,-93 144,-99 138,-105 132,-105\"/>\n<text text-anchor=\"middle\" x=\"117\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_bn1 -->\n<g id=\"node2\" class=\"node\">\n<title>layer1_block0_bn1</title>\n<g id=\"a_node2\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 64, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M222,-105C222,-105 192,-105 192,-105 186,-105 180,-99 180,-93 180,-93 180,-81 180,-81 180,-75 186,-69 192,-69 192,-69 222,-69 222,-69 228,-69 234,-75 234,-81 234,-81 234,-93 234,-93 234,-99 228,-105 222,-105\"/>\n<text text-anchor=\"middle\" x=\"207\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- prep_conv&#45;&gt;layer1_block0_bn1 -->\n<g id=\"edge2\" class=\"edge\">\n<title>prep_conv&#45;&gt;layer1_block0_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M144.003,-87C152.0277,-87 160.9665,-87 169.5309,-87\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"169.7051,-90.5001 179.705,-87 169.705,-83.5001 169.7051,-90.5001\"/>\n</g>\n<!-- layer1_block0_relu1 -->\n<g id=\"node3\" class=\"node\">\n<title>layer1_block0_relu1</title>\n<g id=\"a_node3\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M312,-105C312,-105 282,-105 282,-105 276,-105 270,-99 270,-93 270,-93 270,-81 270,-81 270,-75 276,-69 282,-69 282,-69 312,-69 312,-69 318,-69 324,-75 324,-81 324,-81 324,-93 324,-93 324,-99 318,-105 312,-105\"/>\n<text text-anchor=\"middle\" x=\"297\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_bn1&#45;&gt;layer1_block0_relu1 -->\n<g id=\"edge3\" class=\"edge\">\n<title>layer1_block0_bn1&#45;&gt;layer1_block0_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M234.003,-87C242.0277,-87 250.9665,-87 259.5309,-87\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"259.7051,-90.5001 269.705,-87 259.705,-83.5001 259.7051,-90.5001\"/>\n</g>\n<!-- layer1_block0_branch_conv1 -->\n<g id=\"node4\" class=\"node\">\n<title>layer1_block0_branch_conv1</title>\n<g id=\"a_node4\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 64, &#39;out_channels&#39;: 64, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M402,-85C402,-85 372,-85 372,-85 366,-85 360,-79 360,-73 360,-73 360,-61 360,-61 360,-55 366,-49 372,-49 372,-49 402,-49 402,-49 408,-49 414,-55 414,-61 414,-61 414,-73 414,-73 414,-79 408,-85 402,-85\"/>\n<text text-anchor=\"middle\" x=\"387\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_relu1&#45;&gt;layer1_block0_branch_conv1 -->\n<g id=\"edge4\" class=\"edge\">\n<title>layer1_block0_relu1&#45;&gt;layer1_block0_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M324.003,-80.9993C332.1158,-79.1965 341.1631,-77.186 349.8131,-75.2638\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"350.7024,-78.6516 359.705,-73.0655 349.1839,-71.8183 350.7024,-78.6516\"/>\n</g>\n<!-- layer1_block0_add -->\n<g id=\"node8\" class=\"node\">\n<title>layer1_block0_add</title>\n<g id=\"a_node8\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M762,-105C762,-105 732,-105 732,-105 726,-105 720,-99 720,-93 720,-93 720,-81 720,-81 720,-75 726,-69 732,-69 732,-69 762,-69 762,-69 768,-69 774,-75 774,-81 774,-81 774,-93 774,-93 774,-99 768,-105 762,-105\"/>\n<text text-anchor=\"middle\" x=\"747\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_relu1&#45;&gt;layer1_block0_add -->\n<g id=\"edge8\" class=\"edge\">\n<title>layer1_block0_relu1&#45;&gt;layer1_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M321.2203,-105.104C330.3892,-110.9663 341.2234,-116.7818 352,-120 405.2752,-135.9095 421.4,-125 477,-125 477,-125 477,-125 567,-125 622.6,-125 638.7248,-135.9095 692,-120 699.4089,-117.7875 706.845,-114.3474 713.7486,-110.5084\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"715.996,-113.2423 722.7797,-105.104 712.4015,-107.2356 715.996,-113.2423\"/>\n</g>\n<!-- layer1_block0_branch_bn2 -->\n<g id=\"node5\" class=\"node\">\n<title>layer1_block0_branch_bn2</title>\n<g id=\"a_node5\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 64, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M492,-85C492,-85 462,-85 462,-85 456,-85 450,-79 450,-73 450,-73 450,-61 450,-61 450,-55 456,-49 462,-49 462,-49 492,-49 492,-49 498,-49 504,-55 504,-61 504,-61 504,-73 504,-73 504,-79 498,-85 492,-85\"/>\n<text text-anchor=\"middle\" x=\"477\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_branch_conv1&#45;&gt;layer1_block0_branch_bn2 -->\n<g id=\"edge5\" class=\"edge\">\n<title>layer1_block0_branch_conv1&#45;&gt;layer1_block0_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M414.003,-67C422.0277,-67 430.9665,-67 439.5309,-67\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"439.7051,-70.5001 449.705,-67 439.705,-63.5001 439.7051,-70.5001\"/>\n</g>\n<!-- layer1_block0_branch_relu2 -->\n<g id=\"node6\" class=\"node\">\n<title>layer1_block0_branch_relu2</title>\n<g id=\"a_node6\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M582,-85C582,-85 552,-85 552,-85 546,-85 540,-79 540,-73 540,-73 540,-61 540,-61 540,-55 546,-49 552,-49 552,-49 582,-49 582,-49 588,-49 594,-55 594,-61 594,-61 594,-73 594,-73 594,-79 588,-85 582,-85\"/>\n<text text-anchor=\"middle\" x=\"567\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_branch_bn2&#45;&gt;layer1_block0_branch_relu2 -->\n<g id=\"edge6\" class=\"edge\">\n<title>layer1_block0_branch_bn2&#45;&gt;layer1_block0_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M504.003,-67C512.0277,-67 520.9665,-67 529.5309,-67\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"529.7051,-70.5001 539.705,-67 529.705,-63.5001 529.7051,-70.5001\"/>\n</g>\n<!-- layer1_block0_branch_conv2 -->\n<g id=\"node7\" class=\"node\">\n<title>layer1_block0_branch_conv2</title>\n<g id=\"a_node7\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 64, &#39;out_channels&#39;: 64, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M672,-85C672,-85 642,-85 642,-85 636,-85 630,-79 630,-73 630,-73 630,-61 630,-61 630,-55 636,-49 642,-49 642,-49 672,-49 672,-49 678,-49 684,-55 684,-61 684,-61 684,-73 684,-73 684,-79 678,-85 672,-85\"/>\n<text text-anchor=\"middle\" x=\"657\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_branch_relu2&#45;&gt;layer1_block0_branch_conv2 -->\n<g id=\"edge7\" class=\"edge\">\n<title>layer1_block0_branch_relu2&#45;&gt;layer1_block0_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M594.003,-67C602.0277,-67 610.9665,-67 619.5309,-67\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"619.7051,-70.5001 629.705,-67 619.705,-63.5001 619.7051,-70.5001\"/>\n</g>\n<!-- layer1_block0_branch_conv2&#45;&gt;layer1_block0_add -->\n<g id=\"edge9\" class=\"edge\">\n<title>layer1_block0_branch_conv2&#45;&gt;layer1_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M684.003,-73.0007C692.1158,-74.8035 701.1631,-76.814 709.8131,-78.7362\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"709.1839,-82.1817 719.705,-80.9345 710.7024,-75.3484 709.1839,-82.1817\"/>\n</g>\n<!-- layer1_block1_bn1 -->\n<g id=\"node9\" class=\"node\">\n<title>layer1_block1_bn1</title>\n<g id=\"a_node9\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 64, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M852,-105C852,-105 822,-105 822,-105 816,-105 810,-99 810,-93 810,-93 810,-81 810,-81 810,-75 816,-69 822,-69 822,-69 852,-69 852,-69 858,-69 864,-75 864,-81 864,-81 864,-93 864,-93 864,-99 858,-105 852,-105\"/>\n<text text-anchor=\"middle\" x=\"837\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- layer1_block0_add&#45;&gt;layer1_block1_bn1 -->\n<g id=\"edge10\" class=\"edge\">\n<title>layer1_block0_add&#45;&gt;layer1_block1_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M774.003,-87C782.0277,-87 790.9665,-87 799.5309,-87\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"799.7051,-90.5001 809.705,-87 799.705,-83.5001 799.7051,-90.5001\"/>\n</g>\n<!-- layer1_block1_relu1 -->\n<g id=\"node10\" class=\"node\">\n<title>layer1_block1_relu1</title>\n<g id=\"a_node10\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M942,-105C942,-105 912,-105 912,-105 906,-105 900,-99 900,-93 900,-93 900,-81 900,-81 900,-75 906,-69 912,-69 912,-69 942,-69 942,-69 948,-69 954,-75 954,-81 954,-81 954,-93 954,-93 954,-99 948,-105 942,-105\"/>\n<text text-anchor=\"middle\" x=\"927\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer1_block1_bn1&#45;&gt;layer1_block1_relu1 -->\n<g id=\"edge11\" class=\"edge\">\n<title>layer1_block1_bn1&#45;&gt;layer1_block1_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M864.003,-87C872.0277,-87 880.9665,-87 889.5309,-87\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"889.7051,-90.5001 899.705,-87 889.705,-83.5001 889.7051,-90.5001\"/>\n</g>\n<!-- layer1_block1_branch_conv1 -->\n<g id=\"node11\" class=\"node\">\n<title>layer1_block1_branch_conv1</title>\n<g id=\"a_node11\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 64, &#39;out_channels&#39;: 64, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M1032,-85C1032,-85 1002,-85 1002,-85 996,-85 990,-79 990,-73 990,-73 990,-61 990,-61 990,-55 996,-49 1002,-49 1002,-49 1032,-49 1032,-49 1038,-49 1044,-55 1044,-61 1044,-61 1044,-73 1044,-73 1044,-79 1038,-85 1032,-85\"/>\n<text text-anchor=\"middle\" x=\"1017\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer1_block1_relu1&#45;&gt;layer1_block1_branch_conv1 -->\n<g id=\"edge12\" class=\"edge\">\n<title>layer1_block1_relu1&#45;&gt;layer1_block1_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M954.003,-80.9993C962.1158,-79.1965 971.1631,-77.186 979.8131,-75.2638\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"980.7024,-78.6516 989.705,-73.0655 979.1839,-71.8183 980.7024,-78.6516\"/>\n</g>\n<!-- layer1_block1_add -->\n<g id=\"node15\" class=\"node\">\n<title>layer1_block1_add</title>\n<g id=\"a_node15\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M1392,-105C1392,-105 1362,-105 1362,-105 1356,-105 1350,-99 1350,-93 1350,-93 1350,-81 1350,-81 1350,-75 1356,-69 1362,-69 1362,-69 1392,-69 1392,-69 1398,-69 1404,-75 1404,-81 1404,-81 1404,-93 1404,-93 1404,-99 1398,-105 1392,-105\"/>\n<text text-anchor=\"middle\" x=\"1377\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer1_block1_relu1&#45;&gt;layer1_block1_add -->\n<g id=\"edge16\" class=\"edge\">\n<title>layer1_block1_relu1&#45;&gt;layer1_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M951.2203,-105.104C960.3892,-110.9663 971.2234,-116.7818 982,-120 1035.2752,-135.9095 1051.4,-125 1107,-125 1107,-125 1107,-125 1197,-125 1252.6,-125 1268.7248,-135.9095 1322,-120 1329.4089,-117.7875 1336.845,-114.3474 1343.7486,-110.5084\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1345.996,-113.2423 1352.7797,-105.104 1342.4015,-107.2356 1345.996,-113.2423\"/>\n</g>\n<!-- layer1_block1_branch_bn2 -->\n<g id=\"node12\" class=\"node\">\n<title>layer1_block1_branch_bn2</title>\n<g id=\"a_node12\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 64, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M1122,-85C1122,-85 1092,-85 1092,-85 1086,-85 1080,-79 1080,-73 1080,-73 1080,-61 1080,-61 1080,-55 1086,-49 1092,-49 1092,-49 1122,-49 1122,-49 1128,-49 1134,-55 1134,-61 1134,-61 1134,-73 1134,-73 1134,-79 1128,-85 1122,-85\"/>\n<text text-anchor=\"middle\" x=\"1107\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer1_block1_branch_conv1&#45;&gt;layer1_block1_branch_bn2 -->\n<g id=\"edge13\" class=\"edge\">\n<title>layer1_block1_branch_conv1&#45;&gt;layer1_block1_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1044.003,-67C1052.0277,-67 1060.9665,-67 1069.5309,-67\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1069.7051,-70.5001 1079.705,-67 1069.705,-63.5001 1069.7051,-70.5001\"/>\n</g>\n<!-- layer1_block1_branch_relu2 -->\n<g id=\"node13\" class=\"node\">\n<title>layer1_block1_branch_relu2</title>\n<g id=\"a_node13\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M1212,-85C1212,-85 1182,-85 1182,-85 1176,-85 1170,-79 1170,-73 1170,-73 1170,-61 1170,-61 1170,-55 1176,-49 1182,-49 1182,-49 1212,-49 1212,-49 1218,-49 1224,-55 1224,-61 1224,-61 1224,-73 1224,-73 1224,-79 1218,-85 1212,-85\"/>\n<text text-anchor=\"middle\" x=\"1197\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer1_block1_branch_bn2&#45;&gt;layer1_block1_branch_relu2 -->\n<g id=\"edge14\" class=\"edge\">\n<title>layer1_block1_branch_bn2&#45;&gt;layer1_block1_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1134.003,-67C1142.0277,-67 1150.9665,-67 1159.5309,-67\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1159.7051,-70.5001 1169.705,-67 1159.705,-63.5001 1159.7051,-70.5001\"/>\n</g>\n<!-- layer1_block1_branch_conv2 -->\n<g id=\"node14\" class=\"node\">\n<title>layer1_block1_branch_conv2</title>\n<g id=\"a_node14\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 64, &#39;out_channels&#39;: 64, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M1302,-85C1302,-85 1272,-85 1272,-85 1266,-85 1260,-79 1260,-73 1260,-73 1260,-61 1260,-61 1260,-55 1266,-49 1272,-49 1272,-49 1302,-49 1302,-49 1308,-49 1314,-55 1314,-61 1314,-61 1314,-73 1314,-73 1314,-79 1308,-85 1302,-85\"/>\n<text text-anchor=\"middle\" x=\"1287\" y=\"-63.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer1_block1_branch_relu2&#45;&gt;layer1_block1_branch_conv2 -->\n<g id=\"edge15\" class=\"edge\">\n<title>layer1_block1_branch_relu2&#45;&gt;layer1_block1_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1224.003,-67C1232.0277,-67 1240.9665,-67 1249.5309,-67\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1249.7051,-70.5001 1259.705,-67 1249.705,-63.5001 1249.7051,-70.5001\"/>\n</g>\n<!-- layer1_block1_branch_conv2&#45;&gt;layer1_block1_add -->\n<g id=\"edge17\" class=\"edge\">\n<title>layer1_block1_branch_conv2&#45;&gt;layer1_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1314.003,-73.0007C1322.1158,-74.8035 1331.1631,-76.814 1339.8131,-78.7362\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1339.1839,-82.1817 1349.705,-80.9345 1340.7024,-75.3484 1339.1839,-82.1817\"/>\n</g>\n<!-- layer2_block0_bn1 -->\n<g id=\"node16\" class=\"node\">\n<title>layer2_block0_bn1</title>\n<g id=\"a_node16\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 64, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M1486,-105C1486,-105 1456,-105 1456,-105 1450,-105 1444,-99 1444,-93 1444,-93 1444,-81 1444,-81 1444,-75 1450,-69 1456,-69 1456,-69 1486,-69 1486,-69 1492,-69 1498,-75 1498,-81 1498,-81 1498,-93 1498,-93 1498,-99 1492,-105 1486,-105\"/>\n<text text-anchor=\"middle\" x=\"1471\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- layer1_block1_add&#45;&gt;layer2_block0_bn1 -->\n<g id=\"edge18\" class=\"edge\">\n<title>layer1_block1_add&#45;&gt;layer2_block0_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1404.1887,-87C1413.4446,-87 1423.9552,-87 1433.8551,-87\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1433.8724,-90.5001 1443.8724,-87 1433.8724,-83.5001 1433.8724,-90.5001\"/>\n</g>\n<!-- layer2_block0_relu1 -->\n<g id=\"node17\" class=\"node\">\n<title>layer2_block0_relu1</title>\n<g id=\"a_node17\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M1576,-105C1576,-105 1546,-105 1546,-105 1540,-105 1534,-99 1534,-93 1534,-93 1534,-81 1534,-81 1534,-75 1540,-69 1546,-69 1546,-69 1576,-69 1576,-69 1582,-69 1588,-75 1588,-81 1588,-81 1588,-93 1588,-93 1588,-99 1582,-105 1576,-105\"/>\n<text text-anchor=\"middle\" x=\"1561\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_bn1&#45;&gt;layer2_block0_relu1 -->\n<g id=\"edge19\" class=\"edge\">\n<title>layer2_block0_bn1&#45;&gt;layer2_block0_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1498.003,-87C1506.0277,-87 1514.9665,-87 1523.5309,-87\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1523.7051,-90.5001 1533.705,-87 1523.705,-83.5001 1523.7051,-90.5001\"/>\n</g>\n<!-- layer2_block0_branch_conv1 -->\n<g id=\"node18\" class=\"node\">\n<title>layer2_block0_branch_conv1</title>\n<g id=\"a_node18\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 64, &#39;out_channels&#39;: 128, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (2, 2), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M1666,-76C1666,-76 1636,-76 1636,-76 1630,-76 1624,-70 1624,-64 1624,-64 1624,-52 1624,-52 1624,-46 1630,-40 1636,-40 1636,-40 1666,-40 1666,-40 1672,-40 1678,-46 1678,-52 1678,-52 1678,-64 1678,-64 1678,-70 1672,-76 1666,-76\"/>\n<text text-anchor=\"middle\" x=\"1651\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_relu1&#45;&gt;layer2_block0_branch_conv1 -->\n<g id=\"edge20\" class=\"edge\">\n<title>layer2_block0_relu1&#45;&gt;layer2_block0_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1588.003,-78.299C1596.204,-75.6565 1605.3599,-72.7063 1614.095,-69.8916\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1615.2604,-73.1934 1623.705,-66.795 1613.1135,-66.5307 1615.2604,-73.1934\"/>\n</g>\n<!-- layer2_block0_conv3 -->\n<g id=\"node22\" class=\"node\">\n<title>layer2_block0_conv3</title>\n<g id=\"a_node22\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 64, &#39;out_channels&#39;: 128, &#39;kernel_size&#39;: (1, 1), &#39;stride&#39;: (2, 2), &#39;padding&#39;: (0, 0), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M1936,-151C1936,-151 1906,-151 1906,-151 1900,-151 1894,-145 1894,-139 1894,-139 1894,-127 1894,-127 1894,-121 1900,-115 1906,-115 1906,-115 1936,-115 1936,-115 1942,-115 1948,-121 1948,-127 1948,-127 1948,-139 1948,-139 1948,-145 1942,-151 1936,-151\"/>\n<text text-anchor=\"middle\" x=\"1921\" y=\"-129.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv3</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_relu1&#45;&gt;layer2_block0_conv3 -->\n<g id=\"edge24\" class=\"edge\">\n<title>layer2_block0_relu1&#45;&gt;layer2_block0_conv3</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1588.0569,-100.9783C1596.7621,-104.8791 1606.5929,-108.6806 1616,-111 1710.1388,-134.2102 1825.1893,-135.5006 1883.402,-134.3339\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1883.6781,-137.8284 1893.5923,-134.0922 1883.5121,-130.8304 1883.6781,-137.8284\"/>\n</g>\n<!-- layer2_block0_branch_bn2 -->\n<g id=\"node19\" class=\"node\">\n<title>layer2_block0_branch_bn2</title>\n<g id=\"a_node19\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 128, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M1756,-76C1756,-76 1726,-76 1726,-76 1720,-76 1714,-70 1714,-64 1714,-64 1714,-52 1714,-52 1714,-46 1720,-40 1726,-40 1726,-40 1756,-40 1756,-40 1762,-40 1768,-46 1768,-52 1768,-52 1768,-64 1768,-64 1768,-70 1762,-76 1756,-76\"/>\n<text text-anchor=\"middle\" x=\"1741\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_branch_conv1&#45;&gt;layer2_block0_branch_bn2 -->\n<g id=\"edge21\" class=\"edge\">\n<title>layer2_block0_branch_conv1&#45;&gt;layer2_block0_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1678.003,-58C1686.0277,-58 1694.9665,-58 1703.5309,-58\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1703.7051,-61.5001 1713.705,-58 1703.705,-54.5001 1703.7051,-61.5001\"/>\n</g>\n<!-- layer2_block0_branch_relu2 -->\n<g id=\"node20\" class=\"node\">\n<title>layer2_block0_branch_relu2</title>\n<g id=\"a_node20\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M1846,-76C1846,-76 1816,-76 1816,-76 1810,-76 1804,-70 1804,-64 1804,-64 1804,-52 1804,-52 1804,-46 1810,-40 1816,-40 1816,-40 1846,-40 1846,-40 1852,-40 1858,-46 1858,-52 1858,-52 1858,-64 1858,-64 1858,-70 1852,-76 1846,-76\"/>\n<text text-anchor=\"middle\" x=\"1831\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_branch_bn2&#45;&gt;layer2_block0_branch_relu2 -->\n<g id=\"edge22\" class=\"edge\">\n<title>layer2_block0_branch_bn2&#45;&gt;layer2_block0_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1768.003,-58C1776.0277,-58 1784.9665,-58 1793.5309,-58\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1793.7051,-61.5001 1803.705,-58 1793.705,-54.5001 1793.7051,-61.5001\"/>\n</g>\n<!-- layer2_block0_branch_conv2 -->\n<g id=\"node21\" class=\"node\">\n<title>layer2_block0_branch_conv2</title>\n<g id=\"a_node21\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 128, &#39;out_channels&#39;: 128, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M1936,-76C1936,-76 1906,-76 1906,-76 1900,-76 1894,-70 1894,-64 1894,-64 1894,-52 1894,-52 1894,-46 1900,-40 1906,-40 1906,-40 1936,-40 1936,-40 1942,-40 1948,-46 1948,-52 1948,-52 1948,-64 1948,-64 1948,-70 1942,-76 1936,-76\"/>\n<text text-anchor=\"middle\" x=\"1921\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_branch_relu2&#45;&gt;layer2_block0_branch_conv2 -->\n<g id=\"edge23\" class=\"edge\">\n<title>layer2_block0_branch_relu2&#45;&gt;layer2_block0_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1858.003,-58C1866.0277,-58 1874.9665,-58 1883.5309,-58\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1883.7051,-61.5001 1893.705,-58 1883.705,-54.5001 1883.7051,-61.5001\"/>\n</g>\n<!-- layer2_block0_add -->\n<g id=\"node23\" class=\"node\">\n<title>layer2_block0_add</title>\n<g id=\"a_node23\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M2026,-96C2026,-96 1996,-96 1996,-96 1990,-96 1984,-90 1984,-84 1984,-84 1984,-72 1984,-72 1984,-66 1990,-60 1996,-60 1996,-60 2026,-60 2026,-60 2032,-60 2038,-66 2038,-72 2038,-72 2038,-84 2038,-84 2038,-90 2032,-96 2026,-96\"/>\n<text text-anchor=\"middle\" x=\"2011\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_branch_conv2&#45;&gt;layer2_block0_add -->\n<g id=\"edge26\" class=\"edge\">\n<title>layer2_block0_branch_conv2&#45;&gt;layer2_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1948.003,-64.0007C1956.1158,-65.8035 1965.1631,-67.814 1973.8131,-69.7362\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1973.1839,-73.1817 1983.705,-71.9345 1974.7024,-66.3484 1973.1839,-73.1817\"/>\n</g>\n<!-- layer2_block0_conv3&#45;&gt;layer2_block0_add -->\n<g id=\"edge25\" class=\"edge\">\n<title>layer2_block0_conv3&#45;&gt;layer2_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M1948.003,-116.4982C1956.4686,-111.3248 1965.9516,-105.5296 1974.9389,-100.0373\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1976.9973,-102.8813 1983.705,-94.6803 1973.3471,-96.9083 1976.9973,-102.8813\"/>\n</g>\n<!-- layer2_block1_bn1 -->\n<g id=\"node24\" class=\"node\">\n<title>layer2_block1_bn1</title>\n<g id=\"a_node24\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 128, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M2116,-96C2116,-96 2086,-96 2086,-96 2080,-96 2074,-90 2074,-84 2074,-84 2074,-72 2074,-72 2074,-66 2080,-60 2086,-60 2086,-60 2116,-60 2116,-60 2122,-60 2128,-66 2128,-72 2128,-72 2128,-84 2128,-84 2128,-90 2122,-96 2116,-96\"/>\n<text text-anchor=\"middle\" x=\"2101\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- layer2_block0_add&#45;&gt;layer2_block1_bn1 -->\n<g id=\"edge27\" class=\"edge\">\n<title>layer2_block0_add&#45;&gt;layer2_block1_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2038.003,-78C2046.0277,-78 2054.9665,-78 2063.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2063.7051,-81.5001 2073.705,-78 2063.705,-74.5001 2063.7051,-81.5001\"/>\n</g>\n<!-- layer2_block1_relu1 -->\n<g id=\"node25\" class=\"node\">\n<title>layer2_block1_relu1</title>\n<g id=\"a_node25\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M2206,-96C2206,-96 2176,-96 2176,-96 2170,-96 2164,-90 2164,-84 2164,-84 2164,-72 2164,-72 2164,-66 2170,-60 2176,-60 2176,-60 2206,-60 2206,-60 2212,-60 2218,-66 2218,-72 2218,-72 2218,-84 2218,-84 2218,-90 2212,-96 2206,-96\"/>\n<text text-anchor=\"middle\" x=\"2191\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer2_block1_bn1&#45;&gt;layer2_block1_relu1 -->\n<g id=\"edge28\" class=\"edge\">\n<title>layer2_block1_bn1&#45;&gt;layer2_block1_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2128.003,-78C2136.0277,-78 2144.9665,-78 2153.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2153.7051,-81.5001 2163.705,-78 2153.705,-74.5001 2153.7051,-81.5001\"/>\n</g>\n<!-- layer2_block1_branch_conv1 -->\n<g id=\"node26\" class=\"node\">\n<title>layer2_block1_branch_conv1</title>\n<g id=\"a_node26\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 128, &#39;out_channels&#39;: 128, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M2296,-76C2296,-76 2266,-76 2266,-76 2260,-76 2254,-70 2254,-64 2254,-64 2254,-52 2254,-52 2254,-46 2260,-40 2266,-40 2266,-40 2296,-40 2296,-40 2302,-40 2308,-46 2308,-52 2308,-52 2308,-64 2308,-64 2308,-70 2302,-76 2296,-76\"/>\n<text text-anchor=\"middle\" x=\"2281\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer2_block1_relu1&#45;&gt;layer2_block1_branch_conv1 -->\n<g id=\"edge29\" class=\"edge\">\n<title>layer2_block1_relu1&#45;&gt;layer2_block1_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2218.003,-71.9993C2226.1158,-70.1965 2235.1631,-68.186 2243.8131,-66.2638\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2244.7024,-69.6516 2253.705,-64.0655 2243.1839,-62.8183 2244.7024,-69.6516\"/>\n</g>\n<!-- layer2_block1_add -->\n<g id=\"node30\" class=\"node\">\n<title>layer2_block1_add</title>\n<g id=\"a_node30\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M2656,-96C2656,-96 2626,-96 2626,-96 2620,-96 2614,-90 2614,-84 2614,-84 2614,-72 2614,-72 2614,-66 2620,-60 2626,-60 2626,-60 2656,-60 2656,-60 2662,-60 2668,-66 2668,-72 2668,-72 2668,-84 2668,-84 2668,-90 2662,-96 2656,-96\"/>\n<text text-anchor=\"middle\" x=\"2641\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer2_block1_relu1&#45;&gt;layer2_block1_add -->\n<g id=\"edge33\" class=\"edge\">\n<title>layer2_block1_relu1&#45;&gt;layer2_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2215.2203,-96.104C2224.3892,-101.9663 2235.2234,-107.7818 2246,-111 2299.2752,-126.9095 2315.4,-116 2371,-116 2371,-116 2371,-116 2461,-116 2516.6,-116 2532.7248,-126.9095 2586,-111 2593.4089,-108.7875 2600.845,-105.3474 2607.7486,-101.5084\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2609.996,-104.2423 2616.7797,-96.104 2606.4015,-98.2356 2609.996,-104.2423\"/>\n</g>\n<!-- layer2_block1_branch_bn2 -->\n<g id=\"node27\" class=\"node\">\n<title>layer2_block1_branch_bn2</title>\n<g id=\"a_node27\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 128, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M2386,-76C2386,-76 2356,-76 2356,-76 2350,-76 2344,-70 2344,-64 2344,-64 2344,-52 2344,-52 2344,-46 2350,-40 2356,-40 2356,-40 2386,-40 2386,-40 2392,-40 2398,-46 2398,-52 2398,-52 2398,-64 2398,-64 2398,-70 2392,-76 2386,-76\"/>\n<text text-anchor=\"middle\" x=\"2371\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer2_block1_branch_conv1&#45;&gt;layer2_block1_branch_bn2 -->\n<g id=\"edge30\" class=\"edge\">\n<title>layer2_block1_branch_conv1&#45;&gt;layer2_block1_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2308.003,-58C2316.0277,-58 2324.9665,-58 2333.5309,-58\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2333.7051,-61.5001 2343.705,-58 2333.705,-54.5001 2333.7051,-61.5001\"/>\n</g>\n<!-- layer2_block1_branch_relu2 -->\n<g id=\"node28\" class=\"node\">\n<title>layer2_block1_branch_relu2</title>\n<g id=\"a_node28\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M2476,-76C2476,-76 2446,-76 2446,-76 2440,-76 2434,-70 2434,-64 2434,-64 2434,-52 2434,-52 2434,-46 2440,-40 2446,-40 2446,-40 2476,-40 2476,-40 2482,-40 2488,-46 2488,-52 2488,-52 2488,-64 2488,-64 2488,-70 2482,-76 2476,-76\"/>\n<text text-anchor=\"middle\" x=\"2461\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer2_block1_branch_bn2&#45;&gt;layer2_block1_branch_relu2 -->\n<g id=\"edge31\" class=\"edge\">\n<title>layer2_block1_branch_bn2&#45;&gt;layer2_block1_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2398.003,-58C2406.0277,-58 2414.9665,-58 2423.5309,-58\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2423.7051,-61.5001 2433.705,-58 2423.705,-54.5001 2423.7051,-61.5001\"/>\n</g>\n<!-- layer2_block1_branch_conv2 -->\n<g id=\"node29\" class=\"node\">\n<title>layer2_block1_branch_conv2</title>\n<g id=\"a_node29\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 128, &#39;out_channels&#39;: 128, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M2566,-76C2566,-76 2536,-76 2536,-76 2530,-76 2524,-70 2524,-64 2524,-64 2524,-52 2524,-52 2524,-46 2530,-40 2536,-40 2536,-40 2566,-40 2566,-40 2572,-40 2578,-46 2578,-52 2578,-52 2578,-64 2578,-64 2578,-70 2572,-76 2566,-76\"/>\n<text text-anchor=\"middle\" x=\"2551\" y=\"-54.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer2_block1_branch_relu2&#45;&gt;layer2_block1_branch_conv2 -->\n<g id=\"edge32\" class=\"edge\">\n<title>layer2_block1_branch_relu2&#45;&gt;layer2_block1_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2488.003,-58C2496.0277,-58 2504.9665,-58 2513.5309,-58\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2513.7051,-61.5001 2523.705,-58 2513.705,-54.5001 2513.7051,-61.5001\"/>\n</g>\n<!-- layer2_block1_branch_conv2&#45;&gt;layer2_block1_add -->\n<g id=\"edge34\" class=\"edge\">\n<title>layer2_block1_branch_conv2&#45;&gt;layer2_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2578.003,-64.0007C2586.1158,-65.8035 2595.1631,-67.814 2603.8131,-69.7362\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2603.1839,-73.1817 2613.705,-71.9345 2604.7024,-66.3484 2603.1839,-73.1817\"/>\n</g>\n<!-- layer3_block0_bn1 -->\n<g id=\"node31\" class=\"node\">\n<title>layer3_block0_bn1</title>\n<g id=\"a_node31\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 128, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M2750,-96C2750,-96 2720,-96 2720,-96 2714,-96 2708,-90 2708,-84 2708,-84 2708,-72 2708,-72 2708,-66 2714,-60 2720,-60 2720,-60 2750,-60 2750,-60 2756,-60 2762,-66 2762,-72 2762,-72 2762,-84 2762,-84 2762,-90 2756,-96 2750,-96\"/>\n<text text-anchor=\"middle\" x=\"2735\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- layer2_block1_add&#45;&gt;layer3_block0_bn1 -->\n<g id=\"edge35\" class=\"edge\">\n<title>layer2_block1_add&#45;&gt;layer3_block0_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2668.1887,-78C2677.4446,-78 2687.9552,-78 2697.8551,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2697.8724,-81.5001 2707.8724,-78 2697.8724,-74.5001 2697.8724,-81.5001\"/>\n</g>\n<!-- layer3_block0_relu1 -->\n<g id=\"node32\" class=\"node\">\n<title>layer3_block0_relu1</title>\n<g id=\"a_node32\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M2840,-96C2840,-96 2810,-96 2810,-96 2804,-96 2798,-90 2798,-84 2798,-84 2798,-72 2798,-72 2798,-66 2804,-60 2810,-60 2810,-60 2840,-60 2840,-60 2846,-60 2852,-66 2852,-72 2852,-72 2852,-84 2852,-84 2852,-90 2846,-96 2840,-96\"/>\n<text text-anchor=\"middle\" x=\"2825\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_bn1&#45;&gt;layer3_block0_relu1 -->\n<g id=\"edge36\" class=\"edge\">\n<title>layer3_block0_bn1&#45;&gt;layer3_block0_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2762.003,-78C2770.0277,-78 2778.9665,-78 2787.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2787.7051,-81.5001 2797.705,-78 2787.705,-74.5001 2787.7051,-81.5001\"/>\n</g>\n<!-- layer3_block0_branch_conv1 -->\n<g id=\"node33\" class=\"node\">\n<title>layer3_block0_branch_conv1</title>\n<g id=\"a_node33\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 128, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (2, 2), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M2930,-96C2930,-96 2900,-96 2900,-96 2894,-96 2888,-90 2888,-84 2888,-84 2888,-72 2888,-72 2888,-66 2894,-60 2900,-60 2900,-60 2930,-60 2930,-60 2936,-60 2942,-66 2942,-72 2942,-72 2942,-84 2942,-84 2942,-90 2936,-96 2930,-96\"/>\n<text text-anchor=\"middle\" x=\"2915\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_relu1&#45;&gt;layer3_block0_branch_conv1 -->\n<g id=\"edge37\" class=\"edge\">\n<title>layer3_block0_relu1&#45;&gt;layer3_block0_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2852.003,-78C2860.0277,-78 2868.9665,-78 2877.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2877.7051,-81.5001 2887.705,-78 2877.705,-74.5001 2877.7051,-81.5001\"/>\n</g>\n<!-- layer3_block0_conv3 -->\n<g id=\"node37\" class=\"node\">\n<title>layer3_block0_conv3</title>\n<g id=\"a_node37\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 128, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (1, 1), &#39;stride&#39;: (2, 2), &#39;padding&#39;: (0, 0), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M3200,-171C3200,-171 3170,-171 3170,-171 3164,-171 3158,-165 3158,-159 3158,-159 3158,-147 3158,-147 3158,-141 3164,-135 3170,-135 3170,-135 3200,-135 3200,-135 3206,-135 3212,-141 3212,-147 3212,-147 3212,-159 3212,-159 3212,-165 3206,-171 3200,-171\"/>\n<text text-anchor=\"middle\" x=\"3185\" y=\"-149.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv3</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_relu1&#45;&gt;layer3_block0_conv3 -->\n<g id=\"edge41\" class=\"edge\">\n<title>layer3_block0_relu1&#45;&gt;layer3_block0_conv3</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2838.2001,-96.1273C2848.1851,-108.2974 2863.0445,-123.4395 2880,-131 2969.4229,-170.8742 3088.2975,-164.7143 3147.7782,-158.1531\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3148.3051,-161.6154 3157.8305,-156.9768 3147.4915,-154.6628 3148.3051,-161.6154\"/>\n</g>\n<!-- layer3_block0_branch_bn2 -->\n<g id=\"node34\" class=\"node\">\n<title>layer3_block0_branch_bn2</title>\n<g id=\"a_node34\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 256, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M3020,-96C3020,-96 2990,-96 2990,-96 2984,-96 2978,-90 2978,-84 2978,-84 2978,-72 2978,-72 2978,-66 2984,-60 2990,-60 2990,-60 3020,-60 3020,-60 3026,-60 3032,-66 3032,-72 3032,-72 3032,-84 3032,-84 3032,-90 3026,-96 3020,-96\"/>\n<text text-anchor=\"middle\" x=\"3005\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_branch_conv1&#45;&gt;layer3_block0_branch_bn2 -->\n<g id=\"edge38\" class=\"edge\">\n<title>layer3_block0_branch_conv1&#45;&gt;layer3_block0_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M2942.003,-78C2950.0277,-78 2958.9665,-78 2967.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2967.7051,-81.5001 2977.705,-78 2967.705,-74.5001 2967.7051,-81.5001\"/>\n</g>\n<!-- layer3_block0_branch_relu2 -->\n<g id=\"node35\" class=\"node\">\n<title>layer3_block0_branch_relu2</title>\n<g id=\"a_node35\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M3110,-96C3110,-96 3080,-96 3080,-96 3074,-96 3068,-90 3068,-84 3068,-84 3068,-72 3068,-72 3068,-66 3074,-60 3080,-60 3080,-60 3110,-60 3110,-60 3116,-60 3122,-66 3122,-72 3122,-72 3122,-84 3122,-84 3122,-90 3116,-96 3110,-96\"/>\n<text text-anchor=\"middle\" x=\"3095\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_branch_bn2&#45;&gt;layer3_block0_branch_relu2 -->\n<g id=\"edge39\" class=\"edge\">\n<title>layer3_block0_branch_bn2&#45;&gt;layer3_block0_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3032.003,-78C3040.0277,-78 3048.9665,-78 3057.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3057.7051,-81.5001 3067.705,-78 3057.705,-74.5001 3057.7051,-81.5001\"/>\n</g>\n<!-- layer3_block0_branch_conv2 -->\n<g id=\"node36\" class=\"node\">\n<title>layer3_block0_branch_conv2</title>\n<g id=\"a_node36\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M3200,-96C3200,-96 3170,-96 3170,-96 3164,-96 3158,-90 3158,-84 3158,-84 3158,-72 3158,-72 3158,-66 3164,-60 3170,-60 3170,-60 3200,-60 3200,-60 3206,-60 3212,-66 3212,-72 3212,-72 3212,-84 3212,-84 3212,-90 3206,-96 3200,-96\"/>\n<text text-anchor=\"middle\" x=\"3185\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_branch_relu2&#45;&gt;layer3_block0_branch_conv2 -->\n<g id=\"edge40\" class=\"edge\">\n<title>layer3_block0_branch_relu2&#45;&gt;layer3_block0_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3122.003,-78C3130.0277,-78 3138.9665,-78 3147.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3147.7051,-81.5001 3157.705,-78 3147.705,-74.5001 3147.7051,-81.5001\"/>\n</g>\n<!-- layer3_block0_add -->\n<g id=\"node38\" class=\"node\">\n<title>layer3_block0_add</title>\n<g id=\"a_node38\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M3290,-96C3290,-96 3260,-96 3260,-96 3254,-96 3248,-90 3248,-84 3248,-84 3248,-72 3248,-72 3248,-66 3254,-60 3260,-60 3260,-60 3290,-60 3290,-60 3296,-60 3302,-66 3302,-72 3302,-72 3302,-84 3302,-84 3302,-90 3296,-96 3290,-96\"/>\n<text text-anchor=\"middle\" x=\"3275\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_branch_conv2&#45;&gt;layer3_block0_add -->\n<g id=\"edge43\" class=\"edge\">\n<title>layer3_block0_branch_conv2&#45;&gt;layer3_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3212.003,-78C3220.0277,-78 3228.9665,-78 3237.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3237.7051,-81.5001 3247.705,-78 3237.705,-74.5001 3237.7051,-81.5001\"/>\n</g>\n<!-- layer3_block0_conv3&#45;&gt;layer3_block0_add -->\n<g id=\"edge42\" class=\"edge\">\n<title>layer3_block0_conv3&#45;&gt;layer3_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3212.1371,-136.7304C3214.8471,-134.8733 3217.5131,-132.9462 3220,-131 3230.7122,-122.617 3241.6703,-112.4425 3250.9574,-103.2582\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3253.4462,-105.7192 3258.0106,-96.158 3248.48,-100.7859 3253.4462,-105.7192\"/>\n</g>\n<!-- layer3_block1_bn1 -->\n<g id=\"node39\" class=\"node\">\n<title>layer3_block1_bn1</title>\n<g id=\"a_node39\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 256, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M3380,-96C3380,-96 3350,-96 3350,-96 3344,-96 3338,-90 3338,-84 3338,-84 3338,-72 3338,-72 3338,-66 3344,-60 3350,-60 3350,-60 3380,-60 3380,-60 3386,-60 3392,-66 3392,-72 3392,-72 3392,-84 3392,-84 3392,-90 3386,-96 3380,-96\"/>\n<text text-anchor=\"middle\" x=\"3365\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- layer3_block0_add&#45;&gt;layer3_block1_bn1 -->\n<g id=\"edge44\" class=\"edge\">\n<title>layer3_block0_add&#45;&gt;layer3_block1_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3302.003,-78C3310.0277,-78 3318.9665,-78 3327.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3327.7051,-81.5001 3337.705,-78 3327.705,-74.5001 3327.7051,-81.5001\"/>\n</g>\n<!-- layer3_block1_relu1 -->\n<g id=\"node40\" class=\"node\">\n<title>layer3_block1_relu1</title>\n<g id=\"a_node40\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M3470,-96C3470,-96 3440,-96 3440,-96 3434,-96 3428,-90 3428,-84 3428,-84 3428,-72 3428,-72 3428,-66 3434,-60 3440,-60 3440,-60 3470,-60 3470,-60 3476,-60 3482,-66 3482,-72 3482,-72 3482,-84 3482,-84 3482,-90 3476,-96 3470,-96\"/>\n<text text-anchor=\"middle\" x=\"3455\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer3_block1_bn1&#45;&gt;layer3_block1_relu1 -->\n<g id=\"edge45\" class=\"edge\">\n<title>layer3_block1_bn1&#45;&gt;layer3_block1_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3392.003,-78C3400.0277,-78 3408.9665,-78 3417.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3417.7051,-81.5001 3427.705,-78 3417.705,-74.5001 3417.7051,-81.5001\"/>\n</g>\n<!-- layer3_block1_branch_conv1 -->\n<g id=\"node41\" class=\"node\">\n<title>layer3_block1_branch_conv1</title>\n<g id=\"a_node41\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M3560,-96C3560,-96 3530,-96 3530,-96 3524,-96 3518,-90 3518,-84 3518,-84 3518,-72 3518,-72 3518,-66 3524,-60 3530,-60 3530,-60 3560,-60 3560,-60 3566,-60 3572,-66 3572,-72 3572,-72 3572,-84 3572,-84 3572,-90 3566,-96 3560,-96\"/>\n<text text-anchor=\"middle\" x=\"3545\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer3_block1_relu1&#45;&gt;layer3_block1_branch_conv1 -->\n<g id=\"edge46\" class=\"edge\">\n<title>layer3_block1_relu1&#45;&gt;layer3_block1_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3482.003,-78C3490.0277,-78 3498.9665,-78 3507.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3507.7051,-81.5001 3517.705,-78 3507.705,-74.5001 3507.7051,-81.5001\"/>\n</g>\n<!-- layer3_block1_add -->\n<g id=\"node45\" class=\"node\">\n<title>layer3_block1_add</title>\n<g id=\"a_node45\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M3920,-116C3920,-116 3890,-116 3890,-116 3884,-116 3878,-110 3878,-104 3878,-104 3878,-92 3878,-92 3878,-86 3884,-80 3890,-80 3890,-80 3920,-80 3920,-80 3926,-80 3932,-86 3932,-92 3932,-92 3932,-104 3932,-104 3932,-110 3926,-116 3920,-116\"/>\n<text text-anchor=\"middle\" x=\"3905\" y=\"-94.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer3_block1_relu1&#45;&gt;layer3_block1_add -->\n<g id=\"edge50\" class=\"edge\">\n<title>layer3_block1_relu1&#45;&gt;layer3_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3467.9144,-96.0331C3477.8654,-108.3273 3492.8037,-123.6599 3510,-131 3561.1364,-152.8272 3579.4,-136 3635,-136 3635,-136 3635,-136 3725,-136 3780.6,-136 3796.7248,-146.9095 3850,-131 3857.4089,-128.7875 3864.845,-125.3474 3871.7486,-121.5084\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3873.996,-124.2423 3880.7797,-116.104 3870.4015,-118.2356 3873.996,-124.2423\"/>\n</g>\n<!-- layer3_block1_branch_bn2 -->\n<g id=\"node42\" class=\"node\">\n<title>layer3_block1_branch_bn2</title>\n<g id=\"a_node42\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 256, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M3650,-96C3650,-96 3620,-96 3620,-96 3614,-96 3608,-90 3608,-84 3608,-84 3608,-72 3608,-72 3608,-66 3614,-60 3620,-60 3620,-60 3650,-60 3650,-60 3656,-60 3662,-66 3662,-72 3662,-72 3662,-84 3662,-84 3662,-90 3656,-96 3650,-96\"/>\n<text text-anchor=\"middle\" x=\"3635\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer3_block1_branch_conv1&#45;&gt;layer3_block1_branch_bn2 -->\n<g id=\"edge47\" class=\"edge\">\n<title>layer3_block1_branch_conv1&#45;&gt;layer3_block1_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3572.003,-78C3580.0277,-78 3588.9665,-78 3597.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3597.7051,-81.5001 3607.705,-78 3597.705,-74.5001 3597.7051,-81.5001\"/>\n</g>\n<!-- layer3_block1_branch_relu2 -->\n<g id=\"node43\" class=\"node\">\n<title>layer3_block1_branch_relu2</title>\n<g id=\"a_node43\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M3740,-96C3740,-96 3710,-96 3710,-96 3704,-96 3698,-90 3698,-84 3698,-84 3698,-72 3698,-72 3698,-66 3704,-60 3710,-60 3710,-60 3740,-60 3740,-60 3746,-60 3752,-66 3752,-72 3752,-72 3752,-84 3752,-84 3752,-90 3746,-96 3740,-96\"/>\n<text text-anchor=\"middle\" x=\"3725\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer3_block1_branch_bn2&#45;&gt;layer3_block1_branch_relu2 -->\n<g id=\"edge48\" class=\"edge\">\n<title>layer3_block1_branch_bn2&#45;&gt;layer3_block1_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3662.003,-78C3670.0277,-78 3678.9665,-78 3687.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3687.7051,-81.5001 3697.705,-78 3687.705,-74.5001 3687.7051,-81.5001\"/>\n</g>\n<!-- layer3_block1_branch_conv2 -->\n<g id=\"node44\" class=\"node\">\n<title>layer3_block1_branch_conv2</title>\n<g id=\"a_node44\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M3830,-96C3830,-96 3800,-96 3800,-96 3794,-96 3788,-90 3788,-84 3788,-84 3788,-72 3788,-72 3788,-66 3794,-60 3800,-60 3800,-60 3830,-60 3830,-60 3836,-60 3842,-66 3842,-72 3842,-72 3842,-84 3842,-84 3842,-90 3836,-96 3830,-96\"/>\n<text text-anchor=\"middle\" x=\"3815\" y=\"-74.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer3_block1_branch_relu2&#45;&gt;layer3_block1_branch_conv2 -->\n<g id=\"edge49\" class=\"edge\">\n<title>layer3_block1_branch_relu2&#45;&gt;layer3_block1_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3752.003,-78C3760.0277,-78 3768.9665,-78 3777.5309,-78\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3777.7051,-81.5001 3787.705,-78 3777.705,-74.5001 3777.7051,-81.5001\"/>\n</g>\n<!-- layer3_block1_branch_conv2&#45;&gt;layer3_block1_add -->\n<g id=\"edge51\" class=\"edge\">\n<title>layer3_block1_branch_conv2&#45;&gt;layer3_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3842.003,-84.0007C3850.1158,-85.8035 3859.1631,-87.814 3867.8131,-89.7362\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3867.1839,-93.1817 3877.705,-91.9345 3868.7024,-86.3484 3867.1839,-93.1817\"/>\n</g>\n<!-- layer4_block0_bn1 -->\n<g id=\"node46\" class=\"node\">\n<title>layer4_block0_bn1</title>\n<g id=\"a_node46\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 256, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M4014,-116C4014,-116 3984,-116 3984,-116 3978,-116 3972,-110 3972,-104 3972,-104 3972,-92 3972,-92 3972,-86 3978,-80 3984,-80 3984,-80 4014,-80 4014,-80 4020,-80 4026,-86 4026,-92 4026,-92 4026,-104 4026,-104 4026,-110 4020,-116 4014,-116\"/>\n<text text-anchor=\"middle\" x=\"3999\" y=\"-94.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- layer3_block1_add&#45;&gt;layer4_block0_bn1 -->\n<g id=\"edge52\" class=\"edge\">\n<title>layer3_block1_add&#45;&gt;layer4_block0_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M3932.1887,-98C3941.4446,-98 3951.9552,-98 3961.8551,-98\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"3961.8724,-101.5001 3971.8724,-98 3961.8724,-94.5001 3961.8724,-101.5001\"/>\n</g>\n<!-- layer4_block0_relu1 -->\n<g id=\"node47\" class=\"node\">\n<title>layer4_block0_relu1</title>\n<g id=\"a_node47\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M4104,-116C4104,-116 4074,-116 4074,-116 4068,-116 4062,-110 4062,-104 4062,-104 4062,-92 4062,-92 4062,-86 4068,-80 4074,-80 4074,-80 4104,-80 4104,-80 4110,-80 4116,-86 4116,-92 4116,-92 4116,-104 4116,-104 4116,-110 4110,-116 4104,-116\"/>\n<text text-anchor=\"middle\" x=\"4089\" y=\"-94.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_bn1&#45;&gt;layer4_block0_relu1 -->\n<g id=\"edge53\" class=\"edge\">\n<title>layer4_block0_bn1&#45;&gt;layer4_block0_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4026.003,-98C4034.0277,-98 4042.9665,-98 4051.5309,-98\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4051.7051,-101.5001 4061.705,-98 4051.705,-94.5001 4051.7051,-101.5001\"/>\n</g>\n<!-- layer4_block0_branch_conv1 -->\n<g id=\"node48\" class=\"node\">\n<title>layer4_block0_branch_conv1</title>\n<g id=\"a_node48\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (2, 2), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M4194,-68C4194,-68 4164,-68 4164,-68 4158,-68 4152,-62 4152,-56 4152,-56 4152,-44 4152,-44 4152,-38 4158,-32 4164,-32 4164,-32 4194,-32 4194,-32 4200,-32 4206,-38 4206,-44 4206,-44 4206,-56 4206,-56 4206,-62 4200,-68 4194,-68\"/>\n<text text-anchor=\"middle\" x=\"4179\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_relu1&#45;&gt;layer4_block0_branch_conv1 -->\n<g id=\"edge54\" class=\"edge\">\n<title>layer4_block0_relu1&#45;&gt;layer4_block0_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4116.003,-83.5984C4124.3804,-79.1305 4133.7541,-74.1311 4142.6579,-69.3824\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4144.5286,-72.3515 4151.705,-64.5573 4141.2344,-66.175 4144.5286,-72.3515\"/>\n</g>\n<!-- layer4_block0_conv3 -->\n<g id=\"node52\" class=\"node\">\n<title>layer4_block0_conv3</title>\n<g id=\"a_node52\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (1, 1), &#39;stride&#39;: (2, 2), &#39;padding&#39;: (0, 0), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M4464,-143C4464,-143 4434,-143 4434,-143 4428,-143 4422,-137 4422,-131 4422,-131 4422,-119 4422,-119 4422,-113 4428,-107 4434,-107 4434,-107 4464,-107 4464,-107 4470,-107 4476,-113 4476,-119 4476,-119 4476,-131 4476,-131 4476,-137 4470,-143 4464,-143\"/>\n<text text-anchor=\"middle\" x=\"4449\" y=\"-121.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv3</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_relu1&#45;&gt;layer4_block0_conv3 -->\n<g id=\"edge58\" class=\"edge\">\n<title>layer4_block0_relu1&#45;&gt;layer4_block0_conv3</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4116.1269,-100.5673C4125.0069,-101.3806 4134.9215,-102.26 4144,-103 4240.3883,-110.8569 4354.0339,-118.6716 4411.5727,-122.526\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4411.4357,-126.0246 4421.6467,-123.1987 4411.9022,-119.0401 4411.4357,-126.0246\"/>\n</g>\n<!-- layer4_block0_branch_bn2 -->\n<g id=\"node49\" class=\"node\">\n<title>layer4_block0_branch_bn2</title>\n<g id=\"a_node49\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 256, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M4284,-68C4284,-68 4254,-68 4254,-68 4248,-68 4242,-62 4242,-56 4242,-56 4242,-44 4242,-44 4242,-38 4248,-32 4254,-32 4254,-32 4284,-32 4284,-32 4290,-32 4296,-38 4296,-44 4296,-44 4296,-56 4296,-56 4296,-62 4290,-68 4284,-68\"/>\n<text text-anchor=\"middle\" x=\"4269\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_branch_conv1&#45;&gt;layer4_block0_branch_bn2 -->\n<g id=\"edge55\" class=\"edge\">\n<title>layer4_block0_branch_conv1&#45;&gt;layer4_block0_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4206.003,-50C4214.0277,-50 4222.9665,-50 4231.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4231.7051,-53.5001 4241.705,-50 4231.705,-46.5001 4231.7051,-53.5001\"/>\n</g>\n<!-- layer4_block0_branch_relu2 -->\n<g id=\"node50\" class=\"node\">\n<title>layer4_block0_branch_relu2</title>\n<g id=\"a_node50\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M4374,-68C4374,-68 4344,-68 4344,-68 4338,-68 4332,-62 4332,-56 4332,-56 4332,-44 4332,-44 4332,-38 4338,-32 4344,-32 4344,-32 4374,-32 4374,-32 4380,-32 4386,-38 4386,-44 4386,-44 4386,-56 4386,-56 4386,-62 4380,-68 4374,-68\"/>\n<text text-anchor=\"middle\" x=\"4359\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_branch_bn2&#45;&gt;layer4_block0_branch_relu2 -->\n<g id=\"edge56\" class=\"edge\">\n<title>layer4_block0_branch_bn2&#45;&gt;layer4_block0_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4296.003,-50C4304.0277,-50 4312.9665,-50 4321.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4321.7051,-53.5001 4331.705,-50 4321.705,-46.5001 4321.7051,-53.5001\"/>\n</g>\n<!-- layer4_block0_branch_conv2 -->\n<g id=\"node51\" class=\"node\">\n<title>layer4_block0_branch_conv2</title>\n<g id=\"a_node51\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M4464,-68C4464,-68 4434,-68 4434,-68 4428,-68 4422,-62 4422,-56 4422,-56 4422,-44 4422,-44 4422,-38 4428,-32 4434,-32 4434,-32 4464,-32 4464,-32 4470,-32 4476,-38 4476,-44 4476,-44 4476,-56 4476,-56 4476,-62 4470,-68 4464,-68\"/>\n<text text-anchor=\"middle\" x=\"4449\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_branch_relu2&#45;&gt;layer4_block0_branch_conv2 -->\n<g id=\"edge57\" class=\"edge\">\n<title>layer4_block0_branch_relu2&#45;&gt;layer4_block0_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4386.003,-50C4394.0277,-50 4402.9665,-50 4411.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4411.7051,-53.5001 4421.705,-50 4411.705,-46.5001 4411.7051,-53.5001\"/>\n</g>\n<!-- layer4_block0_add -->\n<g id=\"node53\" class=\"node\">\n<title>layer4_block0_add</title>\n<g id=\"a_node53\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M4554,-68C4554,-68 4524,-68 4524,-68 4518,-68 4512,-62 4512,-56 4512,-56 4512,-44 4512,-44 4512,-38 4518,-32 4524,-32 4524,-32 4554,-32 4554,-32 4560,-32 4566,-38 4566,-44 4566,-44 4566,-56 4566,-56 4566,-62 4560,-68 4554,-68\"/>\n<text text-anchor=\"middle\" x=\"4539\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_branch_conv2&#45;&gt;layer4_block0_add -->\n<g id=\"edge60\" class=\"edge\">\n<title>layer4_block0_branch_conv2&#45;&gt;layer4_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4476.003,-50C4484.0277,-50 4492.9665,-50 4501.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4501.7051,-53.5001 4511.705,-50 4501.705,-46.5001 4501.7051,-53.5001\"/>\n</g>\n<!-- layer4_block0_conv3&#45;&gt;layer4_block0_add -->\n<g id=\"edge59\" class=\"edge\">\n<title>layer4_block0_conv3&#45;&gt;layer4_block0_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4476.1371,-108.7304C4478.8471,-106.8733 4481.5131,-104.9462 4484,-103 4494.7122,-94.617 4505.6703,-84.4425 4514.9574,-75.2582\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4517.4462,-77.7192 4522.0106,-68.158 4512.48,-72.7859 4517.4462,-77.7192\"/>\n</g>\n<!-- layer4_block1_bn1 -->\n<g id=\"node54\" class=\"node\">\n<title>layer4_block1_bn1</title>\n<g id=\"a_node54\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 256, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M4644,-68C4644,-68 4614,-68 4614,-68 4608,-68 4602,-62 4602,-56 4602,-56 4602,-44 4602,-44 4602,-38 4608,-32 4614,-32 4614,-32 4644,-32 4644,-32 4650,-32 4656,-38 4656,-44 4656,-44 4656,-56 4656,-56 4656,-62 4650,-68 4644,-68\"/>\n<text text-anchor=\"middle\" x=\"4629\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn1</text>\n</a>\n</g>\n</g>\n<!-- layer4_block0_add&#45;&gt;layer4_block1_bn1 -->\n<g id=\"edge61\" class=\"edge\">\n<title>layer4_block0_add&#45;&gt;layer4_block1_bn1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4566.003,-50C4574.0277,-50 4582.9665,-50 4591.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4591.7051,-53.5001 4601.705,-50 4591.705,-46.5001 4591.7051,-53.5001\"/>\n</g>\n<!-- layer4_block1_relu1 -->\n<g id=\"node55\" class=\"node\">\n<title>layer4_block1_relu1</title>\n<g id=\"a_node55\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M4734,-68C4734,-68 4704,-68 4704,-68 4698,-68 4692,-62 4692,-56 4692,-56 4692,-44 4692,-44 4692,-38 4698,-32 4704,-32 4704,-32 4734,-32 4734,-32 4740,-32 4746,-38 4746,-44 4746,-44 4746,-56 4746,-56 4746,-62 4740,-68 4734,-68\"/>\n<text text-anchor=\"middle\" x=\"4719\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu1</text>\n</a>\n</g>\n</g>\n<!-- layer4_block1_bn1&#45;&gt;layer4_block1_relu1 -->\n<g id=\"edge62\" class=\"edge\">\n<title>layer4_block1_bn1&#45;&gt;layer4_block1_relu1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4656.003,-50C4664.0277,-50 4672.9665,-50 4681.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4681.7051,-53.5001 4691.705,-50 4681.705,-46.5001 4681.7051,-53.5001\"/>\n</g>\n<!-- layer4_block1_branch_conv1 -->\n<g id=\"node56\" class=\"node\">\n<title>layer4_block1_branch_conv1</title>\n<g id=\"a_node56\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M4824,-68C4824,-68 4794,-68 4794,-68 4788,-68 4782,-62 4782,-56 4782,-56 4782,-44 4782,-44 4782,-38 4788,-32 4794,-32 4794,-32 4824,-32 4824,-32 4830,-32 4836,-38 4836,-44 4836,-44 4836,-56 4836,-56 4836,-62 4830,-68 4824,-68\"/>\n<text text-anchor=\"middle\" x=\"4809\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv1</text>\n</a>\n</g>\n</g>\n<!-- layer4_block1_relu1&#45;&gt;layer4_block1_branch_conv1 -->\n<g id=\"edge63\" class=\"edge\">\n<title>layer4_block1_relu1&#45;&gt;layer4_block1_branch_conv1</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4746.003,-50C4754.0277,-50 4762.9665,-50 4771.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4771.7051,-53.5001 4781.705,-50 4771.705,-46.5001 4771.7051,-53.5001\"/>\n</g>\n<!-- layer4_block1_add -->\n<g id=\"node60\" class=\"node\">\n<title>layer4_block1_add</title>\n<g id=\"a_node60\"><a xlink:title=\"Add {}\">\n<path fill=\"#8dd3c7\" stroke=\"#000000\" d=\"M5184,-88C5184,-88 5154,-88 5154,-88 5148,-88 5142,-82 5142,-76 5142,-76 5142,-64 5142,-64 5142,-58 5148,-52 5154,-52 5154,-52 5184,-52 5184,-52 5190,-52 5196,-58 5196,-64 5196,-64 5196,-76 5196,-76 5196,-82 5190,-88 5184,-88\"/>\n<text text-anchor=\"middle\" x=\"5169\" y=\"-66.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">add</text>\n</a>\n</g>\n</g>\n<!-- layer4_block1_relu1&#45;&gt;layer4_block1_add -->\n<g id=\"edge67\" class=\"edge\">\n<title>layer4_block1_relu1&#45;&gt;layer4_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4731.9144,-68.0331C4741.8654,-80.3273 4756.8037,-95.6599 4774,-103 4825.1364,-124.8272 4843.4,-108 4899,-108 4899,-108 4899,-108 4989,-108 5044.6,-108 5060.7248,-118.9095 5114,-103 5121.4089,-100.7875 5128.845,-97.3474 5135.7486,-93.5084\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5137.996,-96.2423 5144.7797,-88.104 5134.4015,-90.2356 5137.996,-96.2423\"/>\n</g>\n<!-- layer4_block1_branch_bn2 -->\n<g id=\"node57\" class=\"node\">\n<title>layer4_block1_branch_bn2</title>\n<g id=\"a_node57\"><a xlink:title=\"BatchNorm2d {&#39;num_features&#39;: 256, &#39;eps&#39;: 1e&#45;05, &#39;momentum&#39;: 0.1, &#39;affine&#39;: True, &#39;track_running_stats&#39;: True}\">\n<path fill=\"#ffffb3\" stroke=\"#000000\" d=\"M4914,-68C4914,-68 4884,-68 4884,-68 4878,-68 4872,-62 4872,-56 4872,-56 4872,-44 4872,-44 4872,-38 4878,-32 4884,-32 4884,-32 4914,-32 4914,-32 4920,-32 4926,-38 4926,-44 4926,-44 4926,-56 4926,-56 4926,-62 4920,-68 4914,-68\"/>\n<text text-anchor=\"middle\" x=\"4899\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">bn2</text>\n</a>\n</g>\n</g>\n<!-- layer4_block1_branch_conv1&#45;&gt;layer4_block1_branch_bn2 -->\n<g id=\"edge64\" class=\"edge\">\n<title>layer4_block1_branch_conv1&#45;&gt;layer4_block1_branch_bn2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4836.003,-50C4844.0277,-50 4852.9665,-50 4861.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4861.7051,-53.5001 4871.705,-50 4861.705,-46.5001 4861.7051,-53.5001\"/>\n</g>\n<!-- layer4_block1_branch_relu2 -->\n<g id=\"node58\" class=\"node\">\n<title>layer4_block1_branch_relu2</title>\n<g id=\"a_node58\"><a xlink:title=\"ReLU {&#39;inplace&#39;: True}\">\n<path fill=\"#fb8072\" stroke=\"#000000\" d=\"M5004,-68C5004,-68 4974,-68 4974,-68 4968,-68 4962,-62 4962,-56 4962,-56 4962,-44 4962,-44 4962,-38 4968,-32 4974,-32 4974,-32 5004,-32 5004,-32 5010,-32 5016,-38 5016,-44 5016,-44 5016,-56 5016,-56 5016,-62 5010,-68 5004,-68\"/>\n<text text-anchor=\"middle\" x=\"4989\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">relu2</text>\n</a>\n</g>\n</g>\n<!-- layer4_block1_branch_bn2&#45;&gt;layer4_block1_branch_relu2 -->\n<g id=\"edge65\" class=\"edge\">\n<title>layer4_block1_branch_bn2&#45;&gt;layer4_block1_branch_relu2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M4926.003,-50C4934.0277,-50 4942.9665,-50 4951.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"4951.7051,-53.5001 4961.705,-50 4951.705,-46.5001 4951.7051,-53.5001\"/>\n</g>\n<!-- layer4_block1_branch_conv2 -->\n<g id=\"node59\" class=\"node\">\n<title>layer4_block1_branch_conv2</title>\n<g id=\"a_node59\"><a xlink:title=\"Conv2d {&#39;in_channels&#39;: 256, &#39;out_channels&#39;: 256, &#39;kernel_size&#39;: (3, 3), &#39;stride&#39;: (1, 1), &#39;padding&#39;: (1, 1), &#39;dilation&#39;: (1, 1), &#39;groups&#39;: 1, &#39;bias&#39;: None, &#39;padding_mode&#39;: &#39;zeros&#39;}\">\n<path fill=\"#bebada\" stroke=\"#000000\" d=\"M5094,-68C5094,-68 5064,-68 5064,-68 5058,-68 5052,-62 5052,-56 5052,-56 5052,-44 5052,-44 5052,-38 5058,-32 5064,-32 5064,-32 5094,-32 5094,-32 5100,-32 5106,-38 5106,-44 5106,-44 5106,-56 5106,-56 5106,-62 5100,-68 5094,-68\"/>\n<text text-anchor=\"middle\" x=\"5079\" y=\"-46.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">conv2</text>\n</a>\n</g>\n</g>\n<!-- layer4_block1_branch_relu2&#45;&gt;layer4_block1_branch_conv2 -->\n<g id=\"edge66\" class=\"edge\">\n<title>layer4_block1_branch_relu2&#45;&gt;layer4_block1_branch_conv2</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5016.003,-50C5024.0277,-50 5032.9665,-50 5041.5309,-50\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5041.7051,-53.5001 5051.705,-50 5041.705,-46.5001 5041.7051,-53.5001\"/>\n</g>\n<!-- layer4_block1_branch_conv2&#45;&gt;layer4_block1_add -->\n<g id=\"edge68\" class=\"edge\">\n<title>layer4_block1_branch_conv2&#45;&gt;layer4_block1_add</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5106.003,-56.0007C5114.1158,-57.8035 5123.1631,-59.814 5131.8131,-61.7362\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5131.1839,-65.1817 5141.705,-63.9345 5132.7024,-58.3484 5131.1839,-65.1817\"/>\n</g>\n<!-- final_in -->\n<g id=\"node61\" class=\"node\">\n<title>final_in</title>\n<g id=\"a_node61\"><a xlink:title=\"Identity {}\">\n<path fill=\"#80b1d3\" stroke=\"#000000\" d=\"M5274,-88C5274,-88 5244,-88 5244,-88 5238,-88 5232,-82 5232,-76 5232,-76 5232,-64 5232,-64 5232,-58 5238,-52 5244,-52 5244,-52 5274,-52 5274,-52 5280,-52 5286,-58 5286,-64 5286,-64 5286,-76 5286,-76 5286,-82 5280,-88 5274,-88\"/>\n<text text-anchor=\"middle\" x=\"5259\" y=\"-66.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">in</text>\n</a>\n</g>\n</g>\n<!-- layer4_block1_add&#45;&gt;final_in -->\n<g id=\"edge69\" class=\"edge\">\n<title>layer4_block1_add&#45;&gt;final_in</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5196.003,-70C5204.0277,-70 5212.9665,-70 5221.5309,-70\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5221.7051,-73.5001 5231.705,-70 5221.705,-66.5001 5221.7051,-73.5001\"/>\n</g>\n<!-- final_maxpool -->\n<g id=\"node62\" class=\"node\">\n<title>final_maxpool</title>\n<g id=\"a_node62\"><a xlink:title=\"MaxPool2d {&#39;kernel_size&#39;: 4, &#39;stride&#39;: 4, &#39;padding&#39;: 0, &#39;dilation&#39;: 1, &#39;return_indices&#39;: False, &#39;ceil_mode&#39;: False}\">\n<path fill=\"#fdb462\" stroke=\"#000000\" d=\"M5378,-80C5378,-80 5334,-80 5334,-80 5328,-80 5322,-74 5322,-68 5322,-68 5322,-56 5322,-56 5322,-50 5328,-44 5334,-44 5334,-44 5378,-44 5378,-44 5384,-44 5390,-50 5390,-56 5390,-56 5390,-68 5390,-68 5390,-74 5384,-80 5378,-80\"/>\n<text text-anchor=\"middle\" x=\"5356\" y=\"-58.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">maxpool</text>\n</a>\n</g>\n</g>\n<!-- final_in&#45;&gt;final_maxpool -->\n<g id=\"edge70\" class=\"edge\">\n<title>final_in&#45;&gt;final_maxpool</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5286.0199,-67.7716C5293.9976,-67.1136 5302.947,-66.3755 5311.7116,-65.6527\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5312.1677,-69.127 5321.8462,-64.8168 5311.5923,-62.1507 5312.1677,-69.127\"/>\n</g>\n<!-- final_avgpool -->\n<g id=\"node63\" class=\"node\">\n<title>final_avgpool</title>\n<g id=\"a_node63\"><a xlink:title=\"AvgPool2d {&#39;kernel_size&#39;: 4, &#39;stride&#39;: 4, &#39;padding&#39;: 0, &#39;ceil_mode&#39;: False, &#39;count_include_pad&#39;: True}\">\n<path fill=\"#b3de69\" stroke=\"#000000\" d=\"M5376,-134C5376,-134 5336,-134 5336,-134 5330,-134 5324,-128 5324,-122 5324,-122 5324,-110 5324,-110 5324,-104 5330,-98 5336,-98 5336,-98 5376,-98 5376,-98 5382,-98 5388,-104 5388,-110 5388,-110 5388,-122 5388,-122 5388,-128 5382,-134 5376,-134\"/>\n<text text-anchor=\"middle\" x=\"5356\" y=\"-112.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">avgpool</text>\n</a>\n</g>\n</g>\n<!-- final_in&#45;&gt;final_avgpool -->\n<g id=\"edge71\" class=\"edge\">\n<title>final_in&#45;&gt;final_avgpool</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5286.0199,-82.8136C5294.941,-87.0442 5305.0771,-91.851 5314.8111,-96.4671\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5313.4324,-99.6869 5323.9676,-100.8094 5316.4319,-93.3621 5313.4324,-99.6869\"/>\n</g>\n<!-- final_concat -->\n<g id=\"node64\" class=\"node\">\n<title>final_concat</title>\n<g id=\"a_node64\"><a xlink:title=\"Concat {}\">\n<path fill=\"#fccde5\" stroke=\"#000000\" d=\"M5468,-107C5468,-107 5438,-107 5438,-107 5432,-107 5426,-101 5426,-95 5426,-95 5426,-83 5426,-83 5426,-77 5432,-71 5438,-71 5438,-71 5468,-71 5468,-71 5474,-71 5480,-77 5480,-83 5480,-83 5480,-95 5480,-95 5480,-101 5474,-107 5468,-107\"/>\n<text text-anchor=\"middle\" x=\"5453\" y=\"-85.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">concat</text>\n</a>\n</g>\n</g>\n<!-- final_maxpool&#45;&gt;final_concat -->\n<g id=\"edge72\" class=\"edge\">\n<title>final_maxpool&#45;&gt;final_concat</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5390.1986,-71.5192C5398.5882,-73.8545 5407.6049,-76.3643 5416.1147,-78.733\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5415.2314,-82.1201 5425.8037,-81.4299 5417.1085,-75.3764 5415.2314,-82.1201\"/>\n</g>\n<!-- final_avgpool&#45;&gt;final_concat -->\n<g id=\"edge73\" class=\"edge\">\n<title>final_avgpool&#45;&gt;final_concat</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5388.0303,-107.0844C5397.0269,-104.5801 5406.8815,-101.8371 5416.1355,-99.2613\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5417.1771,-102.6045 5425.8723,-96.551 5415.3,-95.8608 5417.1771,-102.6045\"/>\n</g>\n<!-- final_flatten -->\n<g id=\"node65\" class=\"node\">\n<title>final_flatten</title>\n<g id=\"a_node65\"><a xlink:title=\"Flatten {}\">\n<path fill=\"#bc80bd\" stroke=\"#000000\" d=\"M5558,-107C5558,-107 5528,-107 5528,-107 5522,-107 5516,-101 5516,-95 5516,-95 5516,-83 5516,-83 5516,-77 5522,-71 5528,-71 5528,-71 5558,-71 5558,-71 5564,-71 5570,-77 5570,-83 5570,-83 5570,-95 5570,-95 5570,-101 5564,-107 5558,-107\"/>\n<text text-anchor=\"middle\" x=\"5543\" y=\"-85.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">flatten</text>\n</a>\n</g>\n</g>\n<!-- final_concat&#45;&gt;final_flatten -->\n<g id=\"edge74\" class=\"edge\">\n<title>final_concat&#45;&gt;final_flatten</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5480.003,-89C5488.0277,-89 5496.9665,-89 5505.5309,-89\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5505.7051,-92.5001 5515.705,-89 5505.705,-85.5001 5505.7051,-92.5001\"/>\n</g>\n<!-- final_linear -->\n<g id=\"node66\" class=\"node\">\n<title>final_linear</title>\n<g id=\"a_node66\"><a xlink:title=\"Linear {&#39;in_features&#39;: 512, &#39;out_features&#39;: 10, &#39;bias&#39;: Parameter containing:&#10;tensor([ 0.0107, &#160;0.0422, &#160;0.0051, &#160;0.0206, &#45;0.0137, &#160;0.0282, &#160;0.0103, &#160;0.0366,&#10; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#45;0.0066, &#45;0.0154], requires_grad=True)}\">\n<path fill=\"#ccebc5\" stroke=\"#000000\" d=\"M5648,-107C5648,-107 5618,-107 5618,-107 5612,-107 5606,-101 5606,-95 5606,-95 5606,-83 5606,-83 5606,-77 5612,-71 5618,-71 5618,-71 5648,-71 5648,-71 5654,-71 5660,-77 5660,-83 5660,-83 5660,-95 5660,-95 5660,-101 5654,-107 5648,-107\"/>\n<text text-anchor=\"middle\" x=\"5633\" y=\"-85.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">linear</text>\n</a>\n</g>\n</g>\n<!-- final_flatten&#45;&gt;final_linear -->\n<g id=\"edge75\" class=\"edge\">\n<title>final_flatten&#45;&gt;final_linear</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5570.003,-89C5578.0277,-89 5586.9665,-89 5595.5309,-89\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5595.7051,-92.5001 5605.705,-89 5595.705,-85.5001 5595.7051,-92.5001\"/>\n</g>\n<!-- classifier -->\n<g id=\"node67\" class=\"node\">\n<title>classifier</title>\n<g id=\"a_node67\"><a xlink:title=\"Identity {}\">\n<path fill=\"#80b1d3\" stroke=\"#000000\" d=\"M5749,-107C5749,-107 5708,-107 5708,-107 5702,-107 5696,-101 5696,-95 5696,-95 5696,-83 5696,-83 5696,-77 5702,-71 5708,-71 5708,-71 5749,-71 5749,-71 5755,-71 5761,-77 5761,-83 5761,-83 5761,-95 5761,-95 5761,-101 5755,-107 5749,-107\"/>\n<text text-anchor=\"middle\" x=\"5728.5\" y=\"-85.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">classifier</text>\n</a>\n</g>\n</g>\n<!-- final_linear&#45;&gt;classifier -->\n<g id=\"edge76\" class=\"edge\">\n<title>final_linear&#45;&gt;classifier</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M5660.111,-89C5668.1173,-89 5677.0822,-89 5685.8182,-89\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"5685.8973,-92.5001 5695.8973,-89 5685.8972,-85.5001 5685.8973,-92.5001\"/>\n</g>\n<!-- input -->\n<g id=\"node68\" class=\"node\">\n<title>input</title>\n<path fill=\"#ffffff\" stroke=\"#000000\" d=\"M42,-105C42,-105 12,-105 12,-105 6,-105 0,-99 0,-93 0,-93 0,-81 0,-81 0,-75 6,-69 12,-69 12,-69 42,-69 42,-69 48,-69 54,-75 54,-81 54,-81 54,-93 54,-93 54,-99 48,-105 42,-105\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-83.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">input</text>\n</g>\n<!-- input&#45;&gt;prep_conv -->\n<g id=\"edge1\" class=\"edge\">\n<title>input&#45;&gt;prep_conv</title>\n<path fill=\"none\" stroke=\"#000000\" d=\"M54.003,-87C62.0277,-87 70.9665,-87 79.5309,-87\"/>\n<polygon fill=\"#000000\" stroke=\"#000000\" points=\"79.7051,-90.5001 89.705,-87 79.705,-83.5001 79.7051,-90.5001\"/>\n</g>\n</g>\n</svg>\n"
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "z_GFFhZYQy4x",
"colab_type": "code",
"colab": {}
},
"source": [
"train_set_x = Transform(train_set, [Crop(32, 32), FlipLR()])\n",
"opt = SGD(trainable_params(model), momentum=0.9, weight_decay=5e-4*batch_size, nesterov=True)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "69vlFZWpRpOT",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 629
},
"outputId": "c509a192-a572-424e-e935-8ae24e78edc9"
},
"source": [
"summary=train(model, lr_schedule, opt, train_set_x, test_set, \n",
" batch_size=batch_size, num_workers=1)"
],
"execution_count": 22,
"outputs": [
{
"output_type": "stream",
"text": [
" epoch lr train time train loss train acc test time test loss test acc total time\n",
" 1 0.0067 69.9930 1.6669 0.3803 4.0853 1.3189 0.5241 74.0783\n",
" 2 0.0133 70.6333 1.0037 0.6422 4.0969 0.8593 0.7000 148.8085\n",
" 3 0.0200 70.7000 0.7628 0.7346 4.0890 1.2214 0.6107 223.5975\n",
" 4 0.0267 70.6757 0.6382 0.7789 4.0930 0.6554 0.7744 298.3662\n",
" 5 0.0333 70.6769 0.5598 0.8049 4.0847 0.6127 0.7907 373.1278\n",
" 6 0.0400 70.6171 0.5128 0.8222 4.0778 0.5017 0.8262 447.8227\n",
" 7 0.0467 70.5683 0.4688 0.8392 4.0815 0.5062 0.8255 522.4725\n",
" 8 0.0533 70.6264 0.4397 0.8489 4.0834 0.5103 0.8260 597.1823\n",
" 9 0.0600 70.6205 0.4151 0.8565 4.0881 0.4462 0.8499 671.8909\n",
" 10 0.0667 70.5929 0.4008 0.8624 4.0826 0.6079 0.8023 746.5664\n",
" 11 0.0733 70.6501 0.3878 0.8657 4.0806 0.6968 0.7826 821.2971\n",
" 12 0.0800 70.6610 0.3886 0.8671 4.0904 0.4868 0.8365 896.0485\n",
" 13 0.0867 70.6660 0.3900 0.8652 4.0853 0.6368 0.8000 970.7999\n",
" 14 0.0933 70.5665 0.3874 0.8665 4.0837 0.4599 0.8478 1045.4500\n",
" 15 0.1000 70.6026 0.3908 0.8660 4.0884 0.5594 0.8088 1120.1410\n",
" 16 0.0937 70.6209 0.3808 0.8693 4.0804 0.5009 0.8325 1194.8423\n",
" 17 0.0873 70.5951 0.3542 0.8778 4.0745 0.3985 0.8687 1269.5119\n",
" 18 0.0810 70.5654 0.3384 0.8826 4.0743 0.5677 0.8116 1344.1516\n",
" 19 0.0747 70.6022 0.3187 0.8896 4.0898 0.3896 0.8641 1418.8437\n",
" 20 0.0683 70.6093 0.2992 0.8975 4.0860 0.4497 0.8540 1493.5390\n",
" 21 0.0620 70.9694 0.2784 0.9051 4.1360 0.3841 0.8743 1568.6444\n",
" 22 0.0557 71.1082 0.2578 0.9113 4.0974 0.3875 0.8746 1643.8500\n",
" 23 0.0493 71.0915 0.2392 0.9176 4.1337 0.3785 0.8694 1719.0752\n",
" 24 0.0430 71.2790 0.2210 0.9244 4.1351 0.3260 0.8918 1794.4893\n",
" 25 0.0367 71.2745 0.1957 0.9314 4.1373 0.3002 0.8980 1869.9011\n",
" 26 0.0303 71.3423 0.1706 0.9406 4.1298 0.2942 0.9030 1945.3732\n",
" 27 0.0240 71.3367 0.1503 0.9474 4.1326 0.2554 0.9156 2020.8425\n",
" 28 0.0177 71.2604 0.1166 0.9590 4.1323 0.2513 0.9178 2096.2353\n",
" 29 0.0113 71.2467 0.0861 0.9696 4.1341 0.2401 0.9256 2171.6160\n",
" 30 0.0050 71.3229 0.0614 0.9794 4.1413 0.2067 0.9357 2247.0802\n",
" 31 0.0040 71.3311 0.0439 0.9859 4.1338 0.2030 0.9379 2322.5451\n",
" 32 0.0030 71.3209 0.0362 0.9891 4.1370 0.2016 0.9377 2398.0029\n",
" 33 0.0020 71.3418 0.0326 0.9902 4.1295 0.1999 0.9379 2473.4743\n",
" 34 0.0010 71.3481 0.0295 0.9912 4.1293 0.1990 0.9388 2548.9517\n",
" 35 0.0000 71.3413 0.0294 0.9919 4.1275 0.2005 0.9398 2624.4205\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "V7kAFvwCT7hi",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 0,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment