import{S as zl,i as Bl,s as Jl,e as l,k as c,w as E,t,M as Yl,c as o,d as s,m as h,a as r,x as A,h as n,b as u,G as a,g as p,y as k,q as I,o as C,B as q,v as Ml}from"../chunks/vendor-hf-doc-builder.js";import{T as As}from"../chunks/Tip-hf-doc-builder.js";import{I as Rn}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as M}from"../chunks/CodeBlock-hf-doc-builder.js";function Hl(U){let d,$,f,_,y;return{c(){d=l("p"),$=t("Refer to "),f=l("a"),_=t("Value"),y=t(" for a full list of supported data types."),this.h()},l(m){d=o(m,"P",{});var g=r(d);$=n(g,"Refer to "),f=o(g,"A",{href:!0});var j=r(f);_=n(j,"Value"),j.forEach(s),y=n(g," for a full list of supported data types."),g.forEach(s),this.h()},h(){u(f,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Value")},m(m,g){p(m,d,g),a(d,$),a(d,f),a(f,_),a(d,y)},d(m){m&&s(d)}}}function Ql(U){let d,$,f,_,y;return{c(){d=l("p"),$=t("See the "),f=l("a"),_=t("flatten"),y=t(" section to learn how you can extract the nested subfields as their own independent columns."),this.h()},l(m){d=o(m,"P",{});var g=r(d);$=n(g,"See the "),f=o(g,"A",{href:!0});var j=r(f);_=n(j,"flatten"),j.forEach(s),y=n(g," section to learn how you can extract the nested subfields as their own independent columns."),g.forEach(s),this.h()},h(){u(f,"href","./process#flatten")},m(m,g){p(m,d,g),a(d,$),a(d,f),a(f,_),a(d,y)},d(m){m&&s(d)}}}function Kl(U){let d,$,f,_,y,m,g,j;return{c(){d=l("p"),$=t("Index into an audio dataset using the row index first and then the "),f=l("code"),_=t("audio"),y=t(" column - "),m=l("code"),g=t('dataset[0]["audio"]'),j=t(" - to avoid decoding and resampling all the audio files in the dataset. Otherwise, this can be a slow and time-consuming process if you have a large dataset.")},l(D){d=o(D,"P",{});var v=r(d);$=n(v,"Index into an audio dataset using the row index first and then the "),f=o(v,"CODE",{});var b=r(f);_=n(b,"audio"),b.forEach(s),y=n(v," column - "),m=o(v,"CODE",{});var F=r(m);g=n(F,'dataset[0]["audio"]'),F.forEach(s),j=n(v," - to avoid decoding and resampling all the audio files in the dataset. Otherwise, this can be a slow and time-consuming process if you have a large dataset."),v.forEach(s)},m(D,v){p(D,d,v),a(d,$),a(d,f),a(f,_),a(d,y),a(d,m),a(m,g),a(d,j)},d(D){D&&s(d)}}}function Xl(U){let d,$,f,_,y,m,g,j;return{c(){d=l("p"),$=t("Index into an image dataset using the row index first and then the "),f=l("code"),_=t("image"),y=t(" column - "),m=l("code"),g=t('dataset[0]["image"]'),j=t(" - to avoid decoding all the image files in the dataset. Otherwise, this can be a slow and time-consuming process if you have a large dataset.")},l(D){d=o(D,"P",{});var v=r(d);$=n(v,"Index into an image dataset using the row index first and then the "),f=o(v,"CODE",{});var b=r(f);_=n(b,"image"),b.forEach(s),y=n(v," column - "),m=o(v,"CODE",{});var F=r(m);g=n(F,'dataset[0]["image"]'),F.forEach(s),j=n(v," - to avoid decoding all the image files in the dataset. Otherwise, this can be a slow and time-consuming process if you have a large dataset."),v.forEach(s)},m(D,v){p(D,d,v),a(d,$),a(d,f),a(f,_),a(d,y),a(d,m),a(m,g),a(d,j)},d(D){D&&s(d)}}}function Zl(U){let d,$,f,_,y,m,g,j,D,v,b,F,ks,Is,xe,Cs,qs,Ee,Ds,Ps,Ae,Os,Fs,Fa,V,Ls,ke,Ts,Ns,aa,Ss,Us,La,Ie,Vs,Ta,he,Na,H,Rs,Ce,Ws,Gs,Sa,Q,z,zs,sa,Bs,Js,ta,Ys,Ms,Hs,S,Qs,na,Ks,Xs,la,Zs,et,oa,at,st,Ua,L,tt,ra,nt,lt,ia,ot,rt,pa,it,pt,Va,K,Ra,w,dt,qe,ct,ht,da,ft,ut,ca,mt,gt,ha,_t,vt,De,yt,$t,Pe,jt,bt,Wa,X,wt,Oe,xt,Et,Ga,fe,za,x,At,fa,kt,It,Fe,Ct,qt,ua,Dt,Pt,ma,Ot,Ft,ga,Lt,Tt,_a,Nt,St,Ba,Z,Ja,R,Ut,Le,Vt,Rt,Te,Wt,Gt,Ya,ue,Ma,Ne,zt,Ha,me,Qa,B,ee,va,ge,Bt,ya,Jt,Ka,ae,Yt,Se,Mt,Ht,Xa,W,Ue,$a,Qt,Kt,Xt,Ve,ja,Zt,en,an,Re,ba,sn,tn,Za,se,nn,We,ln,on,es,_e,as,te,ss,T,rn,wa,pn,dn,Ge,cn,hn,xa,fn,un,ts,ve,ns,J,ne,Ea,ye,mn,Aa,gn,ls,G,_n,ze,vn,yn,ka,$n,jn,os,le,bn,Be,wn,xn,rs,$e,is,oe,ps,N,En,Ia,An,kn,Je,In,Cn,Ca,qn,Dn,ds,je,cs,Ye,Pn,hs,Me,On,fs,be,us,He,Fn,ms,re,Ln,qa,Tn,Nn,gs;return m=new Rn({}),he=new M({props:{code:`from datasets import load_dataset
dataset = load_dataset('glue', 'mrpc', split='train')
dataset.features`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&#x27;glue&#x27;</span>, <span class="hljs-string">&#x27;mrpc&#x27;</span>, split=<span class="hljs-string">&#x27;train&#x27;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset.features
{<span class="hljs-string">&#x27;idx&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;int32&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
 <span class="hljs-string">&#x27;label&#x27;</span>: ClassLabel(num_classes=<span class="hljs-number">2</span>, names=[<span class="hljs-string">&#x27;not_equivalent&#x27;</span>, <span class="hljs-string">&#x27;equivalent&#x27;</span>], names_file=<span class="hljs-literal">None</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
 <span class="hljs-string">&#x27;sentence1&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;string&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
 <span class="hljs-string">&#x27;sentence2&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;string&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
}`}}),K=new As({props:{$$slots:{default:[Hl]},$$scope:{ctx:U}}}),fe=new M({props:{code:`from datasets import load_dataset
dataset = load_dataset('squad', split='train')
dataset.features`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&#x27;squad&#x27;</span>, split=<span class="hljs-string">&#x27;train&#x27;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset.features
{<span class="hljs-string">&#x27;answers&#x27;</span>: <span class="hljs-type">Sequence</span>(feature={<span class="hljs-string">&#x27;text&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;string&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>), <span class="hljs-string">&#x27;answer_start&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;int32&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>)}, length=-<span class="hljs-number">1</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
<span class="hljs-string">&#x27;context&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;string&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
<span class="hljs-string">&#x27;id&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;string&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
<span class="hljs-string">&#x27;question&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;string&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>),
<span class="hljs-string">&#x27;title&#x27;</span>: Value(dtype=<span class="hljs-string">&#x27;string&#x27;</span>, <span class="hljs-built_in">id</span>=<span class="hljs-literal">None</span>)}`}}),Z=new As({props:{$$slots:{default:[Ql]},$$scope:{ctx:U}}}),ue=new M({props:{code:"features = Features({'a': Array2D(shape=(1, 3), dtype='int32')})",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>features = Features({<span class="hljs-string">&#x27;a&#x27;</span>: Array2D(shape=(<span class="hljs-number">1</span>, <span class="hljs-number">3</span>), dtype=<span class="hljs-string">&#x27;int32&#x27;</span>)})'}}),me=new M({props:{code:"features = Features({'a': Array3D(shape=(None, 5, 2), dtype='int32')})",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>features = Features({<span class="hljs-string">&#x27;a&#x27;</span>: Array3D(shape=(<span class="hljs-literal">None</span>, <span class="hljs-number">5</span>, <span class="hljs-number">2</span>), dtype=<span class="hljs-string">&#x27;int32&#x27;</span>)})'}}),ge=new Rn({}),_e=new M({props:{code:`from datasets import load_dataset, Audio

dataset = load_dataset("PolyAI/minds14", "en-US", split="train")
dataset[0]["audio"]`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset, Audio

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;PolyAI/minds14&quot;</span>, <span class="hljs-string">&quot;en-US&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;audio&quot;</span>]
{<span class="hljs-string">&#x27;array&#x27;</span>: array([ <span class="hljs-number">0.</span>        ,  <span class="hljs-number">0.00024414</span>, -<span class="hljs-number">0.00024414</span>, ..., -<span class="hljs-number">0.00024414</span>,
         <span class="hljs-number">0.</span>        ,  <span class="hljs-number">0.</span>        ], dtype=float32),
 <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-US~JOINT_ACCOUNT/602ba55abb1e6d0fbce92065.wav&#x27;</span>,
 <span class="hljs-string">&#x27;sampling_rate&#x27;</span>: <span class="hljs-number">8000</span>}`}}),te=new As({props:{warning:!0,$$slots:{default:[Kl]},$$scope:{ctx:U}}}),ve=new M({props:{code:`dataset = load_dataset("PolyAI/minds14", "en-US", split="train").cast_column("audio", Audio(decode=False))
dataset[0]`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;PolyAI/minds14&quot;</span>, <span class="hljs-string">&quot;en-US&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>).cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(decode=<span class="hljs-literal">False</span>))
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset[<span class="hljs-number">0</span>]
{<span class="hljs-string">&#x27;audio&#x27;</span>: {<span class="hljs-string">&#x27;bytes&#x27;</span>: <span class="hljs-literal">None</span>,
  <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-US~JOINT_ACCOUNT/602ba55abb1e6d0fbce92065.wav&#x27;</span>},
 <span class="hljs-string">&#x27;english_transcription&#x27;</span>: <span class="hljs-string">&#x27;I would like to set up a joint account with my partner&#x27;</span>,
 <span class="hljs-string">&#x27;intent_class&#x27;</span>: <span class="hljs-number">11</span>,
 <span class="hljs-string">&#x27;lang_id&#x27;</span>: <span class="hljs-number">4</span>,
 <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/root/.cache/huggingface/datasets/downloads/extracted/f14948e0e84be638dd7943ac36518a4cf3324e8b7aa331c5ab11541518e9368c/en-US~JOINT_ACCOUNT/602ba55abb1e6d0fbce92065.wav&#x27;</span>,
 <span class="hljs-string">&#x27;transcription&#x27;</span>: <span class="hljs-string">&#x27;I would like to set up a joint account with my partner&#x27;</span>}`}}),ye=new Rn({}),$e=new M({props:{code:`from datasets import load_dataset, Image

dataset = load_dataset("beans", split="train")
dataset[0]["image"]`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset, Image

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;beans&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;image&quot;</span>]
&lt;PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x500 at <span class="hljs-number">0x125506CF8</span>&gt;`}}),oe=new As({props:{warning:!0,$$slots:{default:[Xl]},$$scope:{ctx:U}}}),je=new M({props:{code:`dataset = load_dataset("beans", split="train").cast_column("image", Image(decode=False))
dataset[0]["image"]`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;beans&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>).cast_column(<span class="hljs-string">&quot;image&quot;</span>, Image(decode=<span class="hljs-literal">False</span>))
<span class="hljs-meta">&gt;&gt;&gt; </span>dataset[<span class="hljs-number">0</span>][<span class="hljs-string">&quot;image&quot;</span>]
{<span class="hljs-string">&#x27;bytes&#x27;</span>: <span class="hljs-literal">None</span>,
 <span class="hljs-string">&#x27;path&#x27;</span>: <span class="hljs-string">&#x27;/Users/username/.cache/huggingface/datasets/downloads/extracted/772e7c1fba622cff102b85dd74bcce46e8168634df4eaade7bedd3b8d91d3cd7/train/healthy/healthy_train.265.jpg&#x27;</span>}`}}),be=new M({props:{code:'ds = Dataset.from_dict({"i": [np.zeros(shape=(16, 16, 3), dtype=np.uint8)]}, features=Features({"i": Image()}))',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>ds = Dataset.from_dict({<span class="hljs-string">&quot;i&quot;</span>: [np.zeros(shape=(<span class="hljs-number">16</span>, <span class="hljs-number">16</span>, <span class="hljs-number">3</span>), dtype=np.uint8)]}, features=Features({<span class="hljs-string">&quot;i&quot;</span>: Image()}))'}}),{c(){d=l("meta"),$=c(),f=l("h1"),_=l("a"),y=l("span"),E(m.$$.fragment),g=c(),j=l("span"),D=t("Dataset features"),v=c(),b=l("p"),F=l("a"),ks=t("Features"),Is=t(" defines the internal structure of a dataset. It is used to specify the underlying serialization format. What\u2019s more interesting to you though is that "),xe=l("a"),Cs=t("Features"),qs=t(" contains high-level information about everything from the column names and types, to the "),Ee=l("a"),Ds=t("ClassLabel"),Ps=t(". You can think of "),Ae=l("a"),Os=t("Features"),Fs=t(" as the backbone of a dataset."),Fa=c(),V=l("p"),Ls=t("The "),ke=l("a"),Ts=t("Features"),Ns=t(" format is simple: "),aa=l("code"),Ss=t("dict[column_name, column_type]"),Us=t(". It is a dictionary of column name and column type pairs. The column type provides a wide range of options for describing the type of data you have."),La=c(),Ie=l("p"),Vs=t("Let\u2019s have a look at the features of the MRPC dataset from the GLUE benchmark:"),Ta=c(),E(he.$$.fragment),Na=c(),H=l("p"),Rs=t("The "),Ce=l("a"),Ws=t("Value"),Gs=t(" feature tells \u{1F917} Datasets:"),Sa=c(),Q=l("ul"),z=l("li"),zs=t("The "),sa=l("code"),Bs=t("idx"),Js=t(" data type is "),ta=l("code"),Ys=t("int32"),Ms=t("."),Hs=c(),S=l("li"),Qs=t("The "),na=l("code"),Ks=t("sentence1"),Xs=t(" and "),la=l("code"),Zs=t("sentence2"),et=t(" data types are "),oa=l("code"),at=t("string"),st=t("."),Ua=c(),L=l("p"),tt=t("\u{1F917} Datasets supports many other data types such as "),ra=l("code"),nt=t("bool"),lt=t(", "),ia=l("code"),ot=t("float32"),rt=t(" and "),pa=l("code"),it=t("binary"),pt=t(" to name just a few."),Va=c(),E(K.$$.fragment),Ra=c(),w=l("p"),dt=t("The "),qe=l("a"),ct=t("ClassLabel"),ht=t(" feature informs \u{1F917} Datasets the "),da=l("code"),ft=t("label"),ut=t(" column contains two classes. The classes are labeled "),ca=l("code"),mt=t("not_equivalent"),gt=t(" and "),ha=l("code"),_t=t("equivalent"),vt=t(". Labels are stored as integers in the dataset. When you retrieve the labels, "),De=l("a"),yt=t("ClassLabel.int2str()"),$t=t(" and "),Pe=l("a"),jt=t("ClassLabel.str2int()"),bt=t(" carries out the conversion from integer value to label name, and vice versa."),Wa=c(),X=l("p"),wt=t("If your data type contains a list of objects, then you want to use the "),Oe=l("a"),xt=t("Sequence"),Et=t(" feature. Remember the SQuAD dataset?"),Ga=c(),E(fe.$$.fragment),za=c(),x=l("p"),At=t("The "),fa=l("code"),kt=t("answers"),It=t(" field is constructed using the "),Fe=l("a"),Ct=t("Sequence"),qt=t(" feature because it contains two subfields, "),ua=l("code"),Dt=t("text"),Pt=t(" and "),ma=l("code"),Ot=t("answer_start"),Ft=t(", which are lists of "),ga=l("code"),Lt=t("string"),Tt=t(" and "),_a=l("code"),Nt=t("int32"),St=t(", respectively."),Ba=c(),E(Z.$$.fragment),Ja=c(),R=l("p"),Ut=t("The array feature type is useful for creating arrays of various sizes. You can create arrays with two dimensions using "),Le=l("a"),Vt=t("Array2D"),Rt=t(", and even arrays with five dimensions using "),Te=l("a"),Wt=t("Array5D"),Gt=t("."),Ya=c(),E(ue.$$.fragment),Ma=c(),Ne=l("p"),zt=t("The array type also allows the first dimension of the array to be dynamic. This is useful for handling sequences with variable lengths such as sentences, without having to pad or truncate the input to a uniform shape."),Ha=c(),E(me.$$.fragment),Qa=c(),B=l("h2"),ee=l("a"),va=l("span"),E(ge.$$.fragment),Bt=c(),ya=l("span"),Jt=t("Audio feature"),Ka=c(),ae=l("p"),Yt=t("Audio datasets have a column with type "),Se=l("a"),Mt=t("Audio"),Ht=t(", which contains three important fields:"),Xa=c(),W=l("ul"),Ue=l("li"),$a=l("code"),Qt=t("array"),Kt=t(": the decoded audio data represented as a 1-dimensional array."),Xt=c(),Ve=l("li"),ja=l("code"),Zt=t("path"),en=t(": the path to the downloaded audio file."),an=c(),Re=l("li"),ba=l("code"),sn=t("sampling_rate"),tn=t(": the sampling rate of the audio data."),Za=c(),se=l("p"),nn=t("When you load an audio dataset and call the audio column, the "),We=l("a"),ln=t("Audio"),on=t(" feature automatically decodes and resamples the audio file:"),es=c(),E(_e.$$.fragment),as=c(),E(te.$$.fragment),ss=c(),T=l("p"),rn=t("With "),wa=l("code"),pn=t("decode=False"),dn=t(", the "),Ge=l("a"),cn=t("Audio"),hn=t(" type simply gives you the path or the bytes of the audio file, without decoding it into an "),xa=l("code"),fn=t("array"),un=t(","),ts=c(),E(ve.$$.fragment),ns=c(),J=l("h2"),ne=l("a"),Ea=l("span"),E(ye.$$.fragment),mn=c(),Aa=l("span"),gn=t("Image feature"),ls=c(),G=l("p"),_n=t("Image datasets have a column with type "),ze=l("a"),vn=t("Image"),yn=t(", which loads "),ka=l("code"),$n=t("PIL.Image"),jn=t(" objects from images stored as bytes:"),os=c(),le=l("p"),bn=t("When you load an image dataset and call the image column, the "),Be=l("a"),wn=t("Image"),xn=t(" feature automatically decodes the image file:"),rs=c(),E($e.$$.fragment),is=c(),E(oe.$$.fragment),ps=c(),N=l("p"),En=t("With "),Ia=l("code"),An=t("decode=False"),kn=t(", the "),Je=l("a"),In=t("Image"),Cn=t(" type simply gives you the path or the bytes of the image file, without decoding it into an "),Ca=l("code"),qn=t("PIL.Image"),Dn=t(","),ds=c(),E(je.$$.fragment),cs=c(),Ye=l("p"),Pn=t("Depending on the dataset, you may get the path to the local downloaded image, or the content of the image as bytes if the dataset is not made of individual files."),hs=c(),Me=l("p"),On=t("You can also define a dataset of images from numpy arrays:"),fs=c(),E(be.$$.fragment),us=c(),He=l("p"),Fn=t("And in this case the numpy arrays are encoded into PNG (or TIFF if the pixels values precision is important)."),ms=c(),re=l("p"),Ln=t(`For multi-channels arrays like RGB or RGBA, only uint8 is supported. If you use a larger precision, you get a warning and the array is downcasted to uint8.
For gray-scale images you can use the integer or float precision you want as long as it is compatible with `),qa=l("code"),Tn=t("Pillow"),Nn=t(". A warning is shown if your image integer or float precision is too high, and in this case the array is downcated: an int64 array is downcasted to int32, and a float64 array is downcasted to float32."),this.h()},l(e){const i=Yl('[data-svelte="svelte-1phssyn"]',document.head);d=o(i,"META",{name:!0,content:!0}),i.forEach(s),$=h(e),f=o(e,"H1",{class:!0});var we=r(f);_=o(we,"A",{id:!0,class:!0,href:!0});var Da=r(_);y=o(Da,"SPAN",{});var Pa=r(y);A(m.$$.fragment,Pa),Pa.forEach(s),Da.forEach(s),g=h(we),j=o(we,"SPAN",{});var Oa=r(j);D=n(Oa,"Dataset features"),Oa.forEach(s),we.forEach(s),v=h(e),b=o(e,"P",{});var Y=r(b);F=o(Y,"A",{href:!0});var Wn=r(F);ks=n(Wn,"Features"),Wn.forEach(s),Is=n(Y," defines the internal structure of a dataset. It is used to specify the underlying serialization format. What\u2019s more interesting to you though is that "),xe=o(Y,"A",{href:!0});var Gn=r(xe);Cs=n(Gn,"Features"),Gn.forEach(s),qs=n(Y," contains high-level information about everything from the column names and types, to the "),Ee=o(Y,"A",{href:!0});var zn=r(Ee);Ds=n(zn,"ClassLabel"),zn.forEach(s),Ps=n(Y,". You can think of "),Ae=o(Y,"A",{href:!0});var Bn=r(Ae);Os=n(Bn,"Features"),Bn.forEach(s),Fs=n(Y," as the backbone of a dataset."),Y.forEach(s),Fa=h(e),V=o(e,"P",{});var Qe=r(V);Ls=n(Qe,"The "),ke=o(Qe,"A",{href:!0});var Jn=r(ke);Ts=n(Jn,"Features"),Jn.forEach(s),Ns=n(Qe," format is simple: "),aa=o(Qe,"CODE",{});var Yn=r(aa);Ss=n(Yn,"dict[column_name, column_type]"),Yn.forEach(s),Us=n(Qe,". It is a dictionary of column name and column type pairs. The column type provides a wide range of options for describing the type of data you have."),Qe.forEach(s),La=h(e),Ie=o(e,"P",{});var Mn=r(Ie);Vs=n(Mn,"Let\u2019s have a look at the features of the MRPC dataset from the GLUE benchmark:"),Mn.forEach(s),Ta=h(e),A(he.$$.fragment,e),Na=h(e),H=o(e,"P",{});var _s=r(H);Rs=n(_s,"The "),Ce=o(_s,"A",{href:!0});var Hn=r(Ce);Ws=n(Hn,"Value"),Hn.forEach(s),Gs=n(_s," feature tells \u{1F917} Datasets:"),_s.forEach(s),Sa=h(e),Q=o(e,"UL",{});var vs=r(Q);z=o(vs,"LI",{});var Ke=r(z);zs=n(Ke,"The "),sa=o(Ke,"CODE",{});var Qn=r(sa);Bs=n(Qn,"idx"),Qn.forEach(s),Js=n(Ke," data type is "),ta=o(Ke,"CODE",{});var Kn=r(ta);Ys=n(Kn,"int32"),Kn.forEach(s),Ms=n(Ke,"."),Ke.forEach(s),Hs=h(vs),S=o(vs,"LI",{});var ie=r(S);Qs=n(ie,"The "),na=o(ie,"CODE",{});var Xn=r(na);Ks=n(Xn,"sentence1"),Xn.forEach(s),Xs=n(ie," and "),la=o(ie,"CODE",{});var Zn=r(la);Zs=n(Zn,"sentence2"),Zn.forEach(s),et=n(ie," data types are "),oa=o(ie,"CODE",{});var el=r(oa);at=n(el,"string"),el.forEach(s),st=n(ie,"."),ie.forEach(s),vs.forEach(s),Ua=h(e),L=o(e,"P",{});var pe=r(L);tt=n(pe,"\u{1F917} Datasets supports many other data types such as "),ra=o(pe,"CODE",{});var al=r(ra);nt=n(al,"bool"),al.forEach(s),lt=n(pe,", "),ia=o(pe,"CODE",{});var sl=r(ia);ot=n(sl,"float32"),sl.forEach(s),rt=n(pe," and "),pa=o(pe,"CODE",{});var tl=r(pa);it=n(tl,"binary"),tl.forEach(s),pt=n(pe," to name just a few."),pe.forEach(s),Va=h(e),A(K.$$.fragment,e),Ra=h(e),w=o(e,"P",{});var P=r(w);dt=n(P,"The "),qe=o(P,"A",{href:!0});var nl=r(qe);ct=n(nl,"ClassLabel"),nl.forEach(s),ht=n(P," feature informs \u{1F917} Datasets the "),da=o(P,"CODE",{});var ll=r(da);ft=n(ll,"label"),ll.forEach(s),ut=n(P," column contains two classes. The classes are labeled "),ca=o(P,"CODE",{});var ol=r(ca);mt=n(ol,"not_equivalent"),ol.forEach(s),gt=n(P," and "),ha=o(P,"CODE",{});var rl=r(ha);_t=n(rl,"equivalent"),rl.forEach(s),vt=n(P,". Labels are stored as integers in the dataset. When you retrieve the labels, "),De=o(P,"A",{href:!0});var il=r(De);yt=n(il,"ClassLabel.int2str()"),il.forEach(s),$t=n(P," and "),Pe=o(P,"A",{href:!0});var pl=r(Pe);jt=n(pl,"ClassLabel.str2int()"),pl.forEach(s),bt=n(P," carries out the conversion from integer value to label name, and vice versa."),P.forEach(s),Wa=h(e),X=o(e,"P",{});var ys=r(X);wt=n(ys,"If your data type contains a list of objects, then you want to use the "),Oe=o(ys,"A",{href:!0});var dl=r(Oe);xt=n(dl,"Sequence"),dl.forEach(s),Et=n(ys," feature. Remember the SQuAD dataset?"),ys.forEach(s),Ga=h(e),A(fe.$$.fragment,e),za=h(e),x=o(e,"P",{});var O=r(x);At=n(O,"The "),fa=o(O,"CODE",{});var cl=r(fa);kt=n(cl,"answers"),cl.forEach(s),It=n(O," field is constructed using the "),Fe=o(O,"A",{href:!0});var hl=r(Fe);Ct=n(hl,"Sequence"),hl.forEach(s),qt=n(O," feature because it contains two subfields, "),ua=o(O,"CODE",{});var fl=r(ua);Dt=n(fl,"text"),fl.forEach(s),Pt=n(O," and "),ma=o(O,"CODE",{});var ul=r(ma);Ot=n(ul,"answer_start"),ul.forEach(s),Ft=n(O,", which are lists of "),ga=o(O,"CODE",{});var ml=r(ga);Lt=n(ml,"string"),ml.forEach(s),Tt=n(O," and "),_a=o(O,"CODE",{});var gl=r(_a);Nt=n(gl,"int32"),gl.forEach(s),St=n(O,", respectively."),O.forEach(s),Ba=h(e),A(Z.$$.fragment,e),Ja=h(e),R=o(e,"P",{});var Xe=r(R);Ut=n(Xe,"The array feature type is useful for creating arrays of various sizes. You can create arrays with two dimensions using "),Le=o(Xe,"A",{href:!0});var _l=r(Le);Vt=n(_l,"Array2D"),_l.forEach(s),Rt=n(Xe,", and even arrays with five dimensions using "),Te=o(Xe,"A",{href:!0});var vl=r(Te);Wt=n(vl,"Array5D"),vl.forEach(s),Gt=n(Xe,"."),Xe.forEach(s),Ya=h(e),A(ue.$$.fragment,e),Ma=h(e),Ne=o(e,"P",{});var yl=r(Ne);zt=n(yl,"The array type also allows the first dimension of the array to be dynamic. This is useful for handling sequences with variable lengths such as sentences, without having to pad or truncate the input to a uniform shape."),yl.forEach(s),Ha=h(e),A(me.$$.fragment,e),Qa=h(e),B=o(e,"H2",{class:!0});var $s=r(B);ee=o($s,"A",{id:!0,class:!0,href:!0});var $l=r(ee);va=o($l,"SPAN",{});var jl=r(va);A(ge.$$.fragment,jl),jl.forEach(s),$l.forEach(s),Bt=h($s),ya=o($s,"SPAN",{});var bl=r(ya);Jt=n(bl,"Audio feature"),bl.forEach(s),$s.forEach(s),Ka=h(e),ae=o(e,"P",{});var js=r(ae);Yt=n(js,"Audio datasets have a column with type "),Se=o(js,"A",{href:!0});var wl=r(Se);Mt=n(wl,"Audio"),wl.forEach(s),Ht=n(js,", which contains three important fields:"),js.forEach(s),Xa=h(e),W=o(e,"UL",{});var Ze=r(W);Ue=o(Ze,"LI",{});var Sn=r(Ue);$a=o(Sn,"CODE",{});var xl=r($a);Qt=n(xl,"array"),xl.forEach(s),Kt=n(Sn,": the decoded audio data represented as a 1-dimensional array."),Sn.forEach(s),Xt=h(Ze),Ve=o(Ze,"LI",{});var Un=r(Ve);ja=o(Un,"CODE",{});var El=r(ja);Zt=n(El,"path"),El.forEach(s),en=n(Un,": the path to the downloaded audio file."),Un.forEach(s),an=h(Ze),Re=o(Ze,"LI",{});var Vn=r(Re);ba=o(Vn,"CODE",{});var Al=r(ba);sn=n(Al,"sampling_rate"),Al.forEach(s),tn=n(Vn,": the sampling rate of the audio data."),Vn.forEach(s),Ze.forEach(s),Za=h(e),se=o(e,"P",{});var bs=r(se);nn=n(bs,"When you load an audio dataset and call the audio column, the "),We=o(bs,"A",{href:!0});var kl=r(We);ln=n(kl,"Audio"),kl.forEach(s),on=n(bs," feature automatically decodes and resamples the audio file:"),bs.forEach(s),es=h(e),A(_e.$$.fragment,e),as=h(e),A(te.$$.fragment,e),ss=h(e),T=o(e,"P",{});var de=r(T);rn=n(de,"With "),wa=o(de,"CODE",{});var Il=r(wa);pn=n(Il,"decode=False"),Il.forEach(s),dn=n(de,", the "),Ge=o(de,"A",{href:!0});var Cl=r(Ge);cn=n(Cl,"Audio"),Cl.forEach(s),hn=n(de," type simply gives you the path or the bytes of the audio file, without decoding it into an "),xa=o(de,"CODE",{});var ql=r(xa);fn=n(ql,"array"),ql.forEach(s),un=n(de,","),de.forEach(s),ts=h(e),A(ve.$$.fragment,e),ns=h(e),J=o(e,"H2",{class:!0});var ws=r(J);ne=o(ws,"A",{id:!0,class:!0,href:!0});var Dl=r(ne);Ea=o(Dl,"SPAN",{});var Pl=r(Ea);A(ye.$$.fragment,Pl),Pl.forEach(s),Dl.forEach(s),mn=h(ws),Aa=o(ws,"SPAN",{});var Ol=r(Aa);gn=n(Ol,"Image feature"),Ol.forEach(s),ws.forEach(s),ls=h(e),G=o(e,"P",{});var ea=r(G);_n=n(ea,"Image datasets have a column with type "),ze=o(ea,"A",{href:!0});var Fl=r(ze);vn=n(Fl,"Image"),Fl.forEach(s),yn=n(ea,", which loads "),ka=o(ea,"CODE",{});var Ll=r(ka);$n=n(Ll,"PIL.Image"),Ll.forEach(s),jn=n(ea," objects from images stored as bytes:"),ea.forEach(s),os=h(e),le=o(e,"P",{});var xs=r(le);bn=n(xs,"When you load an image dataset and call the image column, the "),Be=o(xs,"A",{href:!0});var Tl=r(Be);wn=n(Tl,"Image"),Tl.forEach(s),xn=n(xs," feature automatically decodes the image file:"),xs.forEach(s),rs=h(e),A($e.$$.fragment,e),is=h(e),A(oe.$$.fragment,e),ps=h(e),N=o(e,"P",{});var ce=r(N);En=n(ce,"With "),Ia=o(ce,"CODE",{});var Nl=r(Ia);An=n(Nl,"decode=False"),Nl.forEach(s),kn=n(ce,", the "),Je=o(ce,"A",{href:!0});var Sl=r(Je);In=n(Sl,"Image"),Sl.forEach(s),Cn=n(ce," type simply gives you the path or the bytes of the image file, without decoding it into an "),Ca=o(ce,"CODE",{});var Ul=r(Ca);qn=n(Ul,"PIL.Image"),Ul.forEach(s),Dn=n(ce,","),ce.forEach(s),ds=h(e),A(je.$$.fragment,e),cs=h(e),Ye=o(e,"P",{});var Vl=r(Ye);Pn=n(Vl,"Depending on the dataset, you may get the path to the local downloaded image, or the content of the image as bytes if the dataset is not made of individual files."),Vl.forEach(s),hs=h(e),Me=o(e,"P",{});var Rl=r(Me);On=n(Rl,"You can also define a dataset of images from numpy arrays:"),Rl.forEach(s),fs=h(e),A(be.$$.fragment,e),us=h(e),He=o(e,"P",{});var Wl=r(He);Fn=n(Wl,"And in this case the numpy arrays are encoded into PNG (or TIFF if the pixels values precision is important)."),Wl.forEach(s),ms=h(e),re=o(e,"P",{});var Es=r(re);Ln=n(Es,`For multi-channels arrays like RGB or RGBA, only uint8 is supported. If you use a larger precision, you get a warning and the array is downcasted to uint8.
For gray-scale images you can use the integer or float precision you want as long as it is compatible with `),qa=o(Es,"CODE",{});var Gl=r(qa);Tn=n(Gl,"Pillow"),Gl.forEach(s),Nn=n(Es,". A warning is shown if your image integer or float precision is too high, and in this case the array is downcated: an int64 array is downcasted to int32, and a float64 array is downcasted to float32."),Es.forEach(s),this.h()},h(){u(d,"name","hf:doc:metadata"),u(d,"content",JSON.stringify(eo)),u(_,"id","dataset-features"),u(_,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(_,"href","#dataset-features"),u(f,"class","relative group"),u(F,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Features"),u(xe,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Features"),u(Ee,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.ClassLabel"),u(Ae,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Features"),u(ke,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Features"),u(Ce,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Value"),u(qe,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.ClassLabel"),u(De,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.ClassLabel.int2str"),u(Pe,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.ClassLabel.str2int"),u(Oe,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Sequence"),u(Fe,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Sequence"),u(Le,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Array2D"),u(Te,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Array5D"),u(ee,"id","audio-feature"),u(ee,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(ee,"href","#audio-feature"),u(B,"class","relative group"),u(Se,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Audio"),u(We,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Audio"),u(Ge,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Audio"),u(ne,"id","image-feature"),u(ne,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),u(ne,"href","#image-feature"),u(J,"class","relative group"),u(ze,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Image"),u(Be,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Image"),u(Je,"href","/docs/datasets/v2.11.0/en/package_reference/main_classes#datasets.Image")},m(e,i){a(document.head,d),p(e,$,i),p(e,f,i),a(f,_),a(_,y),k(m,y,null),a(f,g),a(f,j),a(j,D),p(e,v,i),p(e,b,i),a(b,F),a(F,ks),a(b,Is),a(b,xe),a(xe,Cs),a(b,qs),a(b,Ee),a(Ee,Ds),a(b,Ps),a(b,Ae),a(Ae,Os),a(b,Fs),p(e,Fa,i),p(e,V,i),a(V,Ls),a(V,ke),a(ke,Ts),a(V,Ns),a(V,aa),a(aa,Ss),a(V,Us),p(e,La,i),p(e,Ie,i),a(Ie,Vs),p(e,Ta,i),k(he,e,i),p(e,Na,i),p(e,H,i),a(H,Rs),a(H,Ce),a(Ce,Ws),a(H,Gs),p(e,Sa,i),p(e,Q,i),a(Q,z),a(z,zs),a(z,sa),a(sa,Bs),a(z,Js),a(z,ta),a(ta,Ys),a(z,Ms),a(Q,Hs),a(Q,S),a(S,Qs),a(S,na),a(na,Ks),a(S,Xs),a(S,la),a(la,Zs),a(S,et),a(S,oa),a(oa,at),a(S,st),p(e,Ua,i),p(e,L,i),a(L,tt),a(L,ra),a(ra,nt),a(L,lt),a(L,ia),a(ia,ot),a(L,rt),a(L,pa),a(pa,it),a(L,pt),p(e,Va,i),k(K,e,i),p(e,Ra,i),p(e,w,i),a(w,dt),a(w,qe),a(qe,ct),a(w,ht),a(w,da),a(da,ft),a(w,ut),a(w,ca),a(ca,mt),a(w,gt),a(w,ha),a(ha,_t),a(w,vt),a(w,De),a(De,yt),a(w,$t),a(w,Pe),a(Pe,jt),a(w,bt),p(e,Wa,i),p(e,X,i),a(X,wt),a(X,Oe),a(Oe,xt),a(X,Et),p(e,Ga,i),k(fe,e,i),p(e,za,i),p(e,x,i),a(x,At),a(x,fa),a(fa,kt),a(x,It),a(x,Fe),a(Fe,Ct),a(x,qt),a(x,ua),a(ua,Dt),a(x,Pt),a(x,ma),a(ma,Ot),a(x,Ft),a(x,ga),a(ga,Lt),a(x,Tt),a(x,_a),a(_a,Nt),a(x,St),p(e,Ba,i),k(Z,e,i),p(e,Ja,i),p(e,R,i),a(R,Ut),a(R,Le),a(Le,Vt),a(R,Rt),a(R,Te),a(Te,Wt),a(R,Gt),p(e,Ya,i),k(ue,e,i),p(e,Ma,i),p(e,Ne,i),a(Ne,zt),p(e,Ha,i),k(me,e,i),p(e,Qa,i),p(e,B,i),a(B,ee),a(ee,va),k(ge,va,null),a(B,Bt),a(B,ya),a(ya,Jt),p(e,Ka,i),p(e,ae,i),a(ae,Yt),a(ae,Se),a(Se,Mt),a(ae,Ht),p(e,Xa,i),p(e,W,i),a(W,Ue),a(Ue,$a),a($a,Qt),a(Ue,Kt),a(W,Xt),a(W,Ve),a(Ve,ja),a(ja,Zt),a(Ve,en),a(W,an),a(W,Re),a(Re,ba),a(ba,sn),a(Re,tn),p(e,Za,i),p(e,se,i),a(se,nn),a(se,We),a(We,ln),a(se,on),p(e,es,i),k(_e,e,i),p(e,as,i),k(te,e,i),p(e,ss,i),p(e,T,i),a(T,rn),a(T,wa),a(wa,pn),a(T,dn),a(T,Ge),a(Ge,cn),a(T,hn),a(T,xa),a(xa,fn),a(T,un),p(e,ts,i),k(ve,e,i),p(e,ns,i),p(e,J,i),a(J,ne),a(ne,Ea),k(ye,Ea,null),a(J,mn),a(J,Aa),a(Aa,gn),p(e,ls,i),p(e,G,i),a(G,_n),a(G,ze),a(ze,vn),a(G,yn),a(G,ka),a(ka,$n),a(G,jn),p(e,os,i),p(e,le,i),a(le,bn),a(le,Be),a(Be,wn),a(le,xn),p(e,rs,i),k($e,e,i),p(e,is,i),k(oe,e,i),p(e,ps,i),p(e,N,i),a(N,En),a(N,Ia),a(Ia,An),a(N,kn),a(N,Je),a(Je,In),a(N,Cn),a(N,Ca),a(Ca,qn),a(N,Dn),p(e,ds,i),k(je,e,i),p(e,cs,i),p(e,Ye,i),a(Ye,Pn),p(e,hs,i),p(e,Me,i),a(Me,On),p(e,fs,i),k(be,e,i),p(e,us,i),p(e,He,i),a(He,Fn),p(e,ms,i),p(e,re,i),a(re,Ln),a(re,qa),a(qa,Tn),a(re,Nn),gs=!0},p(e,[i]){const we={};i&2&&(we.$$scope={dirty:i,ctx:e}),K.$set(we);const Da={};i&2&&(Da.$$scope={dirty:i,ctx:e}),Z.$set(Da);const Pa={};i&2&&(Pa.$$scope={dirty:i,ctx:e}),te.$set(Pa);const Oa={};i&2&&(Oa.$$scope={dirty:i,ctx:e}),oe.$set(Oa)},i(e){gs||(I(m.$$.fragment,e),I(he.$$.fragment,e),I(K.$$.fragment,e),I(fe.$$.fragment,e),I(Z.$$.fragment,e),I(ue.$$.fragment,e),I(me.$$.fragment,e),I(ge.$$.fragment,e),I(_e.$$.fragment,e),I(te.$$.fragment,e),I(ve.$$.fragment,e),I(ye.$$.fragment,e),I($e.$$.fragment,e),I(oe.$$.fragment,e),I(je.$$.fragment,e),I(be.$$.fragment,e),gs=!0)},o(e){C(m.$$.fragment,e),C(he.$$.fragment,e),C(K.$$.fragment,e),C(fe.$$.fragment,e),C(Z.$$.fragment,e),C(ue.$$.fragment,e),C(me.$$.fragment,e),C(ge.$$.fragment,e),C(_e.$$.fragment,e),C(te.$$.fragment,e),C(ve.$$.fragment,e),C(ye.$$.fragment,e),C($e.$$.fragment,e),C(oe.$$.fragment,e),C(je.$$.fragment,e),C(be.$$.fragment,e),gs=!1},d(e){s(d),e&&s($),e&&s(f),q(m),e&&s(v),e&&s(b),e&&s(Fa),e&&s(V),e&&s(La),e&&s(Ie),e&&s(Ta),q(he,e),e&&s(Na),e&&s(H),e&&s(Sa),e&&s(Q),e&&s(Ua),e&&s(L),e&&s(Va),q(K,e),e&&s(Ra),e&&s(w),e&&s(Wa),e&&s(X),e&&s(Ga),q(fe,e),e&&s(za),e&&s(x),e&&s(Ba),q(Z,e),e&&s(Ja),e&&s(R),e&&s(Ya),q(ue,e),e&&s(Ma),e&&s(Ne),e&&s(Ha),q(me,e),e&&s(Qa),e&&s(B),q(ge),e&&s(Ka),e&&s(ae),e&&s(Xa),e&&s(W),e&&s(Za),e&&s(se),e&&s(es),q(_e,e),e&&s(as),q(te,e),e&&s(ss),e&&s(T),e&&s(ts),q(ve,e),e&&s(ns),e&&s(J),q(ye),e&&s(ls),e&&s(G),e&&s(os),e&&s(le),e&&s(rs),q($e,e),e&&s(is),q(oe,e),e&&s(ps),e&&s(N),e&&s(ds),q(je,e),e&&s(cs),e&&s(Ye),e&&s(hs),e&&s(Me),e&&s(fs),q(be,e),e&&s(us),e&&s(He),e&&s(ms),e&&s(re)}}}const eo={local:"dataset-features",sections:[{local:"audio-feature",title:"Audio feature"},{local:"image-feature",title:"Image feature"}],title:"Dataset features"};function ao(U){return Ml(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class oo extends zl{constructor(d){super();Bl(this,d,ao,Zl,Jl,{})}}export{oo as default,eo as metadata};
