forked from nudt_dsp/netrans
276 lines
15 KiB
HTML
276 lines
15 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="zh" data-content_root="./">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<title>netrans_py 使用 — netrans 0.1 文档</title>
|
||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
|
||
<link rel="stylesheet" type="text/css" href="_static/basic.css?v=b08954a9" />
|
||
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=27fed22d" />
|
||
<script src="_static/documentation_options.js?v=52efc512"></script>
|
||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<link rel="index" title="索引" href="genindex.html" />
|
||
<link rel="search" title="搜索" href="search.html" />
|
||
<link rel="next" title="附录" href="appendix.html" />
|
||
<link rel="prev" title="netrans_cli 使用" href="netrans_cli.html" />
|
||
|
||
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
|
||
|
||
|
||
|
||
|
||
|
||
</head><body>
|
||
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
|
||
|
||
<div class="body" role="main">
|
||
|
||
<section id="netrans-py">
|
||
<h1>netrans_py 使用<a class="headerlink" href="#netrans-py" title="Link to this heading">¶</a></h1>
|
||
<p>netrans_py 为 Netrans 编译器的 python 调用接口。
|
||
使用 ntrans_py 完成模型转换的步骤如下:</p>
|
||
<ol class="simple">
|
||
<li><p>导入模型</p></li>
|
||
<li><p>生成并修改前处理配置文件 *_inputmeta.yml</p></li>
|
||
<li><p>量化模型</p></li>
|
||
<li><p>导出模型</p></li>
|
||
</ol>
|
||
<section id="netrans">
|
||
<h2>Netrans 类<a class="headerlink" href="#netrans" title="Link to this heading">¶</a></h2>
|
||
<p>创建 Netrans</p>
|
||
<p>描述: 实例化 Netrans 类。
|
||
代码示例:</p>
|
||
<div class="highlight-py3 notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">netrans</span><span class="w"> </span><span class="kn">import</span> <span class="n">Netrans</span>
|
||
<span class="n">yolo_netrans</span> <span class="o">=</span> <span class="n">Netrans</span><span class="p">(</span><span class="s2">"../examples/darknet/yolov4_tiny"</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>参数</p>
|
||
<table border="1" class="docutils">
|
||
<thead>
|
||
<tr>
|
||
<th style="text-align: left;">参数名</th>
|
||
<th>类型</th>
|
||
<th>说明</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td style="text-align: left;">model_path</td>
|
||
<td>str</td>
|
||
<td>第一位置参数,模型文件的路径</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: left;">netans</td>
|
||
<td>str</td>
|
||
<td>如果 NETRANS_PATH 没有设置,可通过该参数指定netrans的路径</td>
|
||
</tr>
|
||
</tbody>
|
||
</table><p>输出返回:
|
||
无。</p>
|
||
<!-- <font color="#dd0000">注意:</font> 模型目录准备需要和netrans_cli一致,具体数据准备要求见[introduction](./introduction.md)。 --></section>
|
||
<section id="netrans-import">
|
||
<h2>Netrans.import 模型导入<a class="headerlink" href="#netrans-import" title="Link to this heading">¶</a></h2>
|
||
<p>描述: 将模型转换成 Pnna 支持的格式。
|
||
代码示例:</p>
|
||
<div class="highlight-py3 notranslate"><div class="highlight"><pre><span></span><span class="n">yolo_netrans</span><span class="o">.</span><span class="n">import</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>参数:
|
||
无。</p>
|
||
<p>输出返回:
|
||
无。
|
||
在工程目录下生成 Pnna 支持的模型格式,以.json结尾的模型文件和 .data结尾的权重文件。</p>
|
||
</section>
|
||
<section id="netrans-config">
|
||
<h2>Netrans.config 预处理配置文件生成<a class="headerlink" href="#netrans-config" title="Link to this heading">¶</a></h2>
|
||
<p>描述: 将模型转换成 Pnna 支持的格式。
|
||
代码示例:</p>
|
||
<div class="highlight-py3 notranslate"><div class="highlight"><pre><span></span><span class="n">yolo_netrans</span><span class="o">.</span><span class="n">config</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>参数:</p>
|
||
<div class="highlight-{table} notranslate"><div class="highlight"><pre><span></span>:widths: 20, 30, 50
|
||
:align: left
|
||
| 参数名 | 类型 | 说明 |
|
||
|:---| -- | -- |
|
||
|inputmeta| bool,str, [Fasle, True, "inputmeta_filepath"] | 指定 inputmeta, 默认为False。 <br/> 如果为False,则会生成inputmeta模板,可使用mean、scale、reverse_channel 配合修改常用参数。<br/>如果已有现成的 inputmeta 文件,则可通过该参数进行指定,也可使用True, 则会自动索引 model_name_inputmeta.yml |
|
||
|mean| float, int, list | 设置预处理中 normalize 的 mean 参数 |
|
||
|scale| float, int, list | 设置预处理中 normalize 的 scale 参数 |
|
||
|reverse_channel | bool | 设置预处理中的 reverse_channel 参数 |
|
||
</pre></div>
|
||
</div>
|
||
<p>输出返回:
|
||
无。</p>
|
||
</section>
|
||
<section id="netrans-quantize">
|
||
<h2>Netrans.quantize 模型量化<a class="headerlink" href="#netrans-quantize" title="Link to this heading">¶</a></h2>
|
||
<p>描述: 对模型生成量化配置文件。
|
||
代码示例:</p>
|
||
<div class="highlight-py3 notranslate"><div class="highlight"><pre><span></span><span class="n">yolo_netrans</span><span class="o">.</span><span class="n">quantize</span><span class="p">(</span><span class="s2">"uint8"</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>参数:</p>
|
||
<div class="highlight-{table} notranslate"><div class="highlight"><pre><span></span>:widths: 20, 30, 50
|
||
:align: left
|
||
| 参数名 | 类型 | 说明 |
|
||
|:---| -- | -- |
|
||
|quantize_type| str| 第一位置参数,模型量化类型,仅支持 "uint8", "int8", "int16"|
|
||
</pre></div>
|
||
</div>
|
||
<p>输出返回:
|
||
无。</p>
|
||
</section>
|
||
<section id="netrans-export">
|
||
<h2>Netrans.export 模型导出<a class="headerlink" href="#netrans-export" title="Link to this heading">¶</a></h2>
|
||
<p>描述: 对模型生成量化配置文件。
|
||
代码示例:</p>
|
||
<div class="highlight-py3 notranslate"><div class="highlight"><pre><span></span><span class="n">yolo_netrans</span><span class="o">.</span><span class="n">export</span><span class="p">()</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>参数:
|
||
无。</p>
|
||
<p>输出返回:
|
||
无。请在目录 “wksp/*/” 下检查是否生成nbg文件。</p>
|
||
</section>
|
||
<section id="netrans-model2nbg-nbg">
|
||
<h2>Netrans.model2nbg 模型生成nbg文件<a class="headerlink" href="#netrans-model2nbg-nbg" title="Link to this heading">¶</a></h2>
|
||
<p>描述: 模型导入、量化、及nbg文件生产
|
||
代码示例:</p>
|
||
<div class="highlight-py3 notranslate"><div class="highlight"><pre><span></span> <span class="c1"># 无预处理</span>
|
||
<span class="n">yolo_netrans</span><span class="o">.</span><span class="n">model2nbg</span><span class="p">(</span><span class="n">quantize_type</span><span class="o">=</span><span class="s1">'uint8'</span><span class="p">)</span>
|
||
<span class="c1"># 需要对数据进行normlize, menas为128, scale 为 0.0039</span>
|
||
<span class="n">yolo_netrans</span><span class="o">.</span><span class="n">model2nbg</span><span class="p">(</span><span class="n">quantize_type</span><span class="o">=</span><span class="s1">'uint8'</span><span class="p">,</span><span class="n">mean</span><span class="o">=</span><span class="mi">128</span><span class="p">,</span> <span class="n">scale</span> <span class="o">=</span> <span class="mf">0.0039</span><span class="p">)</span>
|
||
<span class="c1"># 需要对数据分通道进行normlize, menas为128,127,125,scale 为 0.0039, 且reverse_channel 为 True </span>
|
||
<span class="n">yolo_netrans</span><span class="o">.</span><span class="n">model2nbg</span><span class="p">(</span><span class="n">quantize_type</span><span class="o">=</span><span class="s1">'uint8'</span><span class="n">mean</span><span class="o">=</span><span class="p">[</span><span class="mi">128</span><span class="p">,</span> <span class="mi">127</span><span class="p">,</span> <span class="mi">125</span><span class="p">],</span> <span class="n">scale</span> <span class="o">=</span> <span class="mf">0.0039</span><span class="p">,</span> <span class="n">reverse_channel</span><span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
|
||
<span class="c1"># 已经进行初始化设置</span>
|
||
<span class="n">yolo_netrans</span><span class="o">.</span><span class="n">model2nbg</span><span class="p">(</span><span class="n">quantize_type</span><span class="o">=</span><span class="s1">'uint8'</span><span class="p">,</span> <span class="n">inputmeta</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>参数</p>
|
||
<div class="highlight-{table} notranslate"><div class="highlight"><pre><span></span>:widths: 20, 30, 50
|
||
:align: left
|
||
| 参数名 | 类型 | 说明 |
|
||
|:---| -- | -- |
|
||
|quantize_type| str, ["uint8", "int8", "int16" ] | 量化类型,将模型量化成该参数指定的类型 |
|
||
|inputmeta| bool,str, [Fasle, True, "inputmeta_filepath"] | 指定 inputmeta, 默认为False。 <br/> 如果为False,则会生成inputmeta模板,可使用mean、scale、reverse_channel 配合修改常用参数。<br/>如果已有现成的 inputmeta 文件,则可通过该参数进行指定,也可使用True, 则会自动索引 model_name_inputmeta.yml |
|
||
|mean| float, int, list | 设置预处理中 normalize 的 mean 参数 |
|
||
|scale| float, int, list | 设置预处理中 normalize 的 scale 参数 |
|
||
|reverse_channel | bool | 设置预处理中的 reverse_channel 参数 |
|
||
</pre></div>
|
||
</div>
|
||
<p>输出返回:
|
||
请在目录 “wksp/*/” 下检查是否生成nbg文件。</p>
|
||
</section>
|
||
<section id="id1">
|
||
<h2>使用示例<a class="headerlink" href="#id1" title="Link to this heading">¶</a></h2>
|
||
<div class="highlight-py3 notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">nertans</span><span class="w"> </span><span class="kn">import</span> <span class="n">Netrans</span>
|
||
<span class="n">model_path</span> <span class="o">=</span> <span class="s1">'example/darknet/yolov4_tiny'</span>
|
||
<span class="n">netrans_path</span> <span class="o">=</span> <span class="s2">"netrans/bin"</span> <span class="c1"># 如果进行了export定义申明,这一步可以不用</span>
|
||
|
||
<span class="c1"># 初始化netrans</span>
|
||
<span class="n">net</span> <span class="o">=</span> <span class="n">Netrans</span><span class="p">(</span><span class="n">model_path</span><span class="p">,</span><span class="n">netrans</span><span class="o">=</span><span class="n">netrans_path</span><span class="p">)</span>
|
||
<span class="c1"># 模型载入</span>
|
||
<span class="n">net</span><span class="o">.</span><span class="n">import</span><span class="p">()</span>
|
||
<span class="c1"># 配置预处理 normlize 的参数</span>
|
||
<span class="n">net</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">mean</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
|
||
<span class="c1"># 模型量化</span>
|
||
<span class="n">net</span><span class="o">.</span><span class="n">quantize</span><span class="p">(</span><span class="s2">"uint8"</span><span class="p">)</span>
|
||
<span class="c1"># 模型导出</span>
|
||
<span class="n">net</span><span class="o">.</span><span class="n">export</span><span class="p">()</span>
|
||
|
||
<span class="c1"># 模型直接量化成 int16 并导出, 直接复用刚配置好的 inputmeta</span>
|
||
<span class="n">net</span><span class="o">.</span><span class="n">model2nbg</span><span class="p">(</span><span class="n">quantize_type</span> <span class="o">=</span> <span class="s2">"int16"</span><span class="p">,</span> <span class="n">inputmeta</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
||
<div class="sphinxsidebarwrapper">
|
||
<h1 class="logo"><a href="index.html">netrans</a></h1>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<search id="searchbox" style="display: none" role="search">
|
||
<div class="searchformwrapper">
|
||
<form class="search" action="search.html" method="get">
|
||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
|
||
<input type="submit" value="提交" />
|
||
</form>
|
||
</div>
|
||
</search>
|
||
<script>document.getElementById('searchbox').style.display = "block"</script><h3>导航</h3>
|
||
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="quick_start_guide.html">快速入门</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="netrans_cli.html">netrans_cli 使用</a></li>
|
||
<li class="toctree-l1 current"><a class="current reference internal" href="#">netrans_py 使用</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="#netrans">Netrans 类</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#netrans-import">Netrans.import 模型导入</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#netrans-config">Netrans.config 预处理配置文件生成</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#netrans-quantize">Netrans.quantize 模型量化</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#netrans-export">Netrans.export 模型导出</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#netrans-model2nbg-nbg">Netrans.model2nbg 模型生成nbg文件</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#id1">使用示例</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="appendix.html">附录</a></li>
|
||
</ul>
|
||
|
||
<div class="relations">
|
||
<h3>Related Topics</h3>
|
||
<ul>
|
||
<li><a href="index.html">Documentation overview</a><ul>
|
||
<li>Previous: <a href="netrans_cli.html" title="上一章">netrans_cli 使用</a></li>
|
||
<li>Next: <a href="appendix.html" title="下一章">附录</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="footer">
|
||
©2025, ccyh.
|
||
|
||
|
|
||
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.2.3</a>
|
||
& <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
||
|
||
|
|
||
<a href="_sources/netrans_py.md.txt"
|
||
rel="nofollow">Page source</a>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</body>
|
||
</html> |