---
title: extractors
---

<div class="python-reference">
<a id="fastvideo.eval.metrics.common.fvd.extractors-functions"></a>
<a id="fastvideo.eval.metrics.common.fvd.extractors"></a>
<p>Pluggable video feature extractors for FVD.</p>
<p>Three extractors, sharing the <code>_BaseExtractor</code> contract:</p>
<ul>
<li><code>i3d</code>      — Kinetics-400 I3D (TorchScript, <code>flateon/FVD-I3D-torchscript</code>).
                 The standard FVD feature space used in the literature.</li>
<li><code>clip</code>     — CLIP ViT-B/32 per-frame embeddings, mean-pooled over time.
                 Captures semantic / content quality.</li>
<li><code>videomae</code> — VideoMAE-base last-hidden-state, mean-pooled over patch tokens.
                 Captures structural / motion quality.</li>
</ul>
<p>The contract is intentionally narrow: each extractor takes a
<code>(B, T, C, H, W)</code> float tensor in <code>[0, 1]</code> and returns <code>(B, D)</code> numpy
features.  Preprocessing (resize, normalize, layout) is the extractor's job;
its callers should not care.</p>
<h2 id="fastvideo.eval.metrics.common.fvd.extractors.available_extractors"><code>fastvideo.eval.metrics.common.fvd.extractors.available_extractors</code></h2>
<pre class="doc-signature"><code>available_extractors() -&gt; list&#91;str&#93;</code></pre>

<details><summary>Source</summary><pre><code>def available_extractors() -&gt; list&#91;str&#93;:
    return sorted(_EXTRACTORS.keys())</code></pre></details>
<h2 id="fastvideo.eval.metrics.common.fvd.extractors.load_extractor"><code>fastvideo.eval.metrics.common.fvd.extractors.load_extractor</code></h2>
<pre class="doc-signature"><code>load_extractor(name: str, device: torch.device) -&gt; _BaseExtractor</code></pre>
<p>Instantiate the named extractor on <em>device</em>. Raises <code>ValueError</code> on unknown names.</p>
<details><summary>Source</summary><pre><code>def load_extractor(name: str, device: torch.device) -&gt; _BaseExtractor:
    &quot;&quot;&quot;Instantiate the named extractor on *device*. Raises ``ValueError`` on unknown names.&quot;&quot;&quot;
    cls = _EXTRACTORS.get(name)
    if cls is None:
        raise ValueError(f&quot;Unknown FVD extractor &#x27;&#123;name&#125;&#x27;. Available: &#123;available_extractors()&#125;&quot;)
    return cls(device)</code></pre></details>
</div>
