Modify Model
Browse files
.gitignore
CHANGED
@@ -1,2 +1,3 @@
|
|
1 |
*.pth
|
2 |
-
data/*
|
|
|
|
1 |
*.pth
|
2 |
+
data/*
|
3 |
+
__pycache__/
|
notebooks/onnx-testing.ipynb
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
},
|
10 |
{
|
11 |
"cell_type": "code",
|
12 |
-
"execution_count":
|
13 |
"metadata": {},
|
14 |
"outputs": [],
|
15 |
"source": [
|
@@ -29,7 +29,7 @@
|
|
29 |
},
|
30 |
{
|
31 |
"cell_type": "code",
|
32 |
-
"execution_count":
|
33 |
"metadata": {},
|
34 |
"outputs": [],
|
35 |
"source": [
|
@@ -48,16 +48,16 @@
|
|
48 |
},
|
49 |
{
|
50 |
"cell_type": "code",
|
51 |
-
"execution_count":
|
52 |
"metadata": {},
|
53 |
"outputs": [
|
54 |
{
|
55 |
"data": {
|
56 |
"text/plain": [
|
57 |
-
"<matplotlib.image.AxesImage at
|
58 |
]
|
59 |
},
|
60 |
-
"execution_count":
|
61 |
"metadata": {},
|
62 |
"output_type": "execute_result"
|
63 |
},
|
@@ -78,7 +78,7 @@
|
|
78 |
},
|
79 |
{
|
80 |
"cell_type": "code",
|
81 |
-
"execution_count":
|
82 |
"metadata": {},
|
83 |
"outputs": [
|
84 |
{
|
@@ -91,10 +91,10 @@
|
|
91 |
{
|
92 |
"data": {
|
93 |
"text/plain": [
|
94 |
-
"<matplotlib.image.AxesImage at
|
95 |
]
|
96 |
},
|
97 |
-
"execution_count":
|
98 |
"metadata": {},
|
99 |
"output_type": "execute_result"
|
100 |
},
|
@@ -133,7 +133,7 @@
|
|
133 |
},
|
134 |
{
|
135 |
"cell_type": "code",
|
136 |
-
"execution_count":
|
137 |
"metadata": {},
|
138 |
"outputs": [
|
139 |
{
|
|
|
9 |
},
|
10 |
{
|
11 |
"cell_type": "code",
|
12 |
+
"execution_count": 1,
|
13 |
"metadata": {},
|
14 |
"outputs": [],
|
15 |
"source": [
|
|
|
29 |
},
|
30 |
{
|
31 |
"cell_type": "code",
|
32 |
+
"execution_count": 6,
|
33 |
"metadata": {},
|
34 |
"outputs": [],
|
35 |
"source": [
|
|
|
48 |
},
|
49 |
{
|
50 |
"cell_type": "code",
|
51 |
+
"execution_count": 7,
|
52 |
"metadata": {},
|
53 |
"outputs": [
|
54 |
{
|
55 |
"data": {
|
56 |
"text/plain": [
|
57 |
+
"<matplotlib.image.AxesImage at 0x7f09fcc27e20>"
|
58 |
]
|
59 |
},
|
60 |
+
"execution_count": 7,
|
61 |
"metadata": {},
|
62 |
"output_type": "execute_result"
|
63 |
},
|
|
|
78 |
},
|
79 |
{
|
80 |
"cell_type": "code",
|
81 |
+
"execution_count": 8,
|
82 |
"metadata": {},
|
83 |
"outputs": [
|
84 |
{
|
|
|
91 |
{
|
92 |
"data": {
|
93 |
"text/plain": [
|
94 |
+
"<matplotlib.image.AxesImage at 0x7f09fccb62c0>"
|
95 |
]
|
96 |
},
|
97 |
+
"execution_count": 8,
|
98 |
"metadata": {},
|
99 |
"output_type": "execute_result"
|
100 |
},
|
|
|
133 |
},
|
134 |
{
|
135 |
"cell_type": "code",
|
136 |
+
"execution_count": 9,
|
137 |
"metadata": {},
|
138 |
"outputs": [
|
139 |
{
|
notebooks/{pytorch-birds-resnet34.ipynb → pytorch-resnet34-birds-classification.ipynb}
RENAMED
The diff for this file is too large to render.
See raw diff
|
|
notebooks/torch-to-onnx.ipynb
CHANGED
@@ -13,18 +13,19 @@
|
|
13 |
"metadata": {},
|
14 |
"outputs": [
|
15 |
{
|
16 |
-
"name": "
|
17 |
"output_type": "stream",
|
18 |
"text": [
|
19 |
-
"
|
20 |
-
" from .autonotebook import tqdm as notebook_tqdm\n"
|
21 |
]
|
22 |
}
|
23 |
],
|
24 |
"source": [
|
25 |
"import torch\n",
|
26 |
"from torch import nn\n",
|
27 |
-
"from torch.nn import functional as F"
|
|
|
|
|
28 |
]
|
29 |
},
|
30 |
{
|
@@ -40,84 +41,76 @@
|
|
40 |
"metadata": {},
|
41 |
"outputs": [],
|
42 |
"source": [
|
43 |
-
"class
|
44 |
-
" def __init__(self, in_channels, out_channels):\n",
|
45 |
-
" super().__init__()\n",
|
46 |
-
" self.conv = nn.Sequential(\n",
|
47 |
-
" nn.Conv2d(in_channels, out_channels, 3, padding=1),\n",
|
48 |
-
" nn.BatchNorm2d(out_channels),\n",
|
49 |
-
" nn.ReLU(inplace=True),\n",
|
50 |
-
" nn.Conv2d(out_channels, out_channels, 3, padding=1),\n",
|
51 |
-
" nn.BatchNorm2d(out_channels),\n",
|
52 |
-
" nn.ReLU(inplace=True)\n",
|
53 |
-
" )\n",
|
54 |
-
" def forward(self, x):\n",
|
55 |
-
" return self.conv(x)\n",
|
56 |
"\n",
|
57 |
-
"
|
58 |
-
" def __init__(self, in_channels, out_channels):\n",
|
59 |
" super().__init__()\n",
|
60 |
-
" self.
|
61 |
-
"
|
62 |
-
"
|
63 |
-
" )\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
" def forward(self, x):\n",
|
65 |
-
"
|
|
|
|
|
66 |
"\n",
|
67 |
-
"
|
68 |
-
"
|
69 |
-
" super().__init__()\n",
|
70 |
-
" if bilinear:\n",
|
71 |
-
" self.up = nn.Sequential(nn.Upsample(scale_factor=2, mode='bilinear', align_corners=True),\n",
|
72 |
-
" nn.Conv2d(in_channels, in_channels // 2, 1))\n",
|
73 |
-
" else:\n",
|
74 |
-
" self.up = nn.ConvTranspose2d(in_channels, in_channels // 2, 2, stride=2)\n",
|
75 |
-
" \n",
|
76 |
-
" self.conv = DoubleConv(in_channels, out_channels)\n",
|
77 |
"\n",
|
78 |
-
"
|
79 |
-
" x1 = self.up(x1)\n",
|
80 |
-
" diffY = x2.size()[2] - x1.size()[2]\n",
|
81 |
-
" diffX = x2.size()[3] - x1.size()[3]\n",
|
82 |
-
" x1 = F.pad(x1, [diffX // 2, diffX - diffX // 2, diffY // 2, diffY - diffY // 2])\n",
|
83 |
-
" x = torch.cat([x2, x1], dim=1)\n",
|
84 |
-
" return self.conv(x)\n",
|
85 |
"\n",
|
86 |
-
"
|
87 |
-
" def __init__(self, in_channels, out_channels):\n",
|
88 |
-
" super().__init__()\n",
|
89 |
-
" self.conv = nn.Conv2d(in_channels, out_channels, 1)\n",
|
90 |
-
" self.sigmoid = nn.Sigmoid()\n",
|
91 |
"\n",
|
92 |
-
"
|
93 |
-
" return self.sigmoid(self.conv(x))\n",
|
94 |
"\n",
|
95 |
-
"class
|
96 |
-
" def __init__(self,
|
97 |
" super().__init__()\n",
|
98 |
-
"
|
99 |
-
" self.
|
100 |
-
"
|
101 |
-
"
|
102 |
-
" self.
|
103 |
-
" self.
|
104 |
-
" self.
|
105 |
-
" self.
|
106 |
-
"
|
107 |
-
" self.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
"\n",
|
109 |
" def forward(self, x):\n",
|
110 |
-
"
|
111 |
-
"
|
112 |
-
"
|
113 |
-
"
|
114 |
-
"
|
115 |
-
"
|
116 |
-
"
|
117 |
-
"
|
118 |
-
"
|
119 |
-
"
|
120 |
-
"
|
|
|
|
|
121 |
]
|
122 |
},
|
123 |
{
|
@@ -131,31 +124,12 @@
|
|
131 |
"cell_type": "code",
|
132 |
"execution_count": 3,
|
133 |
"metadata": {},
|
134 |
-
"outputs": [
|
135 |
-
{
|
136 |
-
"ename": "RuntimeError",
|
137 |
-
"evalue": "Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.",
|
138 |
-
"output_type": "error",
|
139 |
-
"traceback": [
|
140 |
-
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
141 |
-
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
|
142 |
-
"Cell \u001b[0;32mIn [3], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m model \u001b[39m=\u001b[39m UNet(n_channels\u001b[39m=\u001b[39m\u001b[39m3\u001b[39m, n_classes\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m)\n\u001b[0;32m----> 2\u001b[0m model\u001b[39m.\u001b[39mload_state_dict(torch\u001b[39m.\u001b[39;49mload(\u001b[39m'\u001b[39;49m\u001b[39m../weights/water_bodies_model.pth\u001b[39;49m\u001b[39m'\u001b[39;49m))\n\u001b[1;32m 3\u001b[0m model\u001b[39m.\u001b[39mto(\u001b[39m'\u001b[39m\u001b[39mcpu\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 5\u001b[0m dummy_input \u001b[39m=\u001b[39m torch\u001b[39m.\u001b[39mrandn(\u001b[39m1\u001b[39m, \u001b[39m3\u001b[39m, \u001b[39m256\u001b[39m, \u001b[39m256\u001b[39m)\n",
|
143 |
-
"File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/serialization.py:789\u001b[0m, in \u001b[0;36mload\u001b[0;34m(f, map_location, pickle_module, weights_only, **pickle_load_args)\u001b[0m\n\u001b[1;32m 787\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[1;32m 788\u001b[0m \u001b[39mraise\u001b[39;00m pickle\u001b[39m.\u001b[39mUnpicklingError(UNSAFE_MESSAGE \u001b[39m+\u001b[39m \u001b[39mstr\u001b[39m(e)) \u001b[39mfrom\u001b[39;00m \u001b[39mNone\u001b[39m\n\u001b[0;32m--> 789\u001b[0m \u001b[39mreturn\u001b[39;00m _load(opened_zipfile, map_location, pickle_module, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mpickle_load_args)\n\u001b[1;32m 790\u001b[0m \u001b[39mif\u001b[39;00m weights_only:\n\u001b[1;32m 791\u001b[0m \u001b[39mtry\u001b[39;00m:\n",
|
144 |
-
"File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/serialization.py:1131\u001b[0m, in \u001b[0;36m_load\u001b[0;34m(zip_file, map_location, pickle_module, pickle_file, **pickle_load_args)\u001b[0m\n\u001b[1;32m 1129\u001b[0m unpickler \u001b[39m=\u001b[39m UnpicklerWrapper(data_file, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mpickle_load_args)\n\u001b[1;32m 1130\u001b[0m unpickler\u001b[39m.\u001b[39mpersistent_load \u001b[39m=\u001b[39m persistent_load\n\u001b[0;32m-> 1131\u001b[0m result \u001b[39m=\u001b[39m unpickler\u001b[39m.\u001b[39;49mload()\n\u001b[1;32m 1133\u001b[0m torch\u001b[39m.\u001b[39m_utils\u001b[39m.\u001b[39m_validate_loaded_sparse_tensors()\n\u001b[1;32m 1135\u001b[0m \u001b[39mreturn\u001b[39;00m result\n",
|
145 |
-
"File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/serialization.py:1101\u001b[0m, in \u001b[0;36m_load.<locals>.persistent_load\u001b[0;34m(saved_id)\u001b[0m\n\u001b[1;32m 1099\u001b[0m \u001b[39mif\u001b[39;00m key \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m loaded_storages:\n\u001b[1;32m 1100\u001b[0m nbytes \u001b[39m=\u001b[39m numel \u001b[39m*\u001b[39m torch\u001b[39m.\u001b[39m_utils\u001b[39m.\u001b[39m_element_size(dtype)\n\u001b[0;32m-> 1101\u001b[0m load_tensor(dtype, nbytes, key, _maybe_decode_ascii(location))\n\u001b[1;32m 1103\u001b[0m \u001b[39mreturn\u001b[39;00m loaded_storages[key]\n",
|
146 |
-
"File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/serialization.py:1083\u001b[0m, in \u001b[0;36m_load.<locals>.load_tensor\u001b[0;34m(dtype, numel, key, location)\u001b[0m\n\u001b[1;32m 1079\u001b[0m storage \u001b[39m=\u001b[39m zip_file\u001b[39m.\u001b[39mget_storage_from_record(name, numel, torch\u001b[39m.\u001b[39mUntypedStorage)\u001b[39m.\u001b[39mstorage()\u001b[39m.\u001b[39muntyped()\n\u001b[1;32m 1080\u001b[0m \u001b[39m# TODO: Once we decide to break serialization FC, we can\u001b[39;00m\n\u001b[1;32m 1081\u001b[0m \u001b[39m# stop wrapping with TypedStorage\u001b[39;00m\n\u001b[1;32m 1082\u001b[0m loaded_storages[key] \u001b[39m=\u001b[39m torch\u001b[39m.\u001b[39mstorage\u001b[39m.\u001b[39mTypedStorage(\n\u001b[0;32m-> 1083\u001b[0m wrap_storage\u001b[39m=\u001b[39mrestore_location(storage, location),\n\u001b[1;32m 1084\u001b[0m dtype\u001b[39m=\u001b[39mdtype)\n",
|
147 |
-
"File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/serialization.py:215\u001b[0m, in \u001b[0;36mdefault_restore_location\u001b[0;34m(storage, location)\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mdefault_restore_location\u001b[39m(storage, location):\n\u001b[1;32m 214\u001b[0m \u001b[39mfor\u001b[39;00m _, _, fn \u001b[39min\u001b[39;00m _package_registry:\n\u001b[0;32m--> 215\u001b[0m result \u001b[39m=\u001b[39m fn(storage, location)\n\u001b[1;32m 216\u001b[0m \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 217\u001b[0m \u001b[39mreturn\u001b[39;00m result\n",
|
148 |
-
"File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/serialization.py:182\u001b[0m, in \u001b[0;36m_cuda_deserialize\u001b[0;34m(obj, location)\u001b[0m\n\u001b[1;32m 180\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_cuda_deserialize\u001b[39m(obj, location):\n\u001b[1;32m 181\u001b[0m \u001b[39mif\u001b[39;00m location\u001b[39m.\u001b[39mstartswith(\u001b[39m'\u001b[39m\u001b[39mcuda\u001b[39m\u001b[39m'\u001b[39m):\n\u001b[0;32m--> 182\u001b[0m device \u001b[39m=\u001b[39m validate_cuda_device(location)\n\u001b[1;32m 183\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mgetattr\u001b[39m(obj, \u001b[39m\"\u001b[39m\u001b[39m_torch_load_uninitialized\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39mFalse\u001b[39;00m):\n\u001b[1;32m 184\u001b[0m \u001b[39mwith\u001b[39;00m torch\u001b[39m.\u001b[39mcuda\u001b[39m.\u001b[39mdevice(device):\n",
|
149 |
-
"File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/serialization.py:166\u001b[0m, in \u001b[0;36mvalidate_cuda_device\u001b[0;34m(location)\u001b[0m\n\u001b[1;32m 163\u001b[0m device \u001b[39m=\u001b[39m torch\u001b[39m.\u001b[39mcuda\u001b[39m.\u001b[39m_utils\u001b[39m.\u001b[39m_get_device_index(location, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m 165\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m torch\u001b[39m.\u001b[39mcuda\u001b[39m.\u001b[39mis_available():\n\u001b[0;32m--> 166\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mRuntimeError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39mAttempting to deserialize object on a CUDA \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m 167\u001b[0m \u001b[39m'\u001b[39m\u001b[39mdevice but torch.cuda.is_available() is False. \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m 168\u001b[0m \u001b[39m'\u001b[39m\u001b[39mIf you are running on a CPU-only machine, \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m 169\u001b[0m \u001b[39m'\u001b[39m\u001b[39mplease use torch.load with map_location=torch.device(\u001b[39m\u001b[39m\\'\u001b[39;00m\u001b[39mcpu\u001b[39m\u001b[39m\\'\u001b[39;00m\u001b[39m) \u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m 170\u001b[0m \u001b[39m'\u001b[39m\u001b[39mto map your storages to the CPU.\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 171\u001b[0m device_count \u001b[39m=\u001b[39m torch\u001b[39m.\u001b[39mcuda\u001b[39m.\u001b[39mdevice_count()\n\u001b[1;32m 172\u001b[0m \u001b[39mif\u001b[39;00m device \u001b[39m>\u001b[39m\u001b[39m=\u001b[39m device_count:\n",
|
150 |
-
"\u001b[0;31mRuntimeError\u001b[0m: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU."
|
151 |
-
]
|
152 |
-
}
|
153 |
-
],
|
154 |
"source": [
|
155 |
-
"model =
|
156 |
-
"model.load_state_dict(torch.load('../
|
157 |
"\n",
|
158 |
-
"dummy_input = torch.randn(1, 3,
|
159 |
"\n",
|
160 |
"model.eval()\n",
|
161 |
"torch_out = model(dummy_input)"
|
@@ -170,127 +144,194 @@
|
|
170 |
},
|
171 |
{
|
172 |
"cell_type": "code",
|
173 |
-
"execution_count":
|
174 |
"metadata": {},
|
175 |
"outputs": [
|
176 |
{
|
177 |
"name": "stdout",
|
178 |
"output_type": "stream",
|
179 |
"text": [
|
180 |
-
"Exported graph: graph(%input : Float(*, 3,
|
181 |
-
" %
|
182 |
-
" %
|
183 |
-
" %
|
184 |
-
" %
|
185 |
-
" %onnx::
|
186 |
-
" %onnx::
|
187 |
-
" %onnx::
|
188 |
-
" %onnx::
|
189 |
-
" %onnx::
|
190 |
-
" %onnx::
|
191 |
-
" %onnx::
|
192 |
-
" %onnx::
|
193 |
-
" %onnx::
|
194 |
-
" %onnx::
|
195 |
-
" %onnx::
|
196 |
-
" %onnx::
|
197 |
-
"
|
198 |
-
"
|
199 |
-
"
|
200 |
-
"
|
201 |
-
"
|
202 |
-
"
|
203 |
-
"
|
204 |
-
"
|
205 |
-
"
|
206 |
-
"
|
207 |
-
"
|
208 |
-
"
|
209 |
-
"
|
210 |
-
"
|
211 |
-
"
|
212 |
-
"
|
213 |
-
"
|
214 |
-
"
|
215 |
-
"
|
216 |
-
"
|
217 |
-
"
|
218 |
-
"
|
219 |
-
"
|
220 |
-
"
|
221 |
-
"
|
222 |
-
"
|
223 |
-
"
|
224 |
-
"
|
225 |
-
"
|
226 |
-
"
|
227 |
-
"
|
228 |
-
"
|
229 |
-
"
|
230 |
-
"
|
231 |
-
"
|
232 |
-
"
|
233 |
-
"
|
234 |
-
"
|
235 |
-
"
|
236 |
-
"
|
237 |
-
"
|
238 |
-
"
|
239 |
-
"
|
240 |
-
"
|
241 |
-
"
|
242 |
-
"
|
243 |
-
"
|
244 |
-
"
|
245 |
-
"
|
246 |
-
"
|
247 |
-
"
|
248 |
-
"
|
249 |
-
"
|
250 |
-
"
|
251 |
-
"
|
252 |
-
"
|
253 |
-
"
|
254 |
-
"
|
255 |
-
" %/
|
256 |
-
" %/
|
257 |
-
" %/
|
258 |
-
" %/
|
259 |
-
" %/
|
260 |
-
" %/
|
261 |
-
" %/
|
262 |
-
" %/
|
263 |
-
" %/
|
264 |
-
" %/
|
265 |
-
" %/
|
266 |
-
" %/
|
267 |
-
" %/
|
268 |
-
" %/
|
269 |
-
" %/
|
270 |
-
" %/
|
271 |
-
" %/
|
272 |
-
" %/
|
273 |
-
" %/
|
274 |
-
" %/
|
275 |
-
" %/
|
276 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
277 |
" return (%output)\n",
|
278 |
"\n"
|
279 |
]
|
280 |
-
},
|
281 |
-
{
|
282 |
-
"name": "stderr",
|
283 |
-
"output_type": "stream",
|
284 |
-
"text": [
|
285 |
-
"/home/gautham/.local/lib/python3.10/site-packages/torch/onnx/utils.py:687: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n",
|
286 |
-
" _C._jit_pass_onnx_graph_shape_type_inference(\n",
|
287 |
-
"/home/gautham/.local/lib/python3.10/site-packages/torch/onnx/utils.py:1178: UserWarning: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function. (Triggered internally at ../torch/csrc/jit/passes/onnx/shape_type_inference.cpp:1884.)\n",
|
288 |
-
" _C._jit_pass_onnx_graph_shape_type_inference(\n"
|
289 |
-
]
|
290 |
}
|
291 |
],
|
292 |
"source": [
|
293 |
-
"onnx_path = '../
|
294 |
"\n",
|
295 |
"torch.onnx.export(model,\n",
|
296 |
" dummy_input,\n",
|
@@ -311,7 +352,7 @@
|
|
311 |
},
|
312 |
{
|
313 |
"cell_type": "code",
|
314 |
-
"execution_count":
|
315 |
"metadata": {},
|
316 |
"outputs": [],
|
317 |
"source": [
|
@@ -330,7 +371,7 @@
|
|
330 |
},
|
331 |
{
|
332 |
"cell_type": "code",
|
333 |
-
"execution_count":
|
334 |
"metadata": {},
|
335 |
"outputs": [
|
336 |
{
|
|
|
13 |
"metadata": {},
|
14 |
"outputs": [
|
15 |
{
|
16 |
+
"name": "stdout",
|
17 |
"output_type": "stream",
|
18 |
"text": [
|
19 |
+
"True\n"
|
|
|
20 |
]
|
21 |
}
|
22 |
],
|
23 |
"source": [
|
24 |
"import torch\n",
|
25 |
"from torch import nn\n",
|
26 |
+
"from torch.nn import functional as F\n",
|
27 |
+
"\n",
|
28 |
+
"print(torch.cuda.is_available())"
|
29 |
]
|
30 |
},
|
31 |
{
|
|
|
41 |
"metadata": {},
|
42 |
"outputs": [],
|
43 |
"source": [
|
44 |
+
"class BasicBlock(nn.Module):\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
"\n",
|
46 |
+
" def __init__(self, in_channels, out_channels, stride= 1):\n",
|
|
|
47 |
" super().__init__()\n",
|
48 |
+
" self.conv1 = nn.Conv2d(in_channels, out_channels, 3, stride= stride, padding= 1)\n",
|
49 |
+
" self.conv2 = nn.Conv2d(out_channels, out_channels, 3, stride= 1, padding= 1)\n",
|
50 |
+
" self.bn1 = nn.BatchNorm2d(out_channels)\n",
|
51 |
+
" self.bn2 = nn.BatchNorm2d(out_channels)\n",
|
52 |
+
" self.relu = nn.ReLU(inplace= True)\n",
|
53 |
+
"\n",
|
54 |
+
" self.downsample = nn.Sequential()\n",
|
55 |
+
" \n",
|
56 |
+
" if stride != 1:\n",
|
57 |
+
" self.downsample = nn.Sequential(\n",
|
58 |
+
" nn.Conv2d(in_channels, out_channels, 1, stride),\n",
|
59 |
+
" nn.BatchNorm2d(out_channels))\n",
|
60 |
+
"\n",
|
61 |
" def forward(self, x):\n",
|
62 |
+
" out = self.conv1(x)\n",
|
63 |
+
" out = self.bn1(out)\n",
|
64 |
+
" out = self.relu(out)\n",
|
65 |
"\n",
|
66 |
+
" out = self.conv2(out)\n",
|
67 |
+
" out = self.bn2(out)\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
"\n",
|
69 |
+
" out += self.downsample(x)\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
"\n",
|
71 |
+
" out = self.relu(out)\n",
|
|
|
|
|
|
|
|
|
72 |
"\n",
|
73 |
+
" return out\n",
|
|
|
74 |
"\n",
|
75 |
+
"class ResNet34(nn.Module):\n",
|
76 |
+
" def __init__(self, num_classes) -> None:\n",
|
77 |
" super().__init__()\n",
|
78 |
+
"\n",
|
79 |
+
" self.conv1 = nn.Sequential(nn.Conv2d(3, 64, 7, stride= 2, padding= 3),\n",
|
80 |
+
" nn.BatchNorm2d(64), nn.MaxPool2d(3, stride= 2, padding= 1), nn.ReLU(inplace= True))\n",
|
81 |
+
"\n",
|
82 |
+
" self.layer0 = self._make_layer(64, 64, 3, 1)\n",
|
83 |
+
" self.layer1 = self._make_layer(64, 128, 4, 2)\n",
|
84 |
+
" self.layer2 = self._make_layer(128, 256, 6, 2)\n",
|
85 |
+
" self.layer3 = self._make_layer(256, 512, 3, 2)\n",
|
86 |
+
"\n",
|
87 |
+
" self.avg_pool = nn.AvgPool2d(7)\n",
|
88 |
+
" self.fc = nn.Linear(512, num_classes)\n",
|
89 |
+
"\n",
|
90 |
+
" def _make_layer(self, in_channels, out_channels, num_blocks, stride):\n",
|
91 |
+
" \n",
|
92 |
+
" layers = []\n",
|
93 |
+
" layers.append(BasicBlock(in_channels, out_channels, stride))\n",
|
94 |
+
"\n",
|
95 |
+
" for i in range(num_blocks - 1):\n",
|
96 |
+
" layers.append(BasicBlock(out_channels, out_channels, 1))\n",
|
97 |
+
"\n",
|
98 |
+
" return nn.Sequential(*layers)\n",
|
99 |
"\n",
|
100 |
" def forward(self, x):\n",
|
101 |
+
" out = self.conv1(x)\n",
|
102 |
+
" \n",
|
103 |
+
" out = self.layer0(out)\n",
|
104 |
+
" out = self.layer1(out)\n",
|
105 |
+
" out = self.layer2(out)\n",
|
106 |
+
" out = self.layer3(out)\n",
|
107 |
+
"\n",
|
108 |
+
" out = self.avg_pool(out)\n",
|
109 |
+
" out = out.view(out.size(0), -1)\n",
|
110 |
+
" out = self.fc(out)\n",
|
111 |
+
"\n",
|
112 |
+
" out = F.log_softmax(out, dim= 1)\n",
|
113 |
+
" return out"
|
114 |
]
|
115 |
},
|
116 |
{
|
|
|
124 |
"cell_type": "code",
|
125 |
"execution_count": 3,
|
126 |
"metadata": {},
|
127 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
"source": [
|
129 |
+
"model = ResNet34(450)\n",
|
130 |
+
"model.load_state_dict(torch.load('../model/birds_resnet34_model.pth'))\n",
|
131 |
"\n",
|
132 |
+
"dummy_input = torch.randn(1, 3, 224, 224)\n",
|
133 |
"\n",
|
134 |
"model.eval()\n",
|
135 |
"torch_out = model(dummy_input)"
|
|
|
144 |
},
|
145 |
{
|
146 |
"cell_type": "code",
|
147 |
+
"execution_count": 4,
|
148 |
"metadata": {},
|
149 |
"outputs": [
|
150 |
{
|
151 |
"name": "stdout",
|
152 |
"output_type": "stream",
|
153 |
"text": [
|
154 |
+
"Exported graph: graph(%input : Float(*, 3, 224, 224, strides=[150528, 50176, 224, 1], requires_grad=0, device=cpu),\n",
|
155 |
+
" %fc.weight : Float(450, 512, strides=[512, 1], requires_grad=1, device=cpu),\n",
|
156 |
+
" %fc.bias : Float(450, strides=[1], requires_grad=1, device=cpu),\n",
|
157 |
+
" %onnx::Conv_393 : Float(64, 3, 7, 7, strides=[147, 49, 7, 1], requires_grad=0, device=cpu),\n",
|
158 |
+
" %onnx::Conv_394 : Float(64, strides=[1], requires_grad=0, device=cpu),\n",
|
159 |
+
" %onnx::Conv_396 : Float(64, 64, 3, 3, strides=[576, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
160 |
+
" %onnx::Conv_397 : Float(64, strides=[1], requires_grad=0, device=cpu),\n",
|
161 |
+
" %onnx::Conv_399 : Float(64, 64, 3, 3, strides=[576, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
162 |
+
" %onnx::Conv_400 : Float(64, strides=[1], requires_grad=0, device=cpu),\n",
|
163 |
+
" %onnx::Conv_402 : Float(64, 64, 3, 3, strides=[576, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
164 |
+
" %onnx::Conv_403 : Float(64, strides=[1], requires_grad=0, device=cpu),\n",
|
165 |
+
" %onnx::Conv_405 : Float(64, 64, 3, 3, strides=[576, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
166 |
+
" %onnx::Conv_406 : Float(64, strides=[1], requires_grad=0, device=cpu),\n",
|
167 |
+
" %onnx::Conv_408 : Float(64, 64, 3, 3, strides=[576, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
168 |
+
" %onnx::Conv_409 : Float(64, strides=[1], requires_grad=0, device=cpu),\n",
|
169 |
+
" %onnx::Conv_411 : Float(64, 64, 3, 3, strides=[576, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
170 |
+
" %onnx::Conv_412 : Float(64, strides=[1], requires_grad=0, device=cpu),\n",
|
171 |
+
" %onnx::Conv_414 : Float(128, 64, 3, 3, strides=[576, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
172 |
+
" %onnx::Conv_415 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
173 |
+
" %onnx::Conv_417 : Float(128, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
174 |
+
" %onnx::Conv_418 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
175 |
+
" %onnx::Conv_420 : Float(128, 64, 1, 1, strides=[64, 1, 1, 1], requires_grad=0, device=cpu),\n",
|
176 |
+
" %onnx::Conv_421 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
177 |
+
" %onnx::Conv_423 : Float(128, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
178 |
+
" %onnx::Conv_424 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
179 |
+
" %onnx::Conv_426 : Float(128, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
180 |
+
" %onnx::Conv_427 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
181 |
+
" %onnx::Conv_429 : Float(128, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
182 |
+
" %onnx::Conv_430 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
183 |
+
" %onnx::Conv_432 : Float(128, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
184 |
+
" %onnx::Conv_433 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
185 |
+
" %onnx::Conv_435 : Float(128, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
186 |
+
" %onnx::Conv_436 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
187 |
+
" %onnx::Conv_438 : Float(128, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
188 |
+
" %onnx::Conv_439 : Float(128, strides=[1], requires_grad=0, device=cpu),\n",
|
189 |
+
" %onnx::Conv_441 : Float(256, 128, 3, 3, strides=[1152, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
190 |
+
" %onnx::Conv_442 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
191 |
+
" %onnx::Conv_444 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
192 |
+
" %onnx::Conv_445 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
193 |
+
" %onnx::Conv_447 : Float(256, 128, 1, 1, strides=[128, 1, 1, 1], requires_grad=0, device=cpu),\n",
|
194 |
+
" %onnx::Conv_448 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
195 |
+
" %onnx::Conv_450 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
196 |
+
" %onnx::Conv_451 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
197 |
+
" %onnx::Conv_453 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
198 |
+
" %onnx::Conv_454 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
199 |
+
" %onnx::Conv_456 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
200 |
+
" %onnx::Conv_457 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
201 |
+
" %onnx::Conv_459 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
202 |
+
" %onnx::Conv_460 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
203 |
+
" %onnx::Conv_462 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
204 |
+
" %onnx::Conv_463 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
205 |
+
" %onnx::Conv_465 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
206 |
+
" %onnx::Conv_466 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
207 |
+
" %onnx::Conv_468 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
208 |
+
" %onnx::Conv_469 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
209 |
+
" %onnx::Conv_471 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
210 |
+
" %onnx::Conv_472 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
211 |
+
" %onnx::Conv_474 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
212 |
+
" %onnx::Conv_475 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
213 |
+
" %onnx::Conv_477 : Float(256, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
214 |
+
" %onnx::Conv_478 : Float(256, strides=[1], requires_grad=0, device=cpu),\n",
|
215 |
+
" %onnx::Conv_480 : Float(512, 256, 3, 3, strides=[2304, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
216 |
+
" %onnx::Conv_481 : Float(512, strides=[1], requires_grad=0, device=cpu),\n",
|
217 |
+
" %onnx::Conv_483 : Float(512, 512, 3, 3, strides=[4608, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
218 |
+
" %onnx::Conv_484 : Float(512, strides=[1], requires_grad=0, device=cpu),\n",
|
219 |
+
" %onnx::Conv_486 : Float(512, 256, 1, 1, strides=[256, 1, 1, 1], requires_grad=0, device=cpu),\n",
|
220 |
+
" %onnx::Conv_487 : Float(512, strides=[1], requires_grad=0, device=cpu),\n",
|
221 |
+
" %onnx::Conv_489 : Float(512, 512, 3, 3, strides=[4608, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
222 |
+
" %onnx::Conv_490 : Float(512, strides=[1], requires_grad=0, device=cpu),\n",
|
223 |
+
" %onnx::Conv_492 : Float(512, 512, 3, 3, strides=[4608, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
224 |
+
" %onnx::Conv_493 : Float(512, strides=[1], requires_grad=0, device=cpu),\n",
|
225 |
+
" %onnx::Conv_495 : Float(512, 512, 3, 3, strides=[4608, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
226 |
+
" %onnx::Conv_496 : Float(512, strides=[1], requires_grad=0, device=cpu),\n",
|
227 |
+
" %onnx::Conv_498 : Float(512, 512, 3, 3, strides=[4608, 9, 3, 1], requires_grad=0, device=cpu),\n",
|
228 |
+
" %onnx::Conv_499 : Float(512, strides=[1], requires_grad=0, device=cpu)):\n",
|
229 |
+
" %/conv1/conv1.0/Conv_output_0 : Float(*, 64, 112, 112, strides=[802816, 12544, 112, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[7, 7], pads=[3, 3, 3, 3], strides=[2, 2], onnx_name=\"/conv1/conv1.0/Conv\"](%input, %onnx::Conv_393, %onnx::Conv_394), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::conv1/torch.nn.modules.conv.Conv2d::conv1.0 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
230 |
+
" %/conv1/conv1.2/MaxPool_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::MaxPool[ceil_mode=0, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2], onnx_name=\"/conv1/conv1.2/MaxPool\"](%/conv1/conv1.0/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::conv1/torch.nn.modules.pooling.MaxPool2d::conv1.2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:780:0\n",
|
231 |
+
" %/conv1/conv1.3/Relu_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/conv1/conv1.3/Relu\"](%/conv1/conv1.2/MaxPool_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::conv1/torch.nn.modules.activation.ReLU::conv1.3 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
232 |
+
" %/layer0/layer0.0/conv1/Conv_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer0/layer0.0/conv1/Conv\"](%/conv1/conv1.3/Relu_output_0, %onnx::Conv_396, %onnx::Conv_397), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.0/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
233 |
+
" %/layer0/layer0.0/relu/Relu_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer0/layer0.0/relu/Relu\"](%/layer0/layer0.0/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
234 |
+
" %/layer0/layer0.0/conv2/Conv_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer0/layer0.0/conv2/Conv\"](%/layer0/layer0.0/relu/Relu_output_0, %onnx::Conv_399, %onnx::Conv_400), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.0/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
235 |
+
" %/layer0/layer0.0/Add_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer0/layer0.0/Add\"](%/layer0/layer0.0/conv2/Conv_output_0, %/conv1/conv1.3/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.0 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
236 |
+
" %/layer0/layer0.0/relu_1/Relu_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer0/layer0.0/relu_1/Relu\"](%/layer0/layer0.0/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
237 |
+
" %/layer0/layer0.1/conv1/Conv_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer0/layer0.1/conv1/Conv\"](%/layer0/layer0.0/relu_1/Relu_output_0, %onnx::Conv_402, %onnx::Conv_403), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.1/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
238 |
+
" %/layer0/layer0.1/relu/Relu_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer0/layer0.1/relu/Relu\"](%/layer0/layer0.1/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
239 |
+
" %/layer0/layer0.1/conv2/Conv_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer0/layer0.1/conv2/Conv\"](%/layer0/layer0.1/relu/Relu_output_0, %onnx::Conv_405, %onnx::Conv_406), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.1/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
240 |
+
" %/layer0/layer0.1/Add_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer0/layer0.1/Add\"](%/layer0/layer0.1/conv2/Conv_output_0, %/layer0/layer0.0/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.1 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
241 |
+
" %/layer0/layer0.1/relu_1/Relu_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer0/layer0.1/relu_1/Relu\"](%/layer0/layer0.1/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
242 |
+
" %/layer0/layer0.2/conv1/Conv_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer0/layer0.2/conv1/Conv\"](%/layer0/layer0.1/relu_1/Relu_output_0, %onnx::Conv_408, %onnx::Conv_409), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.2/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
243 |
+
" %/layer0/layer0.2/relu/Relu_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer0/layer0.2/relu/Relu\"](%/layer0/layer0.2/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
244 |
+
" %/layer0/layer0.2/conv2/Conv_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer0/layer0.2/conv2/Conv\"](%/layer0/layer0.2/relu/Relu_output_0, %onnx::Conv_411, %onnx::Conv_412), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.2/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
245 |
+
" %/layer0/layer0.2/Add_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer0/layer0.2/Add\"](%/layer0/layer0.2/conv2/Conv_output_0, %/layer0/layer0.1/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.2 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
246 |
+
" %/layer0/layer0.2/relu_1/Relu_output_0 : Float(*, 64, 56, 56, strides=[200704, 3136, 56, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer0/layer0.2/relu_1/Relu\"](%/layer0/layer0.2/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer0/__main__.BasicBlock::layer0.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
247 |
+
" %/layer1/layer1.0/conv1/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2], onnx_name=\"/layer1/layer1.0/conv1/Conv\"](%/layer0/layer0.2/relu_1/Relu_output_0, %onnx::Conv_414, %onnx::Conv_415), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.0/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
248 |
+
" %/layer1/layer1.0/relu/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.0/relu/Relu\"](%/layer1/layer1.0/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
249 |
+
" %/layer1/layer1.0/conv2/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer1/layer1.0/conv2/Conv\"](%/layer1/layer1.0/relu/Relu_output_0, %onnx::Conv_417, %onnx::Conv_418), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.0/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
250 |
+
" %/layer1/layer1.0/downsample/downsample.0/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[2, 2], onnx_name=\"/layer1/layer1.0/downsample/downsample.0/Conv\"](%/layer0/layer0.2/relu_1/Relu_output_0, %onnx::Conv_420, %onnx::Conv_421), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.0/torch.nn.modules.container.Sequential::downsample/torch.nn.modules.conv.Conv2d::downsample.0 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
251 |
+
" %/layer1/layer1.0/Add_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer1/layer1.0/Add\"](%/layer1/layer1.0/conv2/Conv_output_0, %/layer1/layer1.0/downsample/downsample.0/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.0 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
252 |
+
" %/layer1/layer1.0/relu_1/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.0/relu_1/Relu\"](%/layer1/layer1.0/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
253 |
+
" %/layer1/layer1.1/conv1/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer1/layer1.1/conv1/Conv\"](%/layer1/layer1.0/relu_1/Relu_output_0, %onnx::Conv_423, %onnx::Conv_424), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.1/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
254 |
+
" %/layer1/layer1.1/relu/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.1/relu/Relu\"](%/layer1/layer1.1/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
255 |
+
" %/layer1/layer1.1/conv2/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer1/layer1.1/conv2/Conv\"](%/layer1/layer1.1/relu/Relu_output_0, %onnx::Conv_426, %onnx::Conv_427), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.1/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
256 |
+
" %/layer1/layer1.1/Add_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer1/layer1.1/Add\"](%/layer1/layer1.1/conv2/Conv_output_0, %/layer1/layer1.0/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.1 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
257 |
+
" %/layer1/layer1.1/relu_1/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.1/relu_1/Relu\"](%/layer1/layer1.1/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
258 |
+
" %/layer1/layer1.2/conv1/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer1/layer1.2/conv1/Conv\"](%/layer1/layer1.1/relu_1/Relu_output_0, %onnx::Conv_429, %onnx::Conv_430), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.2/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
259 |
+
" %/layer1/layer1.2/relu/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.2/relu/Relu\"](%/layer1/layer1.2/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
260 |
+
" %/layer1/layer1.2/conv2/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer1/layer1.2/conv2/Conv\"](%/layer1/layer1.2/relu/Relu_output_0, %onnx::Conv_432, %onnx::Conv_433), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.2/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
261 |
+
" %/layer1/layer1.2/Add_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer1/layer1.2/Add\"](%/layer1/layer1.2/conv2/Conv_output_0, %/layer1/layer1.1/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.2 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
262 |
+
" %/layer1/layer1.2/relu_1/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.2/relu_1/Relu\"](%/layer1/layer1.2/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
263 |
+
" %/layer1/layer1.3/conv1/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer1/layer1.3/conv1/Conv\"](%/layer1/layer1.2/relu_1/Relu_output_0, %onnx::Conv_435, %onnx::Conv_436), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.3/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
264 |
+
" %/layer1/layer1.3/relu/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.3/relu/Relu\"](%/layer1/layer1.3/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.3/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
265 |
+
" %/layer1/layer1.3/conv2/Conv_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer1/layer1.3/conv2/Conv\"](%/layer1/layer1.3/relu/Relu_output_0, %onnx::Conv_438, %onnx::Conv_439), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.3/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
266 |
+
" %/layer1/layer1.3/Add_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer1/layer1.3/Add\"](%/layer1/layer1.3/conv2/Conv_output_0, %/layer1/layer1.2/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.3 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
267 |
+
" %/layer1/layer1.3/relu_1/Relu_output_0 : Float(*, 128, 28, 28, strides=[100352, 784, 28, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer1/layer1.3/relu_1/Relu\"](%/layer1/layer1.3/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer1/__main__.BasicBlock::layer1.3/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
268 |
+
" %/layer2/layer2.0/conv1/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2], onnx_name=\"/layer2/layer2.0/conv1/Conv\"](%/layer1/layer1.3/relu_1/Relu_output_0, %onnx::Conv_441, %onnx::Conv_442), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.0/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
269 |
+
" %/layer2/layer2.0/relu/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.0/relu/Relu\"](%/layer2/layer2.0/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
270 |
+
" %/layer2/layer2.0/conv2/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.0/conv2/Conv\"](%/layer2/layer2.0/relu/Relu_output_0, %onnx::Conv_444, %onnx::Conv_445), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.0/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
271 |
+
" %/layer2/layer2.0/downsample/downsample.0/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[2, 2], onnx_name=\"/layer2/layer2.0/downsample/downsample.0/Conv\"](%/layer1/layer1.3/relu_1/Relu_output_0, %onnx::Conv_447, %onnx::Conv_448), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.0/torch.nn.modules.container.Sequential::downsample/torch.nn.modules.conv.Conv2d::downsample.0 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
272 |
+
" %/layer2/layer2.0/Add_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer2/layer2.0/Add\"](%/layer2/layer2.0/conv2/Conv_output_0, %/layer2/layer2.0/downsample/downsample.0/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.0 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
273 |
+
" %/layer2/layer2.0/relu_1/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.0/relu_1/Relu\"](%/layer2/layer2.0/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
274 |
+
" %/layer2/layer2.1/conv1/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.1/conv1/Conv\"](%/layer2/layer2.0/relu_1/Relu_output_0, %onnx::Conv_450, %onnx::Conv_451), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.1/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
275 |
+
" %/layer2/layer2.1/relu/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.1/relu/Relu\"](%/layer2/layer2.1/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
276 |
+
" %/layer2/layer2.1/conv2/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.1/conv2/Conv\"](%/layer2/layer2.1/relu/Relu_output_0, %onnx::Conv_453, %onnx::Conv_454), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.1/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
277 |
+
" %/layer2/layer2.1/Add_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer2/layer2.1/Add\"](%/layer2/layer2.1/conv2/Conv_output_0, %/layer2/layer2.0/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.1 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
278 |
+
" %/layer2/layer2.1/relu_1/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.1/relu_1/Relu\"](%/layer2/layer2.1/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
279 |
+
" %/layer2/layer2.2/conv1/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.2/conv1/Conv\"](%/layer2/layer2.1/relu_1/Relu_output_0, %onnx::Conv_456, %onnx::Conv_457), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.2/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
280 |
+
" %/layer2/layer2.2/relu/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.2/relu/Relu\"](%/layer2/layer2.2/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
281 |
+
" %/layer2/layer2.2/conv2/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.2/conv2/Conv\"](%/layer2/layer2.2/relu/Relu_output_0, %onnx::Conv_459, %onnx::Conv_460), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.2/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
282 |
+
" %/layer2/layer2.2/Add_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer2/layer2.2/Add\"](%/layer2/layer2.2/conv2/Conv_output_0, %/layer2/layer2.1/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.2 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
283 |
+
" %/layer2/layer2.2/relu_1/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.2/relu_1/Relu\"](%/layer2/layer2.2/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
284 |
+
" %/layer2/layer2.3/conv1/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.3/conv1/Conv\"](%/layer2/layer2.2/relu_1/Relu_output_0, %onnx::Conv_462, %onnx::Conv_463), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.3/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
285 |
+
" %/layer2/layer2.3/relu/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.3/relu/Relu\"](%/layer2/layer2.3/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.3/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
286 |
+
" %/layer2/layer2.3/conv2/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.3/conv2/Conv\"](%/layer2/layer2.3/relu/Relu_output_0, %onnx::Conv_465, %onnx::Conv_466), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.3/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
287 |
+
" %/layer2/layer2.3/Add_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer2/layer2.3/Add\"](%/layer2/layer2.3/conv2/Conv_output_0, %/layer2/layer2.2/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.3 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
288 |
+
" %/layer2/layer2.3/relu_1/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.3/relu_1/Relu\"](%/layer2/layer2.3/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.3/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
289 |
+
" %/layer2/layer2.4/conv1/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.4/conv1/Conv\"](%/layer2/layer2.3/relu_1/Relu_output_0, %onnx::Conv_468, %onnx::Conv_469), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.4/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
290 |
+
" %/layer2/layer2.4/relu/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.4/relu/Relu\"](%/layer2/layer2.4/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.4/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
291 |
+
" %/layer2/layer2.4/conv2/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.4/conv2/Conv\"](%/layer2/layer2.4/relu/Relu_output_0, %onnx::Conv_471, %onnx::Conv_472), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.4/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
292 |
+
" %/layer2/layer2.4/Add_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer2/layer2.4/Add\"](%/layer2/layer2.4/conv2/Conv_output_0, %/layer2/layer2.3/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.4 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
293 |
+
" %/layer2/layer2.4/relu_1/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.4/relu_1/Relu\"](%/layer2/layer2.4/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.4/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
294 |
+
" %/layer2/layer2.5/conv1/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.5/conv1/Conv\"](%/layer2/layer2.4/relu_1/Relu_output_0, %onnx::Conv_474, %onnx::Conv_475), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.5/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
295 |
+
" %/layer2/layer2.5/relu/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.5/relu/Relu\"](%/layer2/layer2.5/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.5/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
296 |
+
" %/layer2/layer2.5/conv2/Conv_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer2/layer2.5/conv2/Conv\"](%/layer2/layer2.5/relu/Relu_output_0, %onnx::Conv_477, %onnx::Conv_478), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.5/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
297 |
+
" %/layer2/layer2.5/Add_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer2/layer2.5/Add\"](%/layer2/layer2.5/conv2/Conv_output_0, %/layer2/layer2.4/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.5 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
298 |
+
" %/layer2/layer2.5/relu_1/Relu_output_0 : Float(*, 256, 14, 14, strides=[50176, 196, 14, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer2/layer2.5/relu_1/Relu\"](%/layer2/layer2.5/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer2/__main__.BasicBlock::layer2.5/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
299 |
+
" %/layer3/layer3.0/conv1/Conv_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[2, 2], onnx_name=\"/layer3/layer3.0/conv1/Conv\"](%/layer2/layer2.5/relu_1/Relu_output_0, %onnx::Conv_480, %onnx::Conv_481), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.0/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
300 |
+
" %/layer3/layer3.0/relu/Relu_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer3/layer3.0/relu/Relu\"](%/layer3/layer3.0/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
301 |
+
" %/layer3/layer3.0/conv2/Conv_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer3/layer3.0/conv2/Conv\"](%/layer3/layer3.0/relu/Relu_output_0, %onnx::Conv_483, %onnx::Conv_484), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.0/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
302 |
+
" %/layer3/layer3.0/downsample/downsample.0/Conv_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[1, 1], pads=[0, 0, 0, 0], strides=[2, 2], onnx_name=\"/layer3/layer3.0/downsample/downsample.0/Conv\"](%/layer2/layer2.5/relu_1/Relu_output_0, %onnx::Conv_486, %onnx::Conv_487), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.0/torch.nn.modules.container.Sequential::downsample/torch.nn.modules.conv.Conv2d::downsample.0 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
303 |
+
" %/layer3/layer3.0/Add_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer3/layer3.0/Add\"](%/layer3/layer3.0/conv2/Conv_output_0, %/layer3/layer3.0/downsample/downsample.0/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.0 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
304 |
+
" %/layer3/layer3.0/relu_1/Relu_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer3/layer3.0/relu_1/Relu\"](%/layer3/layer3.0/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.0/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
305 |
+
" %/layer3/layer3.1/conv1/Conv_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer3/layer3.1/conv1/Conv\"](%/layer3/layer3.0/relu_1/Relu_output_0, %onnx::Conv_489, %onnx::Conv_490), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.1/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
306 |
+
" %/layer3/layer3.1/relu/Relu_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer3/layer3.1/relu/Relu\"](%/layer3/layer3.1/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
307 |
+
" %/layer3/layer3.1/conv2/Conv_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer3/layer3.1/conv2/Conv\"](%/layer3/layer3.1/relu/Relu_output_0, %onnx::Conv_492, %onnx::Conv_493), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.1/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
308 |
+
" %/layer3/layer3.1/Add_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer3/layer3.1/Add\"](%/layer3/layer3.1/conv2/Conv_output_0, %/layer3/layer3.0/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.1 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
309 |
+
" %/layer3/layer3.1/relu_1/Relu_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer3/layer3.1/relu_1/Relu\"](%/layer3/layer3.1/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.1/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
310 |
+
" %/layer3/layer3.2/conv1/Conv_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer3/layer3.2/conv1/Conv\"](%/layer3/layer3.1/relu_1/Relu_output_0, %onnx::Conv_495, %onnx::Conv_496), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.2/torch.nn.modules.conv.Conv2d::conv1 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
311 |
+
" %/layer3/layer3.2/relu/Relu_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer3/layer3.2/relu/Relu\"](%/layer3/layer3.2/conv1/Conv_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
312 |
+
" %/layer3/layer3.2/conv2/Conv_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Conv[dilations=[1, 1], group=1, kernel_shape=[3, 3], pads=[1, 1, 1, 1], strides=[1, 1], onnx_name=\"/layer3/layer3.2/conv2/Conv\"](%/layer3/layer3.2/relu/Relu_output_0, %onnx::Conv_498, %onnx::Conv_499), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.2/torch.nn.modules.conv.Conv2d::conv2 # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/conv.py:458:0\n",
|
313 |
+
" %/layer3/layer3.2/Add_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Add[onnx_name=\"/layer3/layer3.2/Add\"](%/layer3/layer3.2/conv2/Conv_output_0, %/layer3/layer3.1/relu_1/Relu_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.2 # /tmp/ipykernel_3991/1263192908.py:23:0\n",
|
314 |
+
" %/layer3/layer3.2/relu_1/Relu_output_0 : Float(*, 512, 7, 7, strides=[25088, 49, 7, 1], requires_grad=1, device=cpu) = onnx::Relu[onnx_name=\"/layer3/layer3.2/relu_1/Relu\"](%/layer3/layer3.2/Add_output_0), scope: __main__.ResNet34::/torch.nn.modules.container.Sequential::layer3/__main__.BasicBlock::layer3.2/torch.nn.modules.activation.ReLU::relu # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1453:0\n",
|
315 |
+
" %/avg_pool/Constant_output_0 : Long(8, strides=[1], device=cpu) = onnx::Constant[value= 0 0 0 0 0 0 0 0 [ CPULongType{8} ], onnx_name=\"/avg_pool/Constant\"](), scope: __main__.ResNet34::/torch.nn.modules.pooling.AvgPool2d::avg_pool # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/pooling.py:628:0\n",
|
316 |
+
" %/avg_pool/Pad_output_0 : Float(*, 512, 7, 7, device=cpu) = onnx::Pad[mode=\"constant\", onnx_name=\"/avg_pool/Pad\"](%/layer3/layer3.2/relu_1/Relu_output_0, %/avg_pool/Constant_output_0), scope: __main__.ResNet34::/torch.nn.modules.pooling.AvgPool2d::avg_pool # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/pooling.py:628:0\n",
|
317 |
+
" %/avg_pool/AveragePool_output_0 : Float(*, 512, 1, 1, strides=[512, 1, 1, 1], requires_grad=1, device=cpu) = onnx::AveragePool[ceil_mode=0, kernel_shape=[7, 7], pads=[0, 0, 0, 0], strides=[7, 7], onnx_name=\"/avg_pool/AveragePool\"](%/avg_pool/Pad_output_0), scope: __main__.ResNet34::/torch.nn.modules.pooling.AvgPool2d::avg_pool # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/pooling.py:628:0\n",
|
318 |
+
" %/Shape_output_0 : Long(4, strides=[1], device=cpu) = onnx::Shape[onnx_name=\"/Shape\"](%/avg_pool/AveragePool_output_0), scope: __main__.ResNet34:: # /tmp/ipykernel_3991/1263192908.py:62:0\n",
|
319 |
+
" %/Constant_output_0 : Long(device=cpu) = onnx::Constant[value={0}, onnx_name=\"/Constant\"](), scope: __main__.ResNet34:: # /tmp/ipykernel_3991/1263192908.py:62:0\n",
|
320 |
+
" %/Gather_output_0 : Long(device=cpu) = onnx::Gather[axis=0, onnx_name=\"/Gather\"](%/Shape_output_0, %/Constant_output_0), scope: __main__.ResNet34:: # /tmp/ipykernel_3991/1263192908.py:62:0\n",
|
321 |
+
" %onnx::Unsqueeze_384 : Long(1, strides=[1], device=cpu) = onnx::Constant[value={0}]()\n",
|
322 |
+
" %/Unsqueeze_output_0 : Long(1, strides=[1], device=cpu) = onnx::Unsqueeze[onnx_name=\"/Unsqueeze\"](%/Gather_output_0, %onnx::Unsqueeze_384), scope: __main__.ResNet34::\n",
|
323 |
+
" %/Constant_1_output_0 : Long(1, strides=[1], requires_grad=0, device=cpu) = onnx::Constant[value={-1}, onnx_name=\"/Constant_1\"](), scope: __main__.ResNet34::\n",
|
324 |
+
" %/Concat_output_0 : Long(2, strides=[1], device=cpu) = onnx::Concat[axis=0, onnx_name=\"/Concat\"](%/Unsqueeze_output_0, %/Constant_1_output_0), scope: __main__.ResNet34:: # /tmp/ipykernel_3991/1263192908.py:62:0\n",
|
325 |
+
" %/Reshape_output_0 : Float(*, 512, strides=[512, 1], requires_grad=1, device=cpu) = onnx::Reshape[allowzero=0, onnx_name=\"/Reshape\"](%/avg_pool/AveragePool_output_0, %/Concat_output_0), scope: __main__.ResNet34:: # /tmp/ipykernel_3991/1263192908.py:62:0\n",
|
326 |
+
" %/fc/Gemm_output_0 : Float(*, 450, strides=[450, 1], requires_grad=1, device=cpu) = onnx::Gemm[alpha=1., beta=1., transB=1, onnx_name=\"/fc/Gemm\"](%/Reshape_output_0, %fc.weight, %fc.bias), scope: __main__.ResNet34::/torch.nn.modules.linear.Linear::fc # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/modules/linear.py:114:0\n",
|
327 |
+
" %output : Float(*, 450, strides=[450, 1], requires_grad=1, device=cpu) = onnx::LogSoftmax[axis=1, onnx_name=\"/LogSoftmax\"](%/fc/Gemm_output_0), scope: __main__.ResNet34:: # /home/gautham/.local/lib/python3.10/site-packages/torch/nn/functional.py:1927:0\n",
|
328 |
" return (%output)\n",
|
329 |
"\n"
|
330 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
}
|
332 |
],
|
333 |
"source": [
|
334 |
+
"onnx_path = '../model/model.onnx'\n",
|
335 |
"\n",
|
336 |
"torch.onnx.export(model,\n",
|
337 |
" dummy_input,\n",
|
|
|
352 |
},
|
353 |
{
|
354 |
"cell_type": "code",
|
355 |
+
"execution_count": 5,
|
356 |
"metadata": {},
|
357 |
"outputs": [],
|
358 |
"source": [
|
|
|
371 |
},
|
372 |
{
|
373 |
"cell_type": "code",
|
374 |
+
"execution_count": 6,
|
375 |
"metadata": {},
|
376 |
"outputs": [
|
377 |
{
|