项目文件夹

文件
Alexandre Défossez (autodoc) aeffa9f270 api_docs
2025-03-13 16:07:03 +00:00

455 行
25 KiB
HTML

此文件含有不可见的 Unicode 字符
此文件含有人类无法区分的不可见的 Unicode 字符,但可以由计算机进行不同的处理。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.5">
<title>audiocraft.quantization.base API documentation</title>
<meta name="description" content="Base class for all quantizers.">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source > summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible;min-width:max-content}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin:1em 0}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
/* Collapse source docstrings */
setTimeout(() => {
[...document.querySelectorAll('.hljs.language-python > .hljs-string')]
.filter(el => el.innerHTML.length > 200 && ['"""', "'''"].includes(el.innerHTML.substring(0, 3)))
.forEach(el => {
let d = document.createElement('details');
d.classList.add('hljs-string');
d.innerHTML = '<summary>"""</summary>' + el.innerHTML.substring(3);
el.replaceWith(d);
});
}, 100);
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>audiocraft.quantization.base</code></h1>
</header>
<section id="section-intro">
<p>Base class for all quantizers.</p>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="audiocraft.quantization.base.BaseQuantizer"><code class="flex name class">
<span>class <span class="ident">BaseQuantizer</span></span>
<span>(</span><span>*args, **kwargs)</span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class BaseQuantizer(nn.Module):
&#34;&#34;&#34;Base class for quantizers.
&#34;&#34;&#34;
def forward(self, x: torch.Tensor, frame_rate: int) -&gt; QuantizedResult:
&#34;&#34;&#34;
Given input tensor x, returns first the quantized (or approximately quantized)
representation along with quantized codes, bandwidth, and any penalty term for the loss.
Finally, this returns a dict of metrics to update logging etc.
Frame rate must be passed so that the bandwidth is properly computed.
&#34;&#34;&#34;
raise NotImplementedError()
def encode(self, x: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Encode a given input tensor with the specified sample rate at the given bandwidth.&#34;&#34;&#34;
raise NotImplementedError()
def decode(self, codes: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Decode the given codes to the quantized representation.&#34;&#34;&#34;
raise NotImplementedError()
@property
def total_codebooks(self):
&#34;&#34;&#34;Total number of codebooks.&#34;&#34;&#34;
raise NotImplementedError()
@property
def num_codebooks(self):
&#34;&#34;&#34;Number of active codebooks.&#34;&#34;&#34;
raise NotImplementedError()
def set_num_codebooks(self, n: int):
&#34;&#34;&#34;Set the number of active codebooks.&#34;&#34;&#34;
raise NotImplementedError()</code></pre>
</details>
<div class="desc"><p>Base class for quantizers.</p>
<p>Initializes internal Module state, shared by both nn.Module and ScriptModule.</p></div>
<h3>Ancestors</h3>
<ul class="hlist">
<li>torch.nn.modules.module.Module</li>
</ul>
<h3>Subclasses</h3>
<ul class="hlist">
<li><a title="audiocraft.quantization.base.DummyQuantizer" href="#audiocraft.quantization.base.DummyQuantizer">DummyQuantizer</a></li>
<li><a title="audiocraft.quantization.vq.ResidualVectorQuantizer" href="vq.html#audiocraft.quantization.vq.ResidualVectorQuantizer">ResidualVectorQuantizer</a></li>
</ul>
<h3>Class variables</h3>
<dl>
<dt id="audiocraft.quantization.base.BaseQuantizer.call_super_init"><code class="name">var <span class="ident">call_super_init</span> : bool</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.BaseQuantizer.dump_patches"><code class="name">var <span class="ident">dump_patches</span> : bool</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.BaseQuantizer.training"><code class="name">var <span class="ident">training</span> : bool</code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
<h3>Instance variables</h3>
<dl>
<dt id="audiocraft.quantization.base.BaseQuantizer.num_codebooks"><code class="name">prop <span class="ident">num_codebooks</span></code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def num_codebooks(self):
&#34;&#34;&#34;Number of active codebooks.&#34;&#34;&#34;
raise NotImplementedError()</code></pre>
</details>
<div class="desc"><p>Number of active codebooks.</p></div>
</dd>
<dt id="audiocraft.quantization.base.BaseQuantizer.total_codebooks"><code class="name">prop <span class="ident">total_codebooks</span></code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def total_codebooks(self):
&#34;&#34;&#34;Total number of codebooks.&#34;&#34;&#34;
raise NotImplementedError()</code></pre>
</details>
<div class="desc"><p>Total number of codebooks.</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="audiocraft.quantization.base.BaseQuantizer.decode"><code class="name flex">
<span>def <span class="ident">decode</span></span>(<span>self, codes: torch.Tensor) > torch.Tensor</span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def decode(self, codes: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Decode the given codes to the quantized representation.&#34;&#34;&#34;
raise NotImplementedError()</code></pre>
</details>
<div class="desc"><p>Decode the given codes to the quantized representation.</p></div>
</dd>
<dt id="audiocraft.quantization.base.BaseQuantizer.encode"><code class="name flex">
<span>def <span class="ident">encode</span></span>(<span>self, x: torch.Tensor) > torch.Tensor</span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def encode(self, x: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Encode a given input tensor with the specified sample rate at the given bandwidth.&#34;&#34;&#34;
raise NotImplementedError()</code></pre>
</details>
<div class="desc"><p>Encode a given input tensor with the specified sample rate at the given bandwidth.</p></div>
</dd>
<dt id="audiocraft.quantization.base.BaseQuantizer.forward"><code class="name flex">
<span>def <span class="ident">forward</span></span>(<span>self, x: torch.Tensor, frame_rate: int) > <a title="audiocraft.quantization.base.QuantizedResult" href="#audiocraft.quantization.base.QuantizedResult">QuantizedResult</a></span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def forward(self, x: torch.Tensor, frame_rate: int) -&gt; QuantizedResult:
&#34;&#34;&#34;
Given input tensor x, returns first the quantized (or approximately quantized)
representation along with quantized codes, bandwidth, and any penalty term for the loss.
Finally, this returns a dict of metrics to update logging etc.
Frame rate must be passed so that the bandwidth is properly computed.
&#34;&#34;&#34;
raise NotImplementedError()</code></pre>
</details>
<div class="desc"><p>Given input tensor x, returns first the quantized (or approximately quantized)
representation along with quantized codes, bandwidth, and any penalty term for the loss.
Finally, this returns a dict of metrics to update logging etc.
Frame rate must be passed so that the bandwidth is properly computed.</p></div>
</dd>
<dt id="audiocraft.quantization.base.BaseQuantizer.set_num_codebooks"><code class="name flex">
<span>def <span class="ident">set_num_codebooks</span></span>(<span>self, n: int)</span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def set_num_codebooks(self, n: int):
&#34;&#34;&#34;Set the number of active codebooks.&#34;&#34;&#34;
raise NotImplementedError()</code></pre>
</details>
<div class="desc"><p>Set the number of active codebooks.</p></div>
</dd>
</dl>
</dd>
<dt id="audiocraft.quantization.base.DummyQuantizer"><code class="flex name class">
<span>class <span class="ident">DummyQuantizer</span></span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class DummyQuantizer(BaseQuantizer):
&#34;&#34;&#34;Fake quantizer that actually does not perform any quantization.
&#34;&#34;&#34;
def __init__(self):
super().__init__()
def forward(self, x: torch.Tensor, frame_rate: int):
q = x.unsqueeze(1)
return QuantizedResult(x, q, torch.tensor(q.numel() * 32 * frame_rate / 1000 / len(x)).to(x))
def encode(self, x: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Encode a given input tensor with the specified sample rate at the given bandwidth.
In the case of the DummyQuantizer, the codes are actually identical
to the input and resulting quantized representation as no quantization is done.
&#34;&#34;&#34;
return x.unsqueeze(1)
def decode(self, codes: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Decode the given codes to the quantized representation.
In the case of the DummyQuantizer, the codes are actually identical
to the input and resulting quantized representation as no quantization is done.
&#34;&#34;&#34;
return codes.squeeze(1)
@property
def total_codebooks(self):
&#34;&#34;&#34;Total number of codebooks.&#34;&#34;&#34;
return 1
@property
def num_codebooks(self):
&#34;&#34;&#34;Total number of codebooks.&#34;&#34;&#34;
return self.total_codebooks
def set_num_codebooks(self, n: int):
&#34;&#34;&#34;Set the number of active codebooks.&#34;&#34;&#34;
raise AttributeError(&#34;Cannot override the number of codebooks for the dummy quantizer&#34;)</code></pre>
</details>
<div class="desc"><p>Fake quantizer that actually does not perform any quantization.</p>
<p>Initializes internal Module state, shared by both nn.Module and ScriptModule.</p></div>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="audiocraft.quantization.base.BaseQuantizer" href="#audiocraft.quantization.base.BaseQuantizer">BaseQuantizer</a></li>
<li>torch.nn.modules.module.Module</li>
</ul>
<h3>Class variables</h3>
<dl>
<dt id="audiocraft.quantization.base.DummyQuantizer.call_super_init"><code class="name">var <span class="ident">call_super_init</span> : bool</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.DummyQuantizer.dump_patches"><code class="name">var <span class="ident">dump_patches</span> : bool</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.DummyQuantizer.training"><code class="name">var <span class="ident">training</span> : bool</code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
<h3>Instance variables</h3>
<dl>
<dt id="audiocraft.quantization.base.DummyQuantizer.num_codebooks"><code class="name">prop <span class="ident">num_codebooks</span></code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@property
def num_codebooks(self):
&#34;&#34;&#34;Total number of codebooks.&#34;&#34;&#34;
return self.total_codebooks</code></pre>
</details>
<div class="desc"><p>Total number of codebooks.</p></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="audiocraft.quantization.base.DummyQuantizer.decode"><code class="name flex">
<span>def <span class="ident">decode</span></span>(<span>self, codes: torch.Tensor) > torch.Tensor</span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def decode(self, codes: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Decode the given codes to the quantized representation.
In the case of the DummyQuantizer, the codes are actually identical
to the input and resulting quantized representation as no quantization is done.
&#34;&#34;&#34;
return codes.squeeze(1)</code></pre>
</details>
<div class="desc"><p>Decode the given codes to the quantized representation.
In the case of the DummyQuantizer, the codes are actually identical
to the input and resulting quantized representation as no quantization is done.</p></div>
</dd>
<dt id="audiocraft.quantization.base.DummyQuantizer.encode"><code class="name flex">
<span>def <span class="ident">encode</span></span>(<span>self, x: torch.Tensor) > torch.Tensor</span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def encode(self, x: torch.Tensor) -&gt; torch.Tensor:
&#34;&#34;&#34;Encode a given input tensor with the specified sample rate at the given bandwidth.
In the case of the DummyQuantizer, the codes are actually identical
to the input and resulting quantized representation as no quantization is done.
&#34;&#34;&#34;
return x.unsqueeze(1)</code></pre>
</details>
<div class="desc"><p>Encode a given input tensor with the specified sample rate at the given bandwidth.
In the case of the DummyQuantizer, the codes are actually identical
to the input and resulting quantized representation as no quantization is done.</p></div>
</dd>
</dl>
<h3>Inherited members</h3>
<ul class="hlist">
<li><code><b><a title="audiocraft.quantization.base.BaseQuantizer" href="#audiocraft.quantization.base.BaseQuantizer">BaseQuantizer</a></b></code>:
<ul class="hlist">
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.forward" href="#audiocraft.quantization.base.BaseQuantizer.forward">forward</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.set_num_codebooks" href="#audiocraft.quantization.base.BaseQuantizer.set_num_codebooks">set_num_codebooks</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.total_codebooks" href="#audiocraft.quantization.base.BaseQuantizer.total_codebooks">total_codebooks</a></code></li>
</ul>
</li>
</ul>
</dd>
<dt id="audiocraft.quantization.base.QuantizedResult"><code class="flex name class">
<span>class <span class="ident">QuantizedResult</span></span>
<span>(</span><span>x: torch.Tensor,<br>codes: torch.Tensor,<br>bandwidth: torch.Tensor,<br>penalty: torch.Tensor | None = None,<br>metrics: dict = &lt;factory&gt;)</span>
</code></dt>
<dd>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">@dataclass
class QuantizedResult:
x: torch.Tensor
codes: torch.Tensor
bandwidth: torch.Tensor # bandwidth in kb/s used, per batch item.
penalty: tp.Optional[torch.Tensor] = None
metrics: dict = field(default_factory=dict)</code></pre>
</details>
<div class="desc"><p>QuantizedResult(x: torch.Tensor, codes: torch.Tensor, bandwidth: torch.Tensor, penalty: Optional[torch.Tensor] = None, metrics: dict = <factory>)</p></div>
<h3>Class variables</h3>
<dl>
<dt id="audiocraft.quantization.base.QuantizedResult.bandwidth"><code class="name">var <span class="ident">bandwidth</span> : torch.Tensor</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.QuantizedResult.codes"><code class="name">var <span class="ident">codes</span> : torch.Tensor</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.QuantizedResult.metrics"><code class="name">var <span class="ident">metrics</span> : dict</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.QuantizedResult.penalty"><code class="name">var <span class="ident">penalty</span> : torch.Tensor | None</code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="audiocraft.quantization.base.QuantizedResult.x"><code class="name">var <span class="ident">x</span> : torch.Tensor</code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="audiocraft.quantization" href="index.html">audiocraft.quantization</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="audiocraft.quantization.base.BaseQuantizer" href="#audiocraft.quantization.base.BaseQuantizer">BaseQuantizer</a></code></h4>
<ul class="two-column">
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.call_super_init" href="#audiocraft.quantization.base.BaseQuantizer.call_super_init">call_super_init</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.decode" href="#audiocraft.quantization.base.BaseQuantizer.decode">decode</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.dump_patches" href="#audiocraft.quantization.base.BaseQuantizer.dump_patches">dump_patches</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.encode" href="#audiocraft.quantization.base.BaseQuantizer.encode">encode</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.forward" href="#audiocraft.quantization.base.BaseQuantizer.forward">forward</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.num_codebooks" href="#audiocraft.quantization.base.BaseQuantizer.num_codebooks">num_codebooks</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.set_num_codebooks" href="#audiocraft.quantization.base.BaseQuantizer.set_num_codebooks">set_num_codebooks</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.total_codebooks" href="#audiocraft.quantization.base.BaseQuantizer.total_codebooks">total_codebooks</a></code></li>
<li><code><a title="audiocraft.quantization.base.BaseQuantizer.training" href="#audiocraft.quantization.base.BaseQuantizer.training">training</a></code></li>
</ul>
</li>
<li>
<h4><code><a title="audiocraft.quantization.base.DummyQuantizer" href="#audiocraft.quantization.base.DummyQuantizer">DummyQuantizer</a></code></h4>
<ul class="two-column">
<li><code><a title="audiocraft.quantization.base.DummyQuantizer.call_super_init" href="#audiocraft.quantization.base.DummyQuantizer.call_super_init">call_super_init</a></code></li>
<li><code><a title="audiocraft.quantization.base.DummyQuantizer.decode" href="#audiocraft.quantization.base.DummyQuantizer.decode">decode</a></code></li>
<li><code><a title="audiocraft.quantization.base.DummyQuantizer.dump_patches" href="#audiocraft.quantization.base.DummyQuantizer.dump_patches">dump_patches</a></code></li>
<li><code><a title="audiocraft.quantization.base.DummyQuantizer.encode" href="#audiocraft.quantization.base.DummyQuantizer.encode">encode</a></code></li>
<li><code><a title="audiocraft.quantization.base.DummyQuantizer.num_codebooks" href="#audiocraft.quantization.base.DummyQuantizer.num_codebooks">num_codebooks</a></code></li>
<li><code><a title="audiocraft.quantization.base.DummyQuantizer.training" href="#audiocraft.quantization.base.DummyQuantizer.training">training</a></code></li>
</ul>
</li>
<li>
<h4><code><a title="audiocraft.quantization.base.QuantizedResult" href="#audiocraft.quantization.base.QuantizedResult">QuantizedResult</a></code></h4>
<ul class="">
<li><code><a title="audiocraft.quantization.base.QuantizedResult.bandwidth" href="#audiocraft.quantization.base.QuantizedResult.bandwidth">bandwidth</a></code></li>
<li><code><a title="audiocraft.quantization.base.QuantizedResult.codes" href="#audiocraft.quantization.base.QuantizedResult.codes">codes</a></code></li>
<li><code><a title="audiocraft.quantization.base.QuantizedResult.metrics" href="#audiocraft.quantization.base.QuantizedResult.metrics">metrics</a></code></li>
<li><code><a title="audiocraft.quantization.base.QuantizedResult.penalty" href="#audiocraft.quantization.base.QuantizedResult.penalty">penalty</a></code></li>
<li><code><a title="audiocraft.quantization.base.QuantizedResult.x" href="#audiocraft.quantization.base.QuantizedResult.x">x</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.5</a>.</p>
</footer>
</body>
</html>