-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmicromind.utils.html
More file actions
745 lines (698 loc) · 61.5 KB
/
Copy pathmicromind.utils.html
File metadata and controls
745 lines (698 loc) · 61.5 KB
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
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>micromind.utils package — micromind 0.0.1 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=d45e8c67"></script>
<script src="_static/doctools.js?v=888ff710"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Guide for Contributing to micromind" href="contribution.html" />
<link rel="prev" title="micromind.networks package" href="micromind.networks.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
micromind
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">micromind</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="micromind.html">micromind package</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="micromind.html#module-micromind.core">micromind.core module</a></li>
<li class="toctree-l3"><a class="reference internal" href="micromind.html#module-micromind.convert">micromind.convert module</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="micromind.html#subpackages">Subpackages</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="micromind.networks.html">micromind.networks package</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="#">micromind.utils package</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">How To Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contribution.html">Guide for Contributing to micromind</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">micromind</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="modules.html">micromind</a></li>
<li class="breadcrumb-item"><a href="micromind.html">micromind package</a></li>
<li class="breadcrumb-item active">micromind.utils package</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/micromind.utils.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="micromind-utils-package">
<h1>micromind.utils package<a class="headerlink" href="#micromind-utils-package" title="Link to this heading"></a></h1>
<section id="submodules">
<h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2>
</section>
<section id="module-micromind.utils.checkpointer">
<span id="micromind-utils-checkpointer-module"></span><h2>micromind.utils.checkpointer module<a class="headerlink" href="#module-micromind.utils.checkpointer" title="Link to this heading"></a></h2>
<p>micromind checkpointer. Unwraps models and saves the to disk with optimizer’s
state etc.</p>
<dl class="simple">
<dt>Authors:</dt><dd><ul class="simple">
<li><p>Francesco Paissan, 2023</p></li>
</ul>
</dd>
</dl>
<dl class="py class">
<dt class="sig sig-object py" id="micromind.utils.checkpointer.Checkpointer">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">micromind.utils.checkpointer.</span></span><span class="sig-name descname"><span class="pre">Checkpointer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">experiment_folder</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'loss'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'min'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hparams</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Namespace</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/checkpointer.html#Checkpointer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.checkpointer.Checkpointer" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Checkpointer class. Supports min/max modes for arbitrary keys (Metrics or loss).
Always saves best and last in the experiment folder.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>experiment_folder</strong> (<em>Union</em><em>[</em><em>str</em><em>, </em><em>Path</em><em>]</em>) – Experiment folder. Used to load / store checkpoints.</p></li>
<li><p><strong>key</strong> (<em>Optional</em><em>[</em><em>str</em><em>]</em>) – Key to be logged. It should be the name of the Metric, or “loss”.
Defaults to “loss”.</p></li>
<li><p><strong>mode</strong> (<em>Optional</em><em>[</em><em>str</em><em>]</em>) – Either <cite>min</cite> or <cite>max</cite>. If min, will store the checkpoint with the lowest
value for key. If max, it does the opposite.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Example</p>
<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">micromind.utils.checkpointer</span> <span class="kn">import</span> <span class="n">Checkpointer</span>
<span class="gp">>>> </span><span class="kn">from</span> <span class="nn">micromind.utils.checkpointer</span> <span class="kn">import</span> <span class="n">create_experiment_folder</span>
<span class="gp">>>> </span><span class="n">exp_folder</span> <span class="o">=</span> <span class="n">create_experiment_folder</span><span class="p">(</span><span class="s2">"/tmp"</span><span class="p">,</span> <span class="s2">"test_mm"</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">check</span> <span class="o">=</span> <span class="n">Checkpointer</span><span class="p">(</span><span class="n">exp_folder</span><span class="p">)</span>
</pre></div>
</div>
<dl class="py method">
<dt class="sig sig-object py" id="micromind.utils.checkpointer.Checkpointer.dump_modules">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">dump_modules</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">modules</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">out_folder</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/checkpointer.html#Checkpointer.dump_modules"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.checkpointer.Checkpointer.dump_modules" title="Link to this definition"></a></dt>
<dd><p>Dumps state dict for all elements in the modules.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="micromind.utils.checkpointer.Checkpointer.dump_status">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">dump_status</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">out_dir</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/checkpointer.html#Checkpointer.dump_status"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.checkpointer.Checkpointer.dump_status" title="Link to this definition"></a></dt>
<dd><p>Dumps the status of the training.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="micromind.utils.checkpointer.Checkpointer.recover_state">
<span class="sig-name descname"><span class="pre">recover_state</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/checkpointer.html#Checkpointer.recover_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.checkpointer.Checkpointer.recover_state" title="Link to this definition"></a></dt>
<dd><p>Recovers last corrected state of the training. If found, returns
the accelerate dump folder (for recovery) and the last epoch logged.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>Checkpoint path and last epoch logged.</strong></p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>Tuple[str, int]</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.checkpointer.create_experiment_folder">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.checkpointer.</span></span><span class="sig-name descname"><span class="pre">create_experiment_folder</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">output_folder</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Path</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exp_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Path</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Path</span></span></span><a class="reference internal" href="_modules/micromind/utils/checkpointer.html#create_experiment_folder"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.checkpointer.create_experiment_folder" title="Link to this definition"></a></dt>
<dd><p>Creates the experiment folder used to log data.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>output_folder</strong> (<em>Union</em><em>[</em><em>Path</em><em>, </em><em>str</em><em>]</em>) – General output folder (can be shared between more experiments).</p></li>
<li><p><strong>exp_name</strong> (<em>Union</em><em>[</em><em>Path</em><em>, </em><em>str</em><em>]</em>) – Name of the experiment, to be concatenated to the output_folder.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>Experiment folder</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>Union[Path, str]</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="module-micromind.utils.helpers">
<span id="micromind-utils-helpers-module"></span><h2>micromind.utils.helpers module<a class="headerlink" href="#module-micromind.utils.helpers" title="Link to this heading"></a></h2>
<p>micromind helper functions.</p>
<dl class="simple">
<dt>Authors:</dt><dd><ul class="simple">
<li><p>Francesco Paissan, 2023</p></li>
</ul>
</dd>
</dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.helpers.get_logger">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.helpers.</span></span><span class="sig-name descname"><span class="pre">get_logger</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/helpers.html#get_logger"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.helpers.get_logger" title="Link to this definition"></a></dt>
<dd><p>Default loguru logger config. It is called inside micromind’s files.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.helpers.override_conf">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.helpers.</span></span><span class="sig-name descname"><span class="pre">override_conf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hparams</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/helpers.html#override_conf"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.helpers.override_conf" title="Link to this definition"></a></dt>
<dd><p>Handles command line overrides. Takes as input a configuration
and defines all the keys as arguments. If passed from command line,
these arguments override the default configuration.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>hparams</strong> (<em>Dict</em>) – Dictionary containing current configuration.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>Configuration agumented with overrides.</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>Namespace</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.helpers.parse_configuration">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.helpers.</span></span><span class="sig-name descname"><span class="pre">parse_configuration</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cfg</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">Path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/helpers.html#parse_configuration"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.helpers.parse_configuration" title="Link to this definition"></a></dt>
<dd><p>Parses default configuration and compares it with user defined.
It processes a user-defined python file that creates the configuration.
Additionally, it handles eventual overrides from command line.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>cfg</strong> (<em>Union</em><em>[</em><em>str</em><em>, </em><em>Path</em><em>]</em>) – Configuration file defined by the user</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>Configuration Namespace.</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>argparse.Namespace</p>
</dd>
</dl>
</dd></dl>
</section>
<section id="module-micromind.utils.yolo">
<span id="micromind-utils-yolo-module"></span><h2>micromind.utils.yolo module<a class="headerlink" href="#module-micromind.utils.yolo" title="Link to this heading"></a></h2>
<p>Helper functions.</p>
<dl class="simple">
<dt>Authors:</dt><dd><ul class="simple">
<li><p>Matteo Beltrami, 2023</p></li>
<li><p>Francesco Paissan, 2023</p></li>
</ul>
</dd>
</dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.autopad">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">autopad</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">k</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">p</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">d</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#autopad"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.autopad" title="Link to this definition"></a></dt>
<dd><p>Calculate padding value for a convolution operation based on kernel
size and dilation.</p>
<p>This function computes the padding value for a convolution operation to
maintain the spatial size of the input tensor.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>k</strong> (<em>int</em>) – Kernel size for the convolution operation. If a single integer
is provided, it’s assumed that all dimensions have the same kernel size.</p></li>
<li><p><strong>p</strong> (<em>int</em><em>, </em><em>optional</em>) – Padding value for the convolution operation. If not provided,
it will be calculated to maintain the spatial size of the input tensor.</p></li>
<li><p><strong>d</strong> (<em>int</em><em>, </em><em>optional</em>) – Dilation for the convolution operation. Default is 1.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>The padding value to maintain the spatial size of the input tensor</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.average_precision">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">average_precision</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">predictions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">class_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iou_threshold</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#average_precision"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.average_precision" title="Link to this definition"></a></dt>
<dd><p>Calculate the average precision (AP) for a specific class in YOLO predictions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>predictions</strong> (<em>list</em>) – List of prediction boxes in the format [x1, y1, x2, y2, confidence, class_id].</p></li>
<li><p><strong>ground_truth</strong> (<em>list</em>) – List of ground truth boxes in the same format.</p></li>
<li><p><strong>class_id</strong> (<em>int</em>) – The class ID for which to calculate AP.</p></li>
<li><p><strong>iou_threshold</strong> (<em>float</em>) – The IoU threshold for considering a prediction as correct.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The average precision for the specified class.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.bbox_format">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">bbox_format</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">box</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#bbox_format"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.bbox_format" title="Link to this definition"></a></dt>
<dd><p>Convert a tensor of coordinates [x1, y1, x2, y2] representing two points
defining a rectangle to the format [x_min, y_min, x_max, y_max], where
x_min, y_min represent the top-left corner, and x_max, y_max represent the
bottom-right corner of the rectangle.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>box</strong> (<em>torch.Tensor</em>) – A tensor of coordinates in the format [x1, y1, x2, y2] where x1, y1, x2, y2
represent the coordinates of two points defining a rectangle.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The coordinates in the format [x_min, y_min, x_max, y_max] where x_min, y_min
represent the top-left vertex, and x_max, y_max represent the bottom-right
vertex of the rectangle.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>torch.Tensor</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.box_area">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">box_area</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">box</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#box_area"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.box_area" title="Link to this definition"></a></dt>
<dd><p>Calculate the area of bounding boxes.</p>
<p>This function calculates the area of bounding boxes
represented as [x1, y1, x2, y2].</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>box</strong> (<em>torch.Tensor</em>) – A tensor containing bounding boxes in the format [x1, y1, x2, y2].</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>A tensor containing the area of each bounding box</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>torch.Tensor</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.box_iou">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">box_iou</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">box1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">box2</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#box_iou"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.box_iou" title="Link to this definition"></a></dt>
<dd><p>Calculate the Intersection over Union (IoU) between two sets
of bounding boxes.</p>
<p>This function computes the IoU between two sets of bounding boxes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>box1</strong> (<em>numpy.ndarray</em>) – The first set of bounding boxes in the format [x1, y1, x2, y2].</p></li>
<li><p><strong>box2</strong> (<em>numpy.ndarray</em>) – The second set of bounding boxes in the format [x1, y1, x2, y2].</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A 2D numpy array containing the IoU between each pair of bounding
boxes in box1 and box2.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>numpy.ndarray</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.calculate_iou">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">calculate_iou</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">box1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">box2</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#calculate_iou"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.calculate_iou" title="Link to this definition"></a></dt>
<dd><p>Calculate the Intersection over Union (IoU) between two bounding boxes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>box1</strong> (<em>torch.Tensor</em>) – First bounding box in the format [x1, y1, x2, y2].</p></li>
<li><p><strong>box2</strong> (<em>torch.Tensor</em>) – Second bounding box in the format [x1, y1, x2, y2].</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The intersection over union of the two bounding boxes.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.clip_boxes">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">clip_boxes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">boxes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shape</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#clip_boxes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.clip_boxes" title="Link to this definition"></a></dt>
<dd><p>Clip bounding boxes to stay within image boundaries.</p>
<p>This function clips bounding boxes to ensure that they stay within the
boundaries of the image.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>boxes</strong> (<em>torch.Tensor</em>) – A tensor containing bounding boxes in the format [x1, y1, x2, y2].</p></li>
<li><p><strong>shape</strong> (<em>tuple</em>) – A tuple representing the shape of the image in the format (height, width).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>A tensor containing the clipped bounding boxes</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>torch.Tensor</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.compute_transform">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">compute_transform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">image</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_shape</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(640,</span> <span class="pre">640)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">auto</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scaleFill</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scaleup</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stride</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">32</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#compute_transform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.compute_transform" title="Link to this definition"></a></dt>
<dd><p>Compute a transformation of an image to the specified size and format.</p>
<p>This function computes a transformation of the input image to the specified
new size and format, while optionally maintaining the aspect ratio or adding
padding as needed.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>image</strong> (<em>torch.Tensor</em>) – The input image to be transformed.</p></li>
<li><p><strong>new_shape</strong> (<em>int</em><em> or </em><em>tuple</em><em>, </em><em>optional</em>) – The target size of the transformed image. If an integer is provided,
the image is resized to have the same width and height.
If a tuple of two integers is provided, it represents the new width
and height. Default is (640, 640).</p></li>
<li><p><strong>auto</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, automatically calculates padding to ensure the output size
is divisible by the specified <cite>stride</cite>. Default is False.</p></li>
<li><p><strong>scaleFill</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, scales the image to completely fill the target size without
maintaining the aspect ratio. Default is False.</p></li>
<li><p><strong>scaleup</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, allows the image to be scaled up (enlarged) if necessary.
Default is True.</p></li>
<li><p><strong>stride</strong> (<em>int</em><em>, </em><em>optional</em>) – The stride value used for padding calculation when <cite>auto</cite> is True.
Default is 32.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>The transformed image</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>numpy.ndarray</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.dist2bbox">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">dist2bbox</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">distance</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">anchor_points</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xywh</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dim</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#dist2bbox"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.dist2bbox" title="Link to this definition"></a></dt>
<dd><p>Convert distance predictions to bounding box coordinates.</p>
<p>This function takes distance predictions and anchor points to calculate
bounding box coordinates.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>distance</strong> (<em>torch.Tensor</em>) – Tensor containing distance predictions.
It should be in the format [lt, rb] if <cite>xywh</cite> is True,
or [x1y1, x2y2] if <cite>xywh</cite> is False.</p></li>
<li><p><strong>anchor_points</strong> (<em>torch.Tensor</em>) – Tensor containing anchor points used for the conversion.</p></li>
<li><p><strong>xywh</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, the function returns bounding boxes in the format
[center_x, center_y, width, height].
If False, it returns bounding boxes in the format [x1, y1, x2, y2].
Default is True.</p></li>
<li><p><strong>dim</strong> (<em>int</em><em>, </em><em>optional</em>) – The dimension along which the tensor is split into lt and rb.
Default is -1.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>Converted bounding box coordinates in the specified format</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>torch.Tensors</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.draw_bounding_boxes_and_save">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">draw_bounding_boxes_and_save</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">orig_img_paths</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_img_paths</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">all_predictions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">class_labels</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iou_threshold</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#draw_bounding_boxes_and_save"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.draw_bounding_boxes_and_save" title="Link to this definition"></a></dt>
<dd><p>Draw bounding boxes on images based on object detection predictions and
save the result.</p>
<p>This function draws bounding boxes on images based on object detection
predictions and saves the result. It also prints the number of objects
detected for each class.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>orig_img_paths</strong> (<em>list</em><em> of </em><em>str</em>) – A list of file paths to the original input images.</p></li>
<li><p><strong>output_img_paths</strong> (<em>list</em><em> of </em><em>str</em>) – A list of file paths to save the images with bounding boxes.</p></li>
<li><p><strong>all_predictions</strong> (<em>list</em><em> of </em><em>list</em><em> of </em><em>numpy.ndarray</em>) – A list of lists of prediction arrays from the object detection model.</p></li>
<li><p><strong>class_labels</strong> (<em>list</em><em> of </em><em>str</em>) – A list of class labels corresponding to the object classes.</p></li>
<li><p><strong>iou_threshold</strong> (<em>float</em><em>, </em><em>optional</em>) – The IoU threshold used for non-maximum suppression to remove
overlapping bounding boxes. Default is 0.5.</p></li>
</ul>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>None</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.get_variant_multiples">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">get_variant_multiples</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">variant</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#get_variant_multiples"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.get_variant_multiples" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.load_config">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">load_config</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">file_path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#load_config"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.load_config" title="Link to this definition"></a></dt>
<dd><p>Load configuration from a YAML file and preprocess it for training.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>file_path</strong> (<em>str</em>) – Path to the YAML configuration file.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><ul class="simple">
<li><p><strong>m_cfg</strong> (<em>types.SimpleNamespace</em>) – Model configuration containing task-specific parameters.</p></li>
<li><p><strong>data_cfg</strong> (<em>dict</em>) – Data configuration containing paths and settings for train, val and test.</p></li>
</ul>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.make_anchors">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">make_anchors</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">feats</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strides</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid_cell_offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#make_anchors"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.make_anchors" title="Link to this definition"></a></dt>
<dd><p>Generate anchor points and stride tensors.</p>
<p>This function generates anchor points for each feature map and stride
combination.
It is commonly used in object detection tasks to define anchor boxes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>feats</strong> (<em>torch.Tensor</em>) – A feature map (tensor) from which anchor points will be generated.</p></li>
<li><p><strong>strides</strong> (<em>torch.Tensor</em>) – Stride values corresponding to each feature map.
Strides define the spacing between anchor points.</p></li>
<li><p><strong>grid_cell_offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Offset to be added to the grid cell coordinates when
generating anchor points. Default is 0.5.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><ul class="simple">
<li><p><strong>anchor_points</strong> (<em>torch.Tensor</em>) – Concatenated anchor points for all feature maps as a 2D tensor.</p></li>
<li><p><strong>stride_tensor</strong> (<em>torch.Tensor</em>) – Concatenated stride values for all anchor points as a 2D tensor.</p></li>
</ul>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.mean_average_precision">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">mean_average_precision</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">post_predictions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">batch</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">batch_bboxes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iou_threshold</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#mean_average_precision"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.mean_average_precision" title="Link to this definition"></a></dt>
<dd><p>Calculate the mean average precision (mAP) for all classes in YOLO predictions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>post_predictions</strong> (<em>list</em>) – List of post-processed predictions for bounding boxes.</p></li>
<li><p><strong>batch</strong> (<em>dict</em>) – A dictionary containing batch information, including image files, batch indices.</p></li>
<li><p><strong>batch_bboxes</strong> (<em>torch.Tensor</em>) – Tensor containing batch bounding boxes.</p></li>
<li><p><strong>iou_threshold</strong> (<em>float</em>) – The IoU threshold for considering a prediction as correct.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The mean average precision (mAP).</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.non_max_suppression">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">non_max_suppression</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prediction</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">conf_thres</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.25</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iou_thres</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">classes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">agnostic</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">multi_label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">labels</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_det</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">nc</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_time_img</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_nms</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">30000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_wh</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">7680</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#non_max_suppression"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.non_max_suppression" title="Link to this definition"></a></dt>
<dd><p>Perform non-maximum suppression (NMS) on a set of boxes, with support for masks
and multiple labels per box.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>prediction</strong> (<em>torch.Tensor</em>) – A tensor of shape (batch_size, num_classes + 4 + num_masks, num_boxes)
containing the predicted boxes, classes, and masks. The tensor should
be in the format output by a model, such as YOLO.</p></li>
<li><p><strong>conf_thres</strong> (<em>float</em><em>, </em><em>optional</em>) – The confidence threshold below which boxes will be filtered out.
Valid values are between 0.0 and 1.0. Default is 0.25.</p></li>
<li><p><strong>iou_thres</strong> (<em>float</em><em>, </em><em>optional</em>) – The IoU threshold below which boxes will be filtered out during NMS.
Valid values are between 0.0 and 1.0. Default is 0.45.</p></li>
<li><p><strong>classes</strong> (<em>List</em><em>[</em><em>int</em><em>]</em><em>, </em><em>optional</em>) – A list of class indices to consider. If None, all classes will be considered.</p></li>
<li><p><strong>agnostic</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, the model is agnostic to the number of classes, and all classes
will be considered as one. Default is False.</p></li>
<li><p><strong>multi_label</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, each box may have multiple labels. Default is False.</p></li>
<li><p><strong>labels</strong> (<em>List</em><em>[</em><em>List</em><em>[</em><em>Union</em><em>[</em><em>int</em><em>, </em><em>float</em><em>, </em><em>torch.Tensor</em><em>]</em><em>]</em><em>]</em><em>, </em><em>optional</em>) – A list of lists, where each inner list contains the apriori labels for a
given image. The list should be in the format output by a dataloader, with
each label being a tuple of (class_index, x1, y1, x2, y2).</p></li>
<li><p><strong>max_det</strong> (<em>int</em><em>, </em><em>optional</em>) – The maximum number of boxes to keep after NMS. Default is 300.</p></li>
<li><p><strong>nc</strong> (<em>int</em><em>, </em><em>optional</em>) – The number of classes output by the model. Any indices after this will be
considered masks. Default is 0.</p></li>
<li><p><strong>max_time_img</strong> (<em>float</em><em>, </em><em>optional</em>) – The maximum time (seconds) for processing one image. Default is 0.05.</p></li>
<li><p><strong>max_nms</strong> (<em>int</em><em>, </em><em>optional</em>) – The maximum number of boxes into torchvision.ops.nms(). Default is 30000.</p></li>
<li><p><strong>max_wh</strong> (<em>int</em><em>, </em><em>optional</em>) – The maximum box width and height in pixels. Default is 7680.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A list of length batch_size, where each element is a tensor of
shape (num_boxes, 6 + num_masks) containing the kept boxes, with columns
(x1, y1, x2, y2, confidence, class, mask1, mask2, …).</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>List[torch.Tensor]</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.postprocess">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">postprocess</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">preds</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">img</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">orig_imgs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#postprocess"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.postprocess" title="Link to this definition"></a></dt>
<dd><p>Perform post-processing on the predictions.</p>
<p>This function applies post-processing to the predictions,
including Non-Maximum Suppression (NMS) and scaling of bounding boxes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>preds</strong> (<em>list</em><em> of </em><em>numpy.ndarray</em>) – A list of prediction arrays from the object detection model.</p></li>
<li><p><strong>img</strong> (<em>numpy.ndarray</em>) – The input image on which the predictions were made.</p></li>
<li><p><strong>orig_imgs</strong> (<em>numpy.ndarray</em><em> or </em><em>list</em><em> of </em><em>numpy.ndarray</em>) – The original image(s) before any preprocessing.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A list of post-processed prediction arrays, each containing bounding
boxes and associated information.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>list of numpy.ndarray</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.preprocess">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">preprocess</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">im</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imgsz</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">640</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_stride</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">32</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_pt</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#preprocess"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.preprocess" title="Link to this definition"></a></dt>
<dd><p>Preprocess a batch of images for inference.</p>
<p>This function preprocesses a batch of images for inference by
resizing, transforming, and normalizing them.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>im</strong> (<em>torch.Tensor</em><em> or </em><em>list</em><em> of </em><em>torch.Tensor</em>) – An input image or a batch of images to be preprocessed.</p></li>
<li><p><strong>imgsz</strong> (<em>int</em><em>, </em><em>optional</em>) – The target size of the images after preprocessing.
Default is 640.</p></li>
<li><p><strong>model_stride</strong> (<em>int</em><em>, </em><em>optional</em>) – The stride value used for padding calculation when <cite>auto</cite> is True
in <cite>compute_transform</cite>. Default is 32.</p></li>
<li><p><strong>model_pt</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, the function automatically calculates the padding to
maintain the same shapes for all input images in the batch.
Default is True.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The preprocessed batch of images as a torch.Tensor with shape
(n, 3, h, w), where n is the number of images, 3 represents the
RGB channels, and h and w are the height and width of the images.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>torch.Tensor</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.scale_boxes">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">scale_boxes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">img1_shape</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">boxes</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">img0_shape</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ratio_pad</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#scale_boxes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.scale_boxes" title="Link to this definition"></a></dt>
<dd><p>Scale bounding boxes to match a different image shape.</p>
<p>This function scales bounding boxes to match a different image
shape while maintaining their aspect ratio.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>img1_shape</strong> (<em>tuple</em>) – A tuple representing the shape of the target image in the
format (height, width).</p></li>
<li><p><strong>boxes</strong> (<em>torch.Tensor</em>) – A tensor containing bounding boxes in the
format [x1, y1, x2, y2].</p></li>
<li><p><strong>img0_shape</strong> (<em>tuple</em>) – A tuple representing the shape of the source image in the
format (height, width).</p></li>
<li><p><strong>ratio_pad</strong> (<em>float</em><em> or </em><em>None</em><em>, </em><em>optional</em>) – A scaling factor for the bounding boxes.
If None, it is calculated based on the aspect ratio of the images.
Default is None.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>A tensor containing the scaled bounding boxes</strong></p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>torch.Tensor</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="micromind.utils.yolo.xywh2xyxy">
<span class="sig-prename descclassname"><span class="pre">micromind.utils.yolo.</span></span><span class="sig-name descname"><span class="pre">xywh2xyxy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/micromind/utils/yolo.html#xywh2xyxy"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#micromind.utils.yolo.xywh2xyxy" title="Link to this definition"></a></dt>
<dd><p>Convert bounding box coordinates from (x, y, width, height)
to (x1, y1, x2, y2) format.</p>
<p>This function converts bounding box coordinates from the format
(center_x, center_y, width, height) to the format (x1, y1, x2, y2),
where (x1, y1) represents the top-left corner and (x2, y2) represents
the bottom-right corner of the bounding box.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>x</strong> (<em>torch.Tensor</em>) – A tensor containing bounding box coordinates in the
format (center_x, center_y, width, height).</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A tensor containing bounding box coordinates in the
format (x1, y1, x2, y2).</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>torch.Tensor</p>
</dd>
</dl>
</dd></dl>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="micromind.networks.html" class="btn btn-neutral float-left" title="micromind.networks package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="contribution.html" class="btn btn-neutral float-right" title="Guide for Contributing to micromind" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>© Copyright 2023, MicroMind.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>