deep-person-reid/pkg/utils.html

665 lines
44 KiB
HTML
Raw Normal View History

2019-03-25 01:22:43 +08:00
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
2019-10-24 00:21:41 +08:00
<title>torchreid.utils &mdash; torchreid 1.0.6 documentation</title>
2019-03-25 01:22:43 +08:00
<script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Awesome-ReID" href="../AWESOME_REID.html" />
<link rel="prev" title="torchreid.optim" href="optim.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"> torchreid
</a>
<div class="version">
2019-10-24 00:21:41 +08:00
1.0.6
2019-03-25 01:22:43 +08:00
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="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="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../user_guide.html">How-to</a></li>
<li class="toctree-l1"><a class="reference internal" href="../datasets.html">Datasets</a></li>
<li class="toctree-l1"><a class="reference internal" href="../evaluation.html">Evaluation</a></li>
</ul>
<p class="caption"><span class="caption-text">Package Reference</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="data.html">torchreid.data</a></li>
<li class="toctree-l1"><a class="reference internal" href="engine.html">torchreid.engine</a></li>
<li class="toctree-l1"><a class="reference internal" href="losses.html">torchreid.losses</a></li>
<li class="toctree-l1"><a class="reference internal" href="metrics.html">torchreid.metrics</a></li>
<li class="toctree-l1"><a class="reference internal" href="models.html">torchreid.models</a></li>
<li class="toctree-l1"><a class="reference internal" href="optim.html">torchreid.optim</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">torchreid.utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#module-torchreid.utils.avgmeter">Average Meter</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-torchreid.utils.loggers">Loggers</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-torchreid.utils.tools">Generic Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-torchreid.utils.reidtools">ReID Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-torchreid.utils.torchtools">Torch Tools</a></li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">Resources</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../AWESOME_REID.html">Awesome-ReID</a></li>
<li class="toctree-l1"><a class="reference internal" href="../MODEL_ZOO.html">Model Zoo</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">torchreid</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html">Docs</a> &raquo;</li>
<li>torchreid.utils</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/pkg/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">
<div class="section" id="torchreid-utils">
<span id="id1"></span><h1>torchreid.utils<a class="headerlink" href="#torchreid-utils" title="Permalink to this headline"></a></h1>
<div class="section" id="module-torchreid.utils.avgmeter">
<span id="average-meter"></span><h2>Average Meter<a class="headerlink" href="#module-torchreid.utils.avgmeter" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="torchreid.utils.avgmeter.AverageMeter">
2019-11-21 07:07:11 +08:00
<em class="property">class </em><code class="sig-prename descclassname">torchreid.utils.avgmeter.</code><code class="sig-name descname">AverageMeter</code><a class="reference internal" href="../_modules/torchreid/utils/avgmeter.html#AverageMeter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.avgmeter.AverageMeter" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Computes and stores the average and current value.</p>
2019-11-21 07:07:11 +08:00
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="c1"># Initialize a meter to record loss</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">losses</span> <span class="o">=</span> <span class="n">AverageMeter</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Update meter after every minibatch update</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">losses</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">loss_value</span><span class="p">,</span> <span class="n">batch_size</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
</div>
<div class="section" id="module-torchreid.utils.loggers">
<span id="loggers"></span><h2>Loggers<a class="headerlink" href="#module-torchreid.utils.loggers" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="torchreid.utils.loggers.Logger">
2019-11-21 07:07:11 +08:00
<em class="property">class </em><code class="sig-prename descclassname">torchreid.utils.loggers.</code><code class="sig-name descname">Logger</code><span class="sig-paren">(</span><em class="sig-param">fpath=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/loggers.html#Logger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.loggers.Logger" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Writes console output to external text file.</p>
<p>Imported from <a class="reference external" href="https://github.com/Cysu/open-reid/blob/master/reid/utils/logging.py">https://github.com/Cysu/open-reid/blob/master/reid/utils/logging.py</a></p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>fpath</strong> (<em>str</em>) directory to save logging file.</p>
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sys</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">os</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">os.path</span> <span class="k">as</span> <span class="nn">osp</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">Logger</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">save_dir</span> <span class="o">=</span> <span class="s1">&#39;log/resnet50-softmax-market1501&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">log_name</span> <span class="o">=</span> <span class="s1">&#39;train.log&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">Logger</span><span class="p">(</span><span class="n">osp</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">log_name</span><span class="p">))</span>
</pre></div>
</div>
2019-05-22 23:18:39 +08:00
</dd>
</dl>
2019-03-25 01:22:43 +08:00
</dd></dl>
<dl class="class">
<dt id="torchreid.utils.loggers.RankLogger">
2019-11-21 07:07:11 +08:00
<em class="property">class </em><code class="sig-prename descclassname">torchreid.utils.loggers.</code><code class="sig-name descname">RankLogger</code><span class="sig-paren">(</span><em class="sig-param">sources</em>, <em class="sig-param">targets</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/loggers.html#RankLogger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.loggers.RankLogger" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Records the rank1 matching accuracy obtained for each
test dataset at specified evaluation steps and provides a function
to show the summarized results, which are convenient for analysis.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sources</strong> (<em>str</em><em> or </em><em>list</em>) source dataset name(s).</p></li>
<li><p><strong>targets</strong> (<em>str</em><em> or </em><em>list</em>) target dataset name(s).</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">RankLogger</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="s1">&#39;market1501&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">t</span> <span class="o">=</span> <span class="s1">&#39;market1501&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span> <span class="o">=</span> <span class="n">RankLogger</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mf">0.7</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mf">0.9</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">show_summary</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># You will see:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># =&gt; Show performance summary</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># market1501 (source)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 10 rank1 50.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 20 rank1 70.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 30 rank1 90.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># If there are multiple test datasets</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">t</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;market1501&#39;</span><span class="p">,</span> <span class="s1">&#39;dukemtmcreid&#39;</span><span class="p">]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span> <span class="o">=</span> <span class="n">RankLogger</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">t</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="mi">10</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="mi">20</span><span class="p">,</span> <span class="mf">0.7</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="mi">30</span><span class="p">,</span> <span class="mf">0.9</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">10</span><span class="p">,</span> <span class="mf">0.1</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">20</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">t</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">30</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ranklogger</span><span class="o">.</span><span class="n">show_summary</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># You can see:</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># =&gt; Show performance summary</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># market1501 (source)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 10 rank1 50.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 20 rank1 70.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 30 rank1 90.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># dukemtmcreid (target)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 10 rank1 10.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 20 rank1 20.0%</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># - epoch 30 rank1 30.0%</span>
</pre></div>
</div>
</dd>
</dl>
<dl class="method">
<dt id="torchreid.utils.loggers.RankLogger.show_summary">
2019-11-21 07:07:11 +08:00
<code class="sig-name descname">show_summary</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/loggers.html#RankLogger.show_summary"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.loggers.RankLogger.show_summary" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Shows saved results.</p>
</dd></dl>
<dl class="method">
<dt id="torchreid.utils.loggers.RankLogger.write">
2019-11-21 07:07:11 +08:00
<code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param">name</em>, <em class="sig-param">epoch</em>, <em class="sig-param">rank1</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/loggers.html#RankLogger.write"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.loggers.RankLogger.write" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Writes result.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) dataset name.</p></li>
<li><p><strong>epoch</strong> (<em>int</em>) current epoch.</p></li>
<li><p><strong>rank1</strong> (<em>float</em>) rank1 result.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
2019-03-25 01:22:43 +08:00
</dd></dl>
</dd></dl>
</div>
<div class="section" id="module-torchreid.utils.tools">
<span id="generic-tools"></span><h2>Generic Tools<a class="headerlink" href="#module-torchreid.utils.tools" title="Permalink to this headline"></a></h2>
<dl class="function">
<dt id="torchreid.utils.tools.mkdir_if_missing">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.tools.</code><code class="sig-name descname">mkdir_if_missing</code><span class="sig-paren">(</span><em class="sig-param">dirname</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/tools.html#mkdir_if_missing"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.tools.mkdir_if_missing" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Creates dirname if it is missing.</p>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.tools.check_isfile">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.tools.</code><code class="sig-name descname">check_isfile</code><span class="sig-paren">(</span><em class="sig-param">fpath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/tools.html#check_isfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.tools.check_isfile" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Checks if the given path is a file.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>fpath</strong> (<em>str</em>) file path.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>bool</p>
</dd>
</dl>
2019-03-25 01:22:43 +08:00
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.tools.read_json">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.tools.</code><code class="sig-name descname">read_json</code><span class="sig-paren">(</span><em class="sig-param">fpath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/tools.html#read_json"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.tools.read_json" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Reads json file from a path.</p>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.tools.write_json">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.tools.</code><code class="sig-name descname">write_json</code><span class="sig-paren">(</span><em class="sig-param">obj</em>, <em class="sig-param">fpath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/tools.html#write_json"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.tools.write_json" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Writes to a json file.</p>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.tools.download_url">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.tools.</code><code class="sig-name descname">download_url</code><span class="sig-paren">(</span><em class="sig-param">url</em>, <em class="sig-param">dst</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/tools.html#download_url"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.tools.download_url" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Downloads file from a url to a destination.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>url</strong> (<em>str</em>) url to download file.</p></li>
<li><p><strong>dst</strong> (<em>str</em>) destination path.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
2019-03-25 01:22:43 +08:00
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.tools.read_image">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.tools.</code><code class="sig-name descname">read_image</code><span class="sig-paren">(</span><em class="sig-param">path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/tools.html#read_image"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.tools.read_image" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Reads image from path using <code class="docutils literal notranslate"><span class="pre">PIL.Image</span></code>.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>path</strong> (<em>str</em>) path to an image.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>PIL image</p>
</dd>
</dl>
2019-03-25 01:22:43 +08:00
</dd></dl>
2019-05-24 23:30:24 +08:00
<dl class="function">
<dt id="torchreid.utils.tools.collect_env_info">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.tools.</code><code class="sig-name descname">collect_env_info</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/tools.html#collect_env_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.tools.collect_env_info" title="Permalink to this definition"></a></dt>
2019-05-24 23:30:24 +08:00
<dd><p>Returns env info as a string.</p>
<p>Code source: github.com/facebookresearch/maskrcnn-benchmark</p>
</dd></dl>
2019-03-25 01:22:43 +08:00
</div>
<div class="section" id="module-torchreid.utils.reidtools">
<span id="reid-tools"></span><h2>ReID Tools<a class="headerlink" href="#module-torchreid.utils.reidtools" title="Permalink to this headline"></a></h2>
<dl class="function">
<dt id="torchreid.utils.reidtools.visualize_ranked_results">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.reidtools.</code><code class="sig-name descname">visualize_ranked_results</code><span class="sig-paren">(</span><em class="sig-param">distmat</em>, <em class="sig-param">dataset</em>, <em class="sig-param">data_type</em>, <em class="sig-param">width=128</em>, <em class="sig-param">height=256</em>, <em class="sig-param">save_dir=''</em>, <em class="sig-param">topk=10</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/reidtools.html#visualize_ranked_results"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.reidtools.visualize_ranked_results" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Visualizes ranked results.</p>
<p>Supports both image-reid and video-reid.</p>
2019-08-04 06:16:36 +08:00
<p>For image-reid, ranks will be plotted in a single figure. For video-reid, ranks will be
saved in folders each containing a tracklet.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>distmat</strong> (<em>numpy.ndarray</em>) distance matrix of shape (num_query, num_gallery).</p></li>
<li><p><strong>dataset</strong> (<em>tuple</em>) a 2-tuple containing (query, gallery), each of which contains
tuples of (img_path(s), pid, camid).</p></li>
<li><p><strong>data_type</strong> (<em>str</em>) “image” or “video”.</p></li>
<li><p><strong>width</strong> (<em>int</em><em>, </em><em>optional</em>) resized image width. Default is 128.</p></li>
<li><p><strong>height</strong> (<em>int</em><em>, </em><em>optional</em>) resized image height. Default is 256.</p></li>
<li><p><strong>save_dir</strong> (<em>str</em>) directory to save output images.</p></li>
<li><p><strong>topk</strong> (<em>int</em><em>, </em><em>optional</em>) denoting top-k images in the rank list to be visualized.
Default is 10.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
2019-03-25 01:22:43 +08:00
</dd></dl>
</div>
<div class="section" id="module-torchreid.utils.torchtools">
<span id="torch-tools"></span><h2>Torch Tools<a class="headerlink" href="#module-torchreid.utils.torchtools" title="Permalink to this headline"></a></h2>
<dl class="function">
<dt id="torchreid.utils.torchtools.save_checkpoint">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.torchtools.</code><code class="sig-name descname">save_checkpoint</code><span class="sig-paren">(</span><em class="sig-param">state</em>, <em class="sig-param">save_dir</em>, <em class="sig-param">is_best=False</em>, <em class="sig-param">remove_module_from_keys=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/torchtools.html#save_checkpoint"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.torchtools.save_checkpoint" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Saves checkpoint.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>state</strong> (<em>dict</em>) dictionary.</p></li>
<li><p><strong>save_dir</strong> (<em>str</em>) directory to save checkpoint.</p></li>
<li><p><strong>is_best</strong> (<em>bool</em><em>, </em><em>optional</em>) if True, this checkpoint will be copied and named
<code class="docutils literal notranslate"><span class="pre">model-best.pth.tar</span></code>. Default is False.</p></li>
<li><p><strong>remove_module_from_keys</strong> (<em>bool</em><em>, </em><em>optional</em>) whether to remove “module.”
from layer names. Default is False.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">state</span> <span class="o">=</span> <span class="p">{</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span> <span class="s1">&#39;state_dict&#39;</span><span class="p">:</span> <span class="n">model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">(),</span>
<span class="gp">&gt;&gt;&gt; </span> <span class="s1">&#39;epoch&#39;</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
<span class="gp">&gt;&gt;&gt; </span> <span class="s1">&#39;rank1&#39;</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span>
<span class="gp">&gt;&gt;&gt; </span> <span class="s1">&#39;optimizer&#39;</span><span class="p">:</span> <span class="n">optimizer</span><span class="o">.</span><span class="n">state_dict</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="p">}</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">save_checkpoint</span><span class="p">(</span><span class="n">state</span><span class="p">,</span> <span class="s1">&#39;log/my_model&#39;</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.torchtools.load_checkpoint">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.torchtools.</code><code class="sig-name descname">load_checkpoint</code><span class="sig-paren">(</span><em class="sig-param">fpath</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/torchtools.html#load_checkpoint"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.torchtools.load_checkpoint" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Loads checkpoint.</p>
<p><code class="docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code> can be well handled, which means
python2-saved files can be read from python3.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>fpath</strong> (<em>str</em>) path to checkpoint.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>dict</p>
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">load_checkpoint</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">fpath</span> <span class="o">=</span> <span class="s1">&#39;log/my_model/model.pth.tar-10&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">checkpoint</span> <span class="o">=</span> <span class="n">load_checkpoint</span><span class="p">(</span><span class="n">fpath</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.torchtools.resume_from_checkpoint">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.torchtools.</code><code class="sig-name descname">resume_from_checkpoint</code><span class="sig-paren">(</span><em class="sig-param">fpath</em>, <em class="sig-param">model</em>, <em class="sig-param">optimizer=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/torchtools.html#resume_from_checkpoint"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.torchtools.resume_from_checkpoint" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Resumes training from a checkpoint.</p>
<p>This will load (1) model weights and (2) <code class="docutils literal notranslate"><span class="pre">state_dict</span></code>
of optimizer if <code class="docutils literal notranslate"><span class="pre">optimizer</span></code> is not None.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>fpath</strong> (<em>str</em>) path to checkpoint.</p></li>
<li><p><strong>model</strong> (<em>nn.Module</em>) model.</p></li>
<li><p><strong>optimizer</strong> (<em>Optimizer</em><em>, </em><em>optional</em>) an Optimizer.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>start_epoch.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">resume_from_checkpoint</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">fpath</span> <span class="o">=</span> <span class="s1">&#39;log/my_model/model.pth.tar-10&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">start_epoch</span> <span class="o">=</span> <span class="n">resume_from_checkpoint</span><span class="p">(</span><span class="n">fpath</span><span class="p">,</span> <span class="n">model</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.torchtools.open_all_layers">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.torchtools.</code><code class="sig-name descname">open_all_layers</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/torchtools.html#open_all_layers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.torchtools.open_all_layers" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Opens all layers in model for training.</p>
2019-11-21 07:07:11 +08:00
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">open_all_layers</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">open_all_layers</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.torchtools.open_specified_layers">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.torchtools.</code><code class="sig-name descname">open_specified_layers</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">open_layers</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/torchtools.html#open_specified_layers"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.torchtools.open_specified_layers" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Opens specified layers in model for training while keeping
other layers frozen.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>model</strong> (<em>nn.Module</em>) neural net model.</p></li>
<li><p><strong>open_layers</strong> (<em>str</em><em> or </em><em>list</em>) layers open for training.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">open_specified_layers</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Only model.classifier will be updated.</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">open_layers</span> <span class="o">=</span> <span class="s1">&#39;classifier&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">open_specified_layers</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">open_layers</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c1"># Only model.fc and model.classifier will be updated.</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">open_layers</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;fc&#39;</span><span class="p">,</span> <span class="s1">&#39;classifier&#39;</span><span class="p">]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">open_specified_layers</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">open_layers</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.torchtools.count_num_param">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.torchtools.</code><code class="sig-name descname">count_num_param</code><span class="sig-paren">(</span><em class="sig-param">model</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/torchtools.html#count_num_param"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.torchtools.count_num_param" title="Permalink to this definition"></a></dt>
2019-05-22 23:18:39 +08:00
<dd><p>Counts number of parameters in a model while ignoring <code class="docutils literal notranslate"><span class="pre">self.classifier</span></code>.</p>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>model</strong> (<em>nn.Module</em>) network model.</p>
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">count_num_param</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">model_size</span> <span class="o">=</span> <span class="n">count_num_param</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
2019-05-22 23:18:39 +08:00
<div class="admonition warning">
2019-11-21 07:07:11 +08:00
<p class="admonition-title">Warning</p>
<p>This method is deprecated in favor of
2019-05-22 23:18:39 +08:00
<code class="docutils literal notranslate"><span class="pre">torchreid.utils.compute_model_complexity</span></code>.</p>
</div>
2019-03-25 01:22:43 +08:00
</dd></dl>
<dl class="function">
<dt id="torchreid.utils.torchtools.load_pretrained_weights">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.torchtools.</code><code class="sig-name descname">load_pretrained_weights</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">weight_path</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/torchtools.html#load_pretrained_weights"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.torchtools.load_pretrained_weights" title="Permalink to this definition"></a></dt>
2019-03-25 01:22:43 +08:00
<dd><p>Loads pretrianed weights to model.</p>
2019-11-21 07:07:11 +08:00
<dl class="simple">
<dt>Features::</dt><dd><ul class="simple">
<li><p>Incompatible layers (unmatched in name or size) will be ignored.</p></li>
<li><p>Can automatically deal with keys containing “module.”.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
</dd>
</dl>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>model</strong> (<em>nn.Module</em>) network model.</p></li>
<li><p><strong>weight_path</strong> (<em>str</em>) path to pretrained weights.</p></li>
2019-03-25 01:22:43 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid.utils</span> <span class="k">import</span> <span class="n">load_pretrained_weights</span>
2019-03-25 01:22:43 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">weight_path</span> <span class="o">=</span> <span class="s1">&#39;log/my_model/model-best.pth.tar&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">load_pretrained_weights</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">weight_path</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
2019-05-22 23:18:39 +08:00
<span class="target" id="module-torchreid.utils.model_complexity"></span><dl class="function">
<dt id="torchreid.utils.model_complexity.compute_model_complexity">
2019-11-21 07:07:11 +08:00
<code class="sig-prename descclassname">torchreid.utils.model_complexity.</code><code class="sig-name descname">compute_model_complexity</code><span class="sig-paren">(</span><em class="sig-param">model</em>, <em class="sig-param">input_size</em>, <em class="sig-param">verbose=False</em>, <em class="sig-param">only_conv_linear=True</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/torchreid/utils/model_complexity.html#compute_model_complexity"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#torchreid.utils.model_complexity.compute_model_complexity" title="Permalink to this definition"></a></dt>
2019-05-22 23:18:39 +08:00
<dd><p>Returns number of parameters and FLOPs.</p>
<div class="admonition note">
2019-11-21 07:07:11 +08:00
<p class="admonition-title">Note</p>
<p>(1) this function only provides an estimate of the theoretical time complexity
2019-05-23 05:23:33 +08:00
rather than the actual running time which depends on implementations and hardware,
and (2) the FLOPs is only counted for layers that are used at test time. This means
that redundant layers such as person ID classification layer will be ignored as it
is discarded when doing feature extraction. Note that the inference graph depends on
how you construct the computations in <code class="docutils literal notranslate"><span class="pre">forward()</span></code>.</p>
2019-05-22 23:18:39 +08:00
</div>
2019-11-21 07:07:11 +08:00
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>model</strong> (<em>nn.Module</em>) network model.</p></li>
<li><p><strong>input_size</strong> (<em>tuple</em>) input size, e.g. (1, 3, 256, 128).</p></li>
<li><p><strong>verbose</strong> (<em>bool</em><em>, </em><em>optional</em>) shows detailed complexity of
each module. Default is False.</p></li>
<li><p><strong>only_conv_linear</strong> (<em>bool</em><em>, </em><em>optional</em>) only considers convolution
2019-05-22 23:18:39 +08:00
and linear layers when counting flops. Default is True.
2019-11-21 07:07:11 +08:00
If set to False, flops of all layers will be counted.</p></li>
2019-05-22 23:18:39 +08:00
</ul>
2019-11-21 07:07:11 +08:00
</dd>
</dl>
<dl>
<dt>Examples::</dt><dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">torchreid</span> <span class="k">import</span> <span class="n">models</span><span class="p">,</span> <span class="n">utils</span>
2019-05-22 23:18:39 +08:00
<span class="gp">&gt;&gt;&gt; </span><span class="n">model</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">build_model</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;resnet50&#39;</span><span class="p">,</span> <span class="n">num_classes</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">num_params</span><span class="p">,</span> <span class="n">flops</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">compute_model_complexity</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">256</span><span class="p">,</span> <span class="mi">128</span><span class="p">),</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
</dd>
</dl>
</dd></dl>
2019-03-25 01:22:43 +08:00
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../AWESOME_REID.html" class="btn btn-neutral float-right" title="Awesome-ReID" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="optim.html" class="btn btn-neutral float-left" title="torchreid.optim" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2019, Kaiyang Zhou
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>