File size: 18,833 Bytes
8e0b903
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
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
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4beac401",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from models.yolo import Model"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d1a8399f",
   "metadata": {},
   "source": [
    "## Convert YOLOv9-S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c7a40f10",
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cpu\")\n",
    "cfg = \"./models/detect/gelan-s.yaml\"\n",
    "model = Model(cfg, ch=3, nc=80, anchors=3)\n",
    "#model = model.half()\n",
    "model = model.to(device)\n",
    "_ = model.eval()\n",
    "ckpt = torch.load('./yolov9-s.pt', map_location='cpu')\n",
    "model.names = ckpt['model'].names\n",
    "model.nc = ckpt['model'].nc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3b046bb2",
   "metadata": {},
   "outputs": [],
   "source": [
    "idx = 0\n",
    "for k, v in model.state_dict().items():\n",
    "    if \"model.{}.\".format(idx) in k:\n",
    "        if idx < 22:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "    else:\n",
    "        while True:\n",
    "            idx += 1\n",
    "            if \"model.{}.\".format(idx) in k:\n",
    "                break\n",
    "        if idx < 22:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "_ = model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "07eb0cde",
   "metadata": {},
   "outputs": [],
   "source": [
    "m_ckpt = {'model': model.half(),\n",
    "          'optimizer': None,\n",
    "          'best_fitness': None,\n",
    "          'ema': None,\n",
    "          'updates': None,\n",
    "          'opt': None,\n",
    "          'git': None,\n",
    "          'date': None,\n",
    "          'epoch': -1}\n",
    "torch.save(m_ckpt, \"./yolov9-s-converted.pt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ba87d10f",
   "metadata": {},
   "source": [
    "## Convert YOLOv9-M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cc41b027",
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cpu\")\n",
    "cfg = \"./models/detect/gelan-m.yaml\"\n",
    "model = Model(cfg, ch=3, nc=80, anchors=3)\n",
    "#model = model.half()\n",
    "model = model.to(device)\n",
    "_ = model.eval()\n",
    "ckpt = torch.load('./yolov9-m.pt', map_location='cpu')\n",
    "model.names = ckpt['model'].names\n",
    "model.nc = ckpt['model'].nc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cf7c3978",
   "metadata": {},
   "outputs": [],
   "source": [
    "idx = 0\n",
    "for k, v in model.state_dict().items():\n",
    "    if \"model.{}.\".format(idx) in k:\n",
    "        if idx < 22:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx+1))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "    else:\n",
    "        while True:\n",
    "            idx += 1\n",
    "            if \"model.{}.\".format(idx) in k:\n",
    "                break\n",
    "        if idx < 22:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx+1))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "_ = model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "00a92a45",
   "metadata": {},
   "outputs": [],
   "source": [
    "m_ckpt = {'model': model.half(),\n",
    "          'optimizer': None,\n",
    "          'best_fitness': None,\n",
    "          'ema': None,\n",
    "          'updates': None,\n",
    "          'opt': None,\n",
    "          'git': None,\n",
    "          'date': None,\n",
    "          'epoch': -1}\n",
    "torch.save(m_ckpt, \"./yolov9-m-converted.pt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8680f822",
   "metadata": {},
   "source": [
    "## Convert YOLOv9-C"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "59f0198d",
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cpu\")\n",
    "cfg = \"./models/detect/gelan-c.yaml\"\n",
    "model = Model(cfg, ch=3, nc=80, anchors=3)\n",
    "#model = model.half()\n",
    "model = model.to(device)\n",
    "_ = model.eval()\n",
    "ckpt = torch.load('./yolov9-c.pt', map_location='cpu')\n",
    "model.names = ckpt['model'].names\n",
    "model.nc = ckpt['model'].nc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2de7e1be",
   "metadata": {},
   "outputs": [],
   "source": [
    "idx = 0\n",
    "for k, v in model.state_dict().items():\n",
    "    if \"model.{}.\".format(idx) in k:\n",
    "        if idx < 22:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx+1))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "    else:\n",
    "        while True:\n",
    "            idx += 1\n",
    "            if \"model.{}.\".format(idx) in k:\n",
    "                break\n",
    "        if idx < 22:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx+1))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+16))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "_ = model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "960796e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "m_ckpt = {'model': model.half(),\n",
    "          'optimizer': None,\n",
    "          'best_fitness': None,\n",
    "          'ema': None,\n",
    "          'updates': None,\n",
    "          'opt': None,\n",
    "          'git': None,\n",
    "          'date': None,\n",
    "          'epoch': -1}\n",
    "torch.save(m_ckpt, \"./yolov9-c-converted.pt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47c6e6ae",
   "metadata": {},
   "source": [
    "## Convert YOLOv9-E"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "801a1b7c",
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device(\"cpu\")\n",
    "cfg = \"./models/detect/gelan-e.yaml\"\n",
    "model = Model(cfg, ch=3, nc=80, anchors=3)\n",
    "#model = model.half()\n",
    "model = model.to(device)\n",
    "_ = model.eval()\n",
    "ckpt = torch.load('./yolov9-e.pt', map_location='cpu')\n",
    "model.names = ckpt['model'].names\n",
    "model.nc = ckpt['model'].nc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a2ef4fe6",
   "metadata": {},
   "outputs": [],
   "source": [
    "idx = 0\n",
    "for k, v in model.state_dict().items():\n",
    "    if \"model.{}.\".format(idx) in k:\n",
    "        if idx < 29:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif idx < 42:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "    else:\n",
    "        while True:\n",
    "            idx += 1\n",
    "            if \"model.{}.\".format(idx) in k:\n",
    "                break\n",
    "        if idx < 29:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif idx < 42:\n",
    "            kr = k.replace(\"model.{}.\".format(idx), \"model.{}.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv2.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv2.\".format(idx), \"model.{}.cv4.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.cv3.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.cv3.\".format(idx), \"model.{}.cv5.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "        elif \"model.{}.dfl.\".format(idx) in k:\n",
    "            kr = k.replace(\"model.{}.dfl.\".format(idx), \"model.{}.dfl2.\".format(idx+7))\n",
    "            model.state_dict()[k] -= model.state_dict()[k]\n",
    "            model.state_dict()[k] += ckpt['model'].state_dict()[kr]\n",
    "            print(k, \"perfectly matched!!\")\n",
    "_ = model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "27bc1869",
   "metadata": {},
   "outputs": [],
   "source": [
    "m_ckpt = {'model': model.half(),\n",
    "          'optimizer': None,\n",
    "          'best_fitness': None,\n",
    "          'ema': None,\n",
    "          'updates': None,\n",
    "          'opt': None,\n",
    "          'git': None,\n",
    "          'date': None,\n",
    "          'epoch': -1}\n",
    "torch.save(m_ckpt, \"./yolov9-e-converted.pt\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}