import{S as qr,i as Gr,s as Lr,e as a,k as m,w as y,t as n,M as Vr,c as r,d as o,m as p,a as s,x as w,h as i,b as c,G as t,g as f,y as B,q as T,o as $,B as M,v as Xr,L as Va}from"../../chunks/vendor-hf-doc-builder.js";import{T as Sr}from"../../chunks/Tip-hf-doc-builder.js";import{D as We}from"../../chunks/Docstring-hf-doc-builder.js";import{C as Xa}from"../../chunks/CodeBlock-hf-doc-builder.js";import{I as Ze}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{E as La}from"../../chunks/ExampleCodeBlock-hf-doc-builder.js";import{P as Qr}from"../../chunks/PipelineTag-hf-doc-builder.js";function Yr(E){let h,v,_,g,b;return g=new Xa({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEJpdENvbmZpZyUyQyUyMEJpdE1vZGVsJTBBJTBBJTIzJTIwSW5pdGlhbGl6aW5nJTIwYSUyMEJpVCUyMGJpdC01MCUyMHN0eWxlJTIwY29uZmlndXJhdGlvbiUwQWNvbmZpZ3VyYXRpb24lMjAlM0QlMjBCaXRDb25maWcoKSUwQSUwQSUyMyUyMEluaXRpYWxpemluZyUyMGElMjBtb2RlbCUyMCh3aXRoJTIwcmFuZG9tJTIwd2VpZ2h0cyklMjBmcm9tJTIwdGhlJTIwYml0LTUwJTIwc3R5bGUlMjBjb25maWd1cmF0aW9uJTBBbW9kZWwlMjAlM0QlMjBCaXRNb2RlbChjb25maWd1cmF0aW9uKSUwQSUwQSUyMyUyMEFjY2Vzc2luZyUyMHRoZSUyMG1vZGVsJTIwY29uZmlndXJhdGlvbiUwQWNvbmZpZ3VyYXRpb24lMjAlM0QlMjBtb2RlbC5jb25maWc=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> BitConfig, BitModel

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a BiT bit-50 style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = BitConfig()

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Initializing a model (with random weights) from the bit-50 style configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>model = BitModel(configuration)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># Accessing the model configuration</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>configuration = model.config`}}),{c(){h=a("p"),v=n("Example:"),_=m(),y(g.$$.fragment)},l(l){h=r(l,"P",{});var u=s(h);v=i(u,"Example:"),u.forEach(o),_=p(l),w(g.$$.fragment,l)},m(l,u){f(l,h,u),t(h,v),f(l,_,u),B(g,l,u),b=!0},p:Va,i(l){b||(T(g.$$.fragment,l),b=!0)},o(l){$(g.$$.fragment,l),b=!1},d(l){l&&o(h),l&&o(_),M(g,l)}}}function Dr(E){let h,v,_,g,b;return{c(){h=a("p"),v=n("Although the recipe for forward pass needs to be defined within this function, one should call the "),_=a("code"),g=n("Module"),b=n(`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`)},l(l){h=r(l,"P",{});var u=s(h);v=i(u,"Although the recipe for forward pass needs to be defined within this function, one should call the "),_=r(u,"CODE",{});var P=s(_);g=i(P,"Module"),P.forEach(o),b=i(u,`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`),u.forEach(o)},m(l,u){f(l,h,u),t(h,v),t(h,_),t(_,g),t(h,b)},d(l){l&&o(h)}}}function Or(E){let h,v,_,g,b;return g=new Xa({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9JbWFnZVByb2Nlc3NvciUyQyUyMEJpdE1vZGVsJTBBaW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwZGF0YXNldHMlMjBpbXBvcnQlMjBsb2FkX2RhdGFzZXQlMEElMEFkYXRhc2V0JTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUyMmh1Z2dpbmdmYWNlJTJGY2F0cy1pbWFnZSUyMiklMEFpbWFnZSUyMCUzRCUyMGRhdGFzZXQlNUIlMjJ0ZXN0JTIyJTVEJTVCJTIyaW1hZ2UlMjIlNUQlNUIwJTVEJTBBJTBBaW1hZ2VfcHJvY2Vzc29yJTIwJTNEJTIwQXV0b0ltYWdlUHJvY2Vzc29yLmZyb21fcHJldHJhaW5lZCglMjJnb29nbGUlMkZiaXQtNTAlMjIpJTBBbW9kZWwlMjAlM0QlMjBCaXRNb2RlbC5mcm9tX3ByZXRyYWluZWQoJTIyZ29vZ2xlJTJGYml0LTUwJTIyKSUwQSUwQWlucHV0cyUyMCUzRCUyMGltYWdlX3Byb2Nlc3NvcihpbWFnZSUyQyUyMHJldHVybl90ZW5zb3JzJTNEJTIycHQlMjIpJTBBJTBBd2l0aCUyMHRvcmNoLm5vX2dyYWQoKSUzQSUwQSUyMCUyMCUyMCUyMG91dHB1dHMlMjAlM0QlMjBtb2RlbCgqKmlucHV0cyklMEElMEFsYXN0X2hpZGRlbl9zdGF0ZXMlMjAlM0QlMjBvdXRwdXRzLmxhc3RfaGlkZGVuX3N0YXRlJTBBbGlzdChsYXN0X2hpZGRlbl9zdGF0ZXMuc2hhcGUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoImageProcessor, BitModel
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<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">&quot;huggingface/cats-image&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>image = dataset[<span class="hljs-string">&quot;test&quot;</span>][<span class="hljs-string">&quot;image&quot;</span>][<span class="hljs-number">0</span>]

<span class="hljs-meta">&gt;&gt;&gt; </span>image_processor = AutoImageProcessor.from_pretrained(<span class="hljs-string">&quot;google/bit-50&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = BitModel.from_pretrained(<span class="hljs-string">&quot;google/bit-50&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = image_processor(image, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">with</span> torch.no_grad():
<span class="hljs-meta">... </span>    outputs = model(**inputs)

<span class="hljs-meta">&gt;&gt;&gt; </span>last_hidden_states = outputs.last_hidden_state
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">list</span>(last_hidden_states.shape)
[<span class="hljs-number">1</span>, <span class="hljs-number">2048</span>, <span class="hljs-number">7</span>, <span class="hljs-number">7</span>]`}}),{c(){h=a("p"),v=n("Example:"),_=m(),y(g.$$.fragment)},l(l){h=r(l,"P",{});var u=s(h);v=i(u,"Example:"),u.forEach(o),_=p(l),w(g.$$.fragment,l)},m(l,u){f(l,h,u),t(h,v),f(l,_,u),B(g,l,u),b=!0},p:Va,i(l){b||(T(g.$$.fragment,l),b=!0)},o(l){$(g.$$.fragment,l),b=!1},d(l){l&&o(h),l&&o(_),M(g,l)}}}function Hr(E){let h,v,_,g,b;return{c(){h=a("p"),v=n("Although the recipe for forward pass needs to be defined within this function, one should call the "),_=a("code"),g=n("Module"),b=n(`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`)},l(l){h=r(l,"P",{});var u=s(h);v=i(u,"Although the recipe for forward pass needs to be defined within this function, one should call the "),_=r(u,"CODE",{});var P=s(_);g=i(P,"Module"),P.forEach(o),b=i(u,`
instance afterwards instead of this since the former takes care of running the pre and post processing steps while
the latter silently ignores them.`),u.forEach(o)},m(l,u){f(l,h,u),t(h,v),t(h,_),t(_,g),t(h,b)},d(l){l&&o(h)}}}function Kr(E){let h,v,_,g,b;return g=new Xa({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9JbWFnZVByb2Nlc3NvciUyQyUyMEJpdEZvckltYWdlQ2xhc3NpZmljYXRpb24lMEFpbXBvcnQlMjB0b3JjaCUwQWZyb20lMjBkYXRhc2V0cyUyMGltcG9ydCUyMGxvYWRfZGF0YXNldCUwQSUwQWRhdGFzZXQlMjAlM0QlMjBsb2FkX2RhdGFzZXQoJTIyaHVnZ2luZ2ZhY2UlMkZjYXRzLWltYWdlJTIyKSUwQWltYWdlJTIwJTNEJTIwZGF0YXNldCU1QiUyMnRlc3QlMjIlNUQlNUIlMjJpbWFnZSUyMiU1RCU1QjAlNUQlMEElMEFpbWFnZV9wcm9jZXNzb3IlMjAlM0QlMjBBdXRvSW1hZ2VQcm9jZXNzb3IuZnJvbV9wcmV0cmFpbmVkKCUyMmdvb2dsZSUyRmJpdC01MCUyMiklMEFtb2RlbCUyMCUzRCUyMEJpdEZvckltYWdlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKCUyMmdvb2dsZSUyRmJpdC01MCUyMiklMEElMEFpbnB1dHMlMjAlM0QlMjBpbWFnZV9wcm9jZXNzb3IoaW1hZ2UlMkMlMjByZXR1cm5fdGVuc29ycyUzRCUyMnB0JTIyKSUwQSUwQXdpdGglMjB0b3JjaC5ub19ncmFkKCklM0ElMEElMjAlMjAlMjAlMjBsb2dpdHMlMjAlM0QlMjBtb2RlbCgqKmlucHV0cykubG9naXRzJTBBJTBBJTIzJTIwbW9kZWwlMjBwcmVkaWN0cyUyMG9uZSUyMG9mJTIwdGhlJTIwMTAwMCUyMEltYWdlTmV0JTIwY2xhc3NlcyUwQXByZWRpY3RlZF9sYWJlbCUyMCUzRCUyMGxvZ2l0cy5hcmdtYXgoLTEpLml0ZW0oKSUwQXByaW50KG1vZGVsLmNvbmZpZy5pZDJsYWJlbCU1QnByZWRpY3RlZF9sYWJlbCU1RCk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoImageProcessor, BitForImageClassification
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<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">&quot;huggingface/cats-image&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>image = dataset[<span class="hljs-string">&quot;test&quot;</span>][<span class="hljs-string">&quot;image&quot;</span>][<span class="hljs-number">0</span>]

<span class="hljs-meta">&gt;&gt;&gt; </span>image_processor = AutoImageProcessor.from_pretrained(<span class="hljs-string">&quot;google/bit-50&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = BitForImageClassification.from_pretrained(<span class="hljs-string">&quot;google/bit-50&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span>inputs = image_processor(image, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>)

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">with</span> torch.no_grad():
<span class="hljs-meta">... </span>    logits = model(**inputs).logits

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># model predicts one of the 1000 ImageNet classes</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>predicted_label = logits.argmax(-<span class="hljs-number">1</span>).item()
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(model.config.id2label[predicted_label])
tiger cat`}}),{c(){h=a("p"),v=n("Example:"),_=m(),y(g.$$.fragment)},l(l){h=r(l,"P",{});var u=s(h);v=i(u,"Example:"),u.forEach(o),_=p(l),w(g.$$.fragment,l)},m(l,u){f(l,h,u),t(h,v),f(l,_,u),B(g,l,u),b=!0},p:Va,i(l){b||(T(g.$$.fragment,l),b=!0)},o(l){$(g.$$.fragment,l),b=!1},d(l){l&&o(h),l&&o(_),M(g,l)}}}function es(E){let h,v,_,g,b,l,u,P,co,Ut,F,Q,pt,me,mo,ft,po,Nt,N,fo,pe,ho,go,Se,uo,_o,kt,qe,bo,Rt,Ge,ht,vo,Ft,Le,yo,At,Ve,A,wo,fe,Bo,To,he,$o,Mo,Jt,k,Io,ge,Co,Eo,ue,xo,jo,Wt,J,Y,gt,_e,Po,ut,zo,Zt,Xe,Uo,St,be,qt,D,R,Qe,No,ko,ve,Ro,Fo,ye,Ao,Jo,Wo,Ye,Zo,De,So,Gt,Oe,qo,Lt,W,O,_t,we,Go,bt,Lo,Vt,I,Be,Vo,Z,Xo,He,Qo,Yo,Te,Do,Oo,Ho,S,Ko,Ke,ea,ta,et,oa,aa,ra,H,Xt,q,K,vt,$e,sa,yt,na,Qt,z,Me,ia,wt,la,ca,ee,Ie,da,Bt,ma,Yt,G,te,Tt,Ce,pa,$t,fa,Dt,U,Ee,ha,xe,ga,je,ua,_a,ba,x,Pe,va,L,ya,tt,wa,Ba,Mt,Ta,$a,Ma,oe,Ia,ae,Ot,V,re,It,ze,Ca,Ct,Ea,Ht,C,Ue,xa,Et,ja,Pa,Ne,za,ke,Ua,Na,ka,j,Re,Ra,X,Fa,ot,Aa,Ja,xt,Wa,Za,Sa,se,qa,ne,Kt;return l=new Ze({}),me=new Ze({}),_e=new Ze({}),be=new Qr({props:{pipeline:"image-classification"}}),we=new Ze({}),Be=new We({props:{name:"class transformers.BitConfig",anchor:"transformers.BitConfig",parameters:[{name:"num_channels",val:" = 3"},{name:"embedding_size",val:" = 64"},{name:"hidden_sizes",val:" = [256, 512, 1024, 2048]"},{name:"depths",val:" = [3, 4, 6, 3]"},{name:"layer_type",val:" = 'preactivation'"},{name:"hidden_act",val:" = 'relu'"},{name:"global_padding",val:" = None"},{name:"num_groups",val:" = 32"},{name:"drop_path_rate",val:" = 0.0"},{name:"embedding_dynamic_padding",val:" = False"},{name:"output_stride",val:" = 32"},{name:"width_factor",val:" = 1"},{name:"out_features",val:" = None"},{name:"out_indices",val:" = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.BitConfig.num_channels",description:`<strong>num_channels</strong> (<code>int</code>, <em>optional</em>, defaults to 3) &#x2014;
The number of input channels.`,name:"num_channels"},{anchor:"transformers.BitConfig.embedding_size",description:`<strong>embedding_size</strong> (<code>int</code>, <em>optional</em>, defaults to 64) &#x2014;
Dimensionality (hidden size) for the embedding layer.`,name:"embedding_size"},{anchor:"transformers.BitConfig.hidden_sizes",description:`<strong>hidden_sizes</strong> (<code>List[int]</code>, <em>optional</em>, defaults to <code>[256, 512, 1024, 2048]</code>) &#x2014;
Dimensionality (hidden size) at each stage.`,name:"hidden_sizes"},{anchor:"transformers.BitConfig.depths",description:`<strong>depths</strong> (<code>List[int]</code>, <em>optional</em>, defaults to <code>[3, 4, 6, 3]</code>) &#x2014;
Depth (number of layers) for each stage.`,name:"depths"},{anchor:"transformers.BitConfig.layer_type",description:`<strong>layer_type</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;preactivation&quot;</code>) &#x2014;
The layer to use, it can be either <code>&quot;preactivation&quot;</code> or <code>&quot;bottleneck&quot;</code>.`,name:"layer_type"},{anchor:"transformers.BitConfig.hidden_act",description:`<strong>hidden_act</strong> (<code>str</code>, <em>optional</em>, defaults to <code>&quot;relu&quot;</code>) &#x2014;
The non-linear activation function in each block. If string, <code>&quot;gelu&quot;</code>, <code>&quot;relu&quot;</code>, <code>&quot;selu&quot;</code> and <code>&quot;gelu_new&quot;</code>
are supported.`,name:"hidden_act"},{anchor:"transformers.BitConfig.global_padding",description:`<strong>global_padding</strong> (<code>str</code>, <em>optional</em>) &#x2014;
Padding strategy to use for the convolutional layers. Can be either <code>&quot;valid&quot;</code>, <code>&quot;same&quot;</code>, or <code>None</code>.`,name:"global_padding"},{anchor:"transformers.BitConfig.num_groups",description:`<strong>num_groups</strong> (<code>int</code>, <em>optional</em>, defaults to <code>32</code>) &#x2014;
Number of groups used for the <code>BitGroupNormActivation</code> layers.`,name:"num_groups"},{anchor:"transformers.BitConfig.drop_path_rate",description:`<strong>drop_path_rate</strong> (<code>float</code>, <em>optional</em>, defaults to 0.0) &#x2014;
The drop path rate for the stochastic depth.`,name:"drop_path_rate"},{anchor:"transformers.BitConfig.embedding_dynamic_padding",description:`<strong>embedding_dynamic_padding</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>False</code>) &#x2014;
Whether or not to make use of dynamic padding for the embedding layer.`,name:"embedding_dynamic_padding"},{anchor:"transformers.BitConfig.output_stride",description:`<strong>output_stride</strong> (<code>int</code>, <em>optional</em>, defaults to 32) &#x2014;
The output stride of the model.`,name:"output_stride"},{anchor:"transformers.BitConfig.width_factor",description:`<strong>width_factor</strong> (<code>int</code>, <em>optional</em>, defaults to 1) &#x2014;
The width factor for the model.`,name:"width_factor"},{anchor:"transformers.BitConfig.out_features",description:`<strong>out_features</strong> (<code>List[str]</code>, <em>optional</em>) &#x2014;
If used as backbone, list of features to output. Can be any of <code>&quot;stem&quot;</code>, <code>&quot;stage1&quot;</code>, <code>&quot;stage2&quot;</code>, etc.
(depending on how many stages the model has). If unset and <code>out_indices</code> is set, will default to the
corresponding stages. If unset and <code>out_indices</code> is unset, will default to the last stage.`,name:"out_features"},{anchor:"transformers.BitConfig.out_indices",description:`<strong>out_indices</strong> (<code>List[int]</code>, <em>optional</em>) &#x2014;
If used as backbone, list of indices of features to output. Can be any of 0, 1, 2, etc. (depending on how
many stages the model has). If unset and <code>out_features</code> is set, will default to the corresponding stages.
If unset and <code>out_features</code> is unset, will default to the last stage.`,name:"out_indices"}],source:"https://github.com/huggingface/transformers/blob/v4.33.0/src/transformers/models/bit/configuration_bit.py#L29"}}),H=new La({props:{anchor:"transformers.BitConfig.example",$$slots:{default:[Yr]},$$scope:{ctx:E}}}),$e=new Ze({}),Me=new We({props:{name:"class transformers.BitImageProcessor",anchor:"transformers.BitImageProcessor",parameters:[{name:"do_resize",val:": bool = True"},{name:"size",val:": typing.Dict[str, int] = None"},{name:"resample",val:": Resampling = <Resampling.BICUBIC: 3>"},{name:"do_center_crop",val:": bool = True"},{name:"crop_size",val:": typing.Dict[str, int] = None"},{name:"do_rescale",val:": bool = True"},{name:"rescale_factor",val:": typing.Union[int, float] = 0.00392156862745098"},{name:"do_normalize",val:": bool = True"},{name:"image_mean",val:": typing.Union[float, typing.List[float], NoneType] = None"},{name:"image_std",val:": typing.Union[float, typing.List[float], NoneType] = None"},{name:"do_convert_rgb",val:": bool = True"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.BitImageProcessor.do_resize",description:`<strong>do_resize</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to resize the image&#x2019;s (height, width) dimensions to the specified <code>size</code>. Can be overridden by
<code>do_resize</code> in the <code>preprocess</code> method.`,name:"do_resize"},{anchor:"transformers.BitImageProcessor.size",description:`<strong>size</strong> (<code>Dict[str, int]</code> <em>optional</em>, defaults to <code>{&quot;shortest_edge&quot; -- 224}</code>):
Size of the image after resizing. The shortest edge of the image is resized to size[&#x201C;shortest_edge&#x201D;], with
the longest edge resized to keep the input aspect ratio. Can be overridden by <code>size</code> in the <code>preprocess</code>
method.`,name:"size"},{anchor:"transformers.BitImageProcessor.resample",description:`<strong>resample</strong> (<code>PILImageResampling</code>, <em>optional</em>, defaults to <code>PILImageResampling.BICUBIC</code>) &#x2014;
Resampling filter to use if resizing the image. Can be overridden by <code>resample</code> in the <code>preprocess</code> method.`,name:"resample"},{anchor:"transformers.BitImageProcessor.do_center_crop",description:`<strong>do_center_crop</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to center crop the image to the specified <code>crop_size</code>. Can be overridden by <code>do_center_crop</code> in the
<code>preprocess</code> method.`,name:"do_center_crop"},{anchor:"transformers.BitImageProcessor.crop_size",description:`<strong>crop_size</strong> (<code>Dict[str, int]</code> <em>optional</em>, defaults to 224) &#x2014;
Size of the output image after applying <code>center_crop</code>. Can be overridden by <code>crop_size</code> in the <code>preprocess</code>
method.`,name:"crop_size"},{anchor:"transformers.BitImageProcessor.do_rescale",description:`<strong>do_rescale</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Whether to rescale the image by the specified scale <code>rescale_factor</code>. Can be overridden by <code>do_rescale</code> in
the <code>preprocess</code> method.`,name:"do_rescale"},{anchor:"transformers.BitImageProcessor.rescale_factor",description:`<strong>rescale_factor</strong> (<code>int</code> or <code>float</code>, <em>optional</em>, defaults to <code>1/255</code>) &#x2014;
Scale factor to use if rescaling the image. Can be overridden by <code>rescale_factor</code> in the <code>preprocess</code>
method.
do_normalize &#x2014;
Whether to normalize the image. Can be overridden by <code>do_normalize</code> in the <code>preprocess</code> method.`,name:"rescale_factor"},{anchor:"transformers.BitImageProcessor.image_mean",description:`<strong>image_mean</strong> (<code>float</code> or <code>List[float]</code>, <em>optional</em>, defaults to <code>OPENAI_CLIP_MEAN</code>) &#x2014;
Mean to use if normalizing the image. This is a float or list of floats the length of the number of
channels in the image. Can be overridden by the <code>image_mean</code> parameter in the <code>preprocess</code> method.`,name:"image_mean"},{anchor:"transformers.BitImageProcessor.image_std",description:`<strong>image_std</strong> (<code>float</code> or <code>List[float]</code>, <em>optional</em>, defaults to <code>OPENAI_CLIP_MEAN</code>) &#x2014;
Image standard deviation.`,name:"image_std"},{anchor:"transformers.BitImageProcessor.do_convert_rgb",description:`<strong>do_convert_rgb</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>True</code>) &#x2014;
Standard deviation to use if normalizing the image. This is a float or list of floats the length of the
number of channels in the image. Can be overridden by the <code>image_std</code> parameter in the <code>preprocess</code> method.`,name:"do_convert_rgb"}],source:"https://github.com/huggingface/transformers/blob/v4.33.0/src/transformers/models/bit/image_processing_bit.py#L50"}}),Ie=new We({props:{name:"preprocess",anchor:"transformers.BitImageProcessor.preprocess",parameters:[{name:"images",val:": typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), typing.List[ForwardRef('PIL.Image.Image')], typing.List[numpy.ndarray], typing.List[ForwardRef('torch.Tensor')]]"},{name:"do_resize",val:": bool = None"},{name:"size",val:": typing.Dict[str, int] = None"},{name:"resample",val:": Resampling = None"},{name:"do_center_crop",val:": bool = None"},{name:"crop_size",val:": int = None"},{name:"do_rescale",val:": bool = None"},{name:"rescale_factor",val:": float = None"},{name:"do_normalize",val:": bool = None"},{name:"image_mean",val:": typing.Union[float, typing.List[float], NoneType] = None"},{name:"image_std",val:": typing.Union[float, typing.List[float], NoneType] = None"},{name:"do_convert_rgb",val:": bool = None"},{name:"return_tensors",val:": typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None"},{name:"data_format",val:": typing.Optional[transformers.image_utils.ChannelDimension] = <ChannelDimension.FIRST: 'channels_first'>"},{name:"input_data_format",val:": typing.Union[str, transformers.image_utils.ChannelDimension, NoneType] = None"},{name:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.BitImageProcessor.preprocess.images",description:`<strong>images</strong> (<code>ImageInput</code>) &#x2014;
Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If
passing in images with pixel values between 0 and 1, set <code>do_rescale=False</code>.`,name:"images"},{anchor:"transformers.BitImageProcessor.preprocess.do_resize",description:`<strong>do_resize</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>self.do_resize</code>) &#x2014;
Whether to resize the image.`,name:"do_resize"},{anchor:"transformers.BitImageProcessor.preprocess.size",description:`<strong>size</strong> (<code>Dict[str, int]</code>, <em>optional</em>, defaults to <code>self.size</code>) &#x2014;
Size of the image after resizing. Shortest edge of the image is resized to size[&#x201C;shortest_edge&#x201D;], with
the longest edge resized to keep the input aspect ratio.`,name:"size"},{anchor:"transformers.BitImageProcessor.preprocess.resample",description:`<strong>resample</strong> (<code>int</code>, <em>optional</em>, defaults to <code>self.resample</code>) &#x2014;
Resampling filter to use if resizing the image. This can be one of the enum <code>PILImageResampling</code>. Only
has an effect if <code>do_resize</code> is set to <code>True</code>.`,name:"resample"},{anchor:"transformers.BitImageProcessor.preprocess.do_center_crop",description:`<strong>do_center_crop</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>self.do_center_crop</code>) &#x2014;
Whether to center crop the image.`,name:"do_center_crop"},{anchor:"transformers.BitImageProcessor.preprocess.crop_size",description:`<strong>crop_size</strong> (<code>Dict[str, int]</code>, <em>optional</em>, defaults to <code>self.crop_size</code>) &#x2014;
Size of the center crop. Only has an effect if <code>do_center_crop</code> is set to <code>True</code>.`,name:"crop_size"},{anchor:"transformers.BitImageProcessor.preprocess.do_rescale",description:`<strong>do_rescale</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>self.do_rescale</code>) &#x2014;
Whether to rescale the image.`,name:"do_rescale"},{anchor:"transformers.BitImageProcessor.preprocess.rescale_factor",description:`<strong>rescale_factor</strong> (<code>float</code>, <em>optional</em>, defaults to <code>self.rescale_factor</code>) &#x2014;
Rescale factor to rescale the image by if <code>do_rescale</code> is set to <code>True</code>.`,name:"rescale_factor"},{anchor:"transformers.BitImageProcessor.preprocess.do_normalize",description:`<strong>do_normalize</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>self.do_normalize</code>) &#x2014;
Whether to normalize the image.`,name:"do_normalize"},{anchor:"transformers.BitImageProcessor.preprocess.image_mean",description:`<strong>image_mean</strong> (<code>float</code> or <code>List[float]</code>, <em>optional</em>, defaults to <code>self.image_mean</code>) &#x2014;
Image mean to use for normalization. Only has an effect if <code>do_normalize</code> is set to <code>True</code>.`,name:"image_mean"},{anchor:"transformers.BitImageProcessor.preprocess.image_std",description:`<strong>image_std</strong> (<code>float</code> or <code>List[float]</code>, <em>optional</em>, defaults to <code>self.image_std</code>) &#x2014;
Image standard deviation to use for normalization. Only has an effect if <code>do_normalize</code> is set to
<code>True</code>.`,name:"image_std"},{anchor:"transformers.BitImageProcessor.preprocess.do_convert_rgb",description:`<strong>do_convert_rgb</strong> (<code>bool</code>, <em>optional</em>, defaults to <code>self.do_convert_rgb</code>) &#x2014;
Whether to convert the image to RGB.`,name:"do_convert_rgb"},{anchor:"transformers.BitImageProcessor.preprocess.return_tensors",description:`<strong>return_tensors</strong> (<code>str</code> or <code>TensorType</code>, <em>optional</em>) &#x2014;
The type of tensors to return. Can be one of:<ul>
<li>Unset: Return a list of <code>np.ndarray</code>.</li>
<li><code>TensorType.TENSORFLOW</code> or <code>&apos;tf&apos;</code>: Return a batch of type <code>tf.Tensor</code>.</li>
<li><code>TensorType.PYTORCH</code> or <code>&apos;pt&apos;</code>: Return a batch of type <code>torch.Tensor</code>.</li>
<li><code>TensorType.NUMPY</code> or <code>&apos;np&apos;</code>: Return a batch of type <code>np.ndarray</code>.</li>
<li><code>TensorType.JAX</code> or <code>&apos;jax&apos;</code>: Return a batch of type <code>jax.numpy.ndarray</code>.</li>
</ul>`,name:"return_tensors"},{anchor:"transformers.BitImageProcessor.preprocess.data_format",description:`<strong>data_format</strong> (<code>ChannelDimension</code> or <code>str</code>, <em>optional</em>, defaults to <code>ChannelDimension.FIRST</code>) &#x2014;
The channel dimension format for the output image. Can be one of:<ul>
<li><code>&quot;channels_first&quot;</code> or <code>ChannelDimension.FIRST</code>: image in (num_channels, height, width) format.</li>
<li><code>&quot;channels_last&quot;</code> or <code>ChannelDimension.LAST</code>: image in (height, width, num_channels) format.</li>
<li>Unset: Use the channel dimension format of the input image.</li>
</ul>`,name:"data_format"},{anchor:"transformers.BitImageProcessor.preprocess.input_data_format",description:`<strong>input_data_format</strong> (<code>ChannelDimension</code> or <code>str</code>, <em>optional</em>) &#x2014;
The channel dimension format for the input image. If unset, the channel dimension format is inferred
from the input image. Can be one of:<ul>
<li><code>&quot;channels_first&quot;</code> or <code>ChannelDimension.FIRST</code>: image in (num_channels, height, width) format.</li>
<li><code>&quot;channels_last&quot;</code> or <code>ChannelDimension.LAST</code>: image in (height, width, num_channels) format.</li>
<li><code>&quot;none&quot;</code> or <code>ChannelDimension.NONE</code>: image in (height, width) format.</li>
</ul>`,name:"input_data_format"}],source:"https://github.com/huggingface/transformers/blob/v4.33.0/src/transformers/models/bit/image_processing_bit.py#L164"}}),Ce=new Ze({}),Ee=new We({props:{name:"class transformers.BitModel",anchor:"transformers.BitModel",parameters:[{name:"config",val:""}],parametersDescription:[{anchor:"transformers.BitModel.config",description:`<strong>config</strong> (<a href="/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitConfig">BitConfig</a>) &#x2014; Model configuration class with all the parameters of the model.
Initializing with a config file does not load the weights associated with the model, only the
configuration. Check out the <a href="/docs/transformers/v4.33.0/en/main_classes/model#transformers.PreTrainedModel.from_pretrained">from_pretrained()</a> method to load the model weights.`,name:"config"}],source:"https://github.com/huggingface/transformers/blob/v4.33.0/src/transformers/models/bit/modeling_bit.py#L706"}}),Pe=new We({props:{name:"forward",anchor:"transformers.BitModel.forward",parameters:[{name:"pixel_values",val:": Tensor"},{name:"output_hidden_states",val:": typing.Optional[bool] = None"},{name:"return_dict",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.BitModel.forward.pixel_values",description:`<strong>pixel_values</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, num_channels, height, width)</code>) &#x2014;
Pixel values. Pixel values can be obtained using <a href="/docs/transformers/v4.33.0/en/model_doc/auto#transformers.AutoImageProcessor">AutoImageProcessor</a>. See <a href="/docs/transformers/v4.33.0/en/model_doc/donut#transformers.DonutFeatureExtractor.__call__">BitImageProcessor.<strong>call</strong>()</a>
for details.`,name:"pixel_values"},{anchor:"transformers.BitModel.forward.output_hidden_states",description:`<strong>output_hidden_states</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the hidden states of all layers. See <code>hidden_states</code> under returned tensors for
more detail.`,name:"output_hidden_states"},{anchor:"transformers.BitModel.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/v4.33.0/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"}],source:"https://github.com/huggingface/transformers/blob/v4.33.0/src/transformers/models/bit/modeling_bit.py#L724",returnDescription:`
<p>A <code>transformers.modeling_outputs.BaseModelOutputWithPoolingAndNoAttention</code> or a tuple of
<code>torch.FloatTensor</code> (if <code>return_dict=False</code> is passed or when <code>config.return_dict=False</code>) comprising various
elements depending on the configuration (<a
  href="/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitConfig"
>BitConfig</a>) and inputs.</p>
<ul>
<li>
<p><strong>last_hidden_state</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, num_channels, height, width)</code>) \u2014 Sequence of hidden-states at the output of the last layer of the model.</p>
</li>
<li>
<p><strong>pooler_output</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, hidden_size)</code>) \u2014 Last layer hidden-state after a pooling operation on the spatial dimensions.</p>
</li>
<li>
<p><strong>hidden_states</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_hidden_states=True</code> is passed or when <code>config.output_hidden_states=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for the output of the embeddings, if the model has an embedding layer, +
one for the output of each layer) of shape <code>(batch_size, num_channels, height, width)</code>.</p>
<p>Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.</p>
</li>
</ul>
`,returnType:`
<p><code>transformers.modeling_outputs.BaseModelOutputWithPoolingAndNoAttention</code> or <code>tuple(torch.FloatTensor)</code></p>
`}}),oe=new Sr({props:{$$slots:{default:[Dr]},$$scope:{ctx:E}}}),ae=new La({props:{anchor:"transformers.BitModel.forward.example",$$slots:{default:[Or]},$$scope:{ctx:E}}}),ze=new Ze({}),Ue=new We({props:{name:"class transformers.BitForImageClassification",anchor:"transformers.BitForImageClassification",parameters:[{name:"config",val:""}],parametersDescription:[{anchor:"transformers.BitForImageClassification.config",description:`<strong>config</strong> (<a href="/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitConfig">BitConfig</a>) &#x2014; Model configuration class with all the parameters of the model.
Initializing with a config file does not load the weights associated with the model, only the
configuration. Check out the <a href="/docs/transformers/v4.33.0/en/main_classes/model#transformers.PreTrainedModel.from_pretrained">from_pretrained()</a> method to load the model weights.`,name:"config"}],source:"https://github.com/huggingface/transformers/blob/v4.33.0/src/transformers/models/bit/modeling_bit.py#L769"}}),Re=new We({props:{name:"forward",anchor:"transformers.BitForImageClassification.forward",parameters:[{name:"pixel_values",val:": typing.Optional[torch.FloatTensor] = None"},{name:"labels",val:": typing.Optional[torch.LongTensor] = None"},{name:"output_hidden_states",val:": typing.Optional[bool] = None"},{name:"return_dict",val:": typing.Optional[bool] = None"}],parametersDescription:[{anchor:"transformers.BitForImageClassification.forward.pixel_values",description:`<strong>pixel_values</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, num_channels, height, width)</code>) &#x2014;
Pixel values. Pixel values can be obtained using <a href="/docs/transformers/v4.33.0/en/model_doc/auto#transformers.AutoImageProcessor">AutoImageProcessor</a>. See <a href="/docs/transformers/v4.33.0/en/model_doc/donut#transformers.DonutFeatureExtractor.__call__">BitImageProcessor.<strong>call</strong>()</a>
for details.`,name:"pixel_values"},{anchor:"transformers.BitForImageClassification.forward.output_hidden_states",description:`<strong>output_hidden_states</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return the hidden states of all layers. See <code>hidden_states</code> under returned tensors for
more detail.`,name:"output_hidden_states"},{anchor:"transformers.BitForImageClassification.forward.return_dict",description:`<strong>return_dict</strong> (<code>bool</code>, <em>optional</em>) &#x2014;
Whether or not to return a <a href="/docs/transformers/v4.33.0/en/main_classes/output#transformers.utils.ModelOutput">ModelOutput</a> instead of a plain tuple.`,name:"return_dict"},{anchor:"transformers.BitForImageClassification.forward.labels",description:`<strong>labels</strong> (<code>torch.LongTensor</code> of shape <code>(batch_size,)</code>, <em>optional</em>) &#x2014;
Labels for computing the image classification/regression loss. Indices should be in <code>[0, ..., config.num_labels - 1]</code>. If <code>config.num_labels &gt; 1</code> a classification loss is computed (Cross-Entropy).`,name:"labels"}],source:"https://github.com/huggingface/transformers/blob/v4.33.0/src/transformers/models/bit/modeling_bit.py#L782",returnDescription:`
<p>A <a
  href="/docs/transformers/v4.33.0/en/main_classes/output#transformers.modeling_outputs.ImageClassifierOutputWithNoAttention"
>transformers.modeling_outputs.ImageClassifierOutputWithNoAttention</a> or a tuple of
<code>torch.FloatTensor</code> (if <code>return_dict=False</code> is passed or when <code>config.return_dict=False</code>) comprising various
elements depending on the configuration (<a
  href="/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitConfig"
>BitConfig</a>) and inputs.</p>
<ul>
<li><strong>loss</strong> (<code>torch.FloatTensor</code> of shape <code>(1,)</code>, <em>optional</em>, returned when <code>labels</code> is provided) \u2014 Classification (or regression if config.num_labels==1) loss.</li>
<li><strong>logits</strong> (<code>torch.FloatTensor</code> of shape <code>(batch_size, config.num_labels)</code>) \u2014 Classification (or regression if config.num_labels==1) scores (before SoftMax).</li>
<li><strong>hidden_states</strong> (<code>tuple(torch.FloatTensor)</code>, <em>optional</em>, returned when <code>output_hidden_states=True</code> is passed or when <code>config.output_hidden_states=True</code>) \u2014 Tuple of <code>torch.FloatTensor</code> (one for the output of the embeddings, if the model has an embedding layer, +
one for the output of each stage) of shape <code>(batch_size, num_channels, height, width)</code>. Hidden-states (also
called feature maps) of the model at the output of each stage.</li>
</ul>
`,returnType:`
<p><a
  href="/docs/transformers/v4.33.0/en/main_classes/output#transformers.modeling_outputs.ImageClassifierOutputWithNoAttention"
>transformers.modeling_outputs.ImageClassifierOutputWithNoAttention</a> or <code>tuple(torch.FloatTensor)</code></p>
`}}),se=new Sr({props:{$$slots:{default:[Hr]},$$scope:{ctx:E}}}),ne=new La({props:{anchor:"transformers.BitForImageClassification.forward.example",$$slots:{default:[Kr]},$$scope:{ctx:E}}}),{c(){h=a("meta"),v=m(),_=a("h1"),g=a("a"),b=a("span"),y(l.$$.fragment),u=m(),P=a("span"),co=n("Big Transfer (BiT)"),Ut=m(),F=a("h2"),Q=a("a"),pt=a("span"),y(me.$$.fragment),mo=m(),ft=a("span"),po=n("Overview"),Nt=m(),N=a("p"),fo=n("The BiT model was proposed in "),pe=a("a"),ho=n("Big Transfer (BiT): General Visual Representation Learning"),go=n(` by Alexander Kolesnikov, Lucas Beyer, Xiaohua Zhai, Joan Puigcerver, Jessica Yung, Sylvain Gelly, Neil Houlsby.
BiT is a simple recipe for scaling up pre-training of `),Se=a("a"),uo=n("ResNet"),_o=n("-like architectures (specifically, ResNetv2). The method results in significant improvements for transfer learning."),kt=m(),qe=a("p"),bo=n("The abstract from the paper is the following:"),Rt=m(),Ge=a("p"),ht=a("em"),vo=n("Transfer of pre-trained representations improves sample efficiency and simplifies hyperparameter tuning when training deep neural networks for vision. We revisit the paradigm of pre-training on large supervised datasets and fine-tuning the model on a target task. We scale up pre-training, and propose a simple recipe that we call Big Transfer (BiT). By combining a few carefully selected components, and transferring using a simple heuristic, we achieve strong performance on over 20 datasets. BiT performs well across a surprisingly wide range of data regimes \u2014 from 1 example per class to 1M total examples. BiT achieves 87.5% top-1 accuracy on ILSVRC-2012, 99.4% on CIFAR-10, and 76.3% on the 19 task Visual Task Adaptation Benchmark (VTAB). On small datasets, BiT attains 76.8% on ILSVRC-2012 with 10 examples per class, and 97.0% on CIFAR-10 with 10 examples per class. We conduct detailed analysis of the main components that lead to high transfer performance."),Ft=m(),Le=a("p"),yo=n("Tips:"),At=m(),Ve=a("ul"),A=a("li"),wo=n("BiT models are equivalent to ResNetv2 in terms of architecture, except that: 1) all batch normalization layers are replaced by "),fe=a("a"),Bo=n("group normalization"),To=n(`,
2) `),he=a("a"),$o=n("weight standardization"),Mo=n(` is used for convolutional layers. The authors show that the combination of both is useful for training with large batch sizes, and has a significant
impact on transfer learning.`),Jt=m(),k=a("p"),Io=n("This model was contributed by "),ge=a("a"),Co=n("nielsr"),Eo=n(`.
The original code can be found `),ue=a("a"),xo=n("here"),jo=n("."),Wt=m(),J=a("h2"),Y=a("a"),gt=a("span"),y(_e.$$.fragment),Po=m(),ut=a("span"),zo=n("Resources"),Zt=m(),Xe=a("p"),Uo=n("A list of official Hugging Face and community (indicated by \u{1F30E}) resources to help you get started with BiT."),St=m(),y(be.$$.fragment),qt=m(),D=a("ul"),R=a("li"),Qe=a("a"),No=n("BitForImageClassification"),ko=n(" is supported by this "),ve=a("a"),Ro=n("example script"),Fo=n(" and "),ye=a("a"),Ao=n("notebook"),Jo=n("."),Wo=m(),Ye=a("li"),Zo=n("See also: "),De=a("a"),So=n("Image classification task guide"),Gt=m(),Oe=a("p"),qo=n("If you\u2019re interested in submitting a resource to be included here, please feel free to open a Pull Request and we\u2019ll review it! The resource should ideally demonstrate something new instead of duplicating an existing resource."),Lt=m(),W=a("h2"),O=a("a"),_t=a("span"),y(we.$$.fragment),Go=m(),bt=a("span"),Lo=n("BitConfig"),Vt=m(),I=a("div"),y(Be.$$.fragment),Vo=m(),Z=a("p"),Xo=n("This is the configuration class to store the configuration of a "),He=a("a"),Qo=n("BitModel"),Yo=n(`. It is used to instantiate an BiT
model according to the specified arguments, defining the model architecture. Instantiating a configuration with the
defaults will yield a similar configuration to that of the BiT
`),Te=a("a"),Do=n("google/bit-50"),Oo=n(" architecture."),Ho=m(),S=a("p"),Ko=n("Configuration objects inherit from "),Ke=a("a"),ea=n("PretrainedConfig"),ta=n(` and can be used to control the model outputs. Read the
documentation from `),et=a("a"),oa=n("PretrainedConfig"),aa=n(" for more information."),ra=m(),y(H.$$.fragment),Xt=m(),q=a("h2"),K=a("a"),vt=a("span"),y($e.$$.fragment),sa=m(),yt=a("span"),na=n("BitImageProcessor"),Qt=m(),z=a("div"),y(Me.$$.fragment),ia=m(),wt=a("p"),la=n("Constructs a BiT image processor."),ca=m(),ee=a("div"),y(Ie.$$.fragment),da=m(),Bt=a("p"),ma=n("Preprocess an image or batch of images."),Yt=m(),G=a("h2"),te=a("a"),Tt=a("span"),y(Ce.$$.fragment),pa=m(),$t=a("span"),fa=n("BitModel"),Dt=m(),U=a("div"),y(Ee.$$.fragment),ha=m(),xe=a("p"),ga=n(`The bare BiT model outputting raw features without any specific head on top.
This model is a PyTorch `),je=a("a"),ua=n("torch.nn.Module"),_a=n(` subclass. Use it
as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),ba=m(),x=a("div"),y(Pe.$$.fragment),va=m(),L=a("p"),ya=n("The "),tt=a("a"),wa=n("BitModel"),Ba=n(" forward method, overrides the "),Mt=a("code"),Ta=n("__call__"),$a=n(" special method."),Ma=m(),y(oe.$$.fragment),Ia=m(),y(ae.$$.fragment),Ot=m(),V=a("h2"),re=a("a"),It=a("span"),y(ze.$$.fragment),Ca=m(),Ct=a("span"),Ea=n("BitForImageClassification"),Ht=m(),C=a("div"),y(Ue.$$.fragment),xa=m(),Et=a("p"),ja=n(`BiT Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for
ImageNet.`),Pa=m(),Ne=a("p"),za=n("This model is a PyTorch "),ke=a("a"),Ua=n("torch.nn.Module"),Na=n(` subclass. Use it
as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),ka=m(),j=a("div"),y(Re.$$.fragment),Ra=m(),X=a("p"),Fa=n("The "),ot=a("a"),Aa=n("BitForImageClassification"),Ja=n(" forward method, overrides the "),xt=a("code"),Wa=n("__call__"),Za=n(" special method."),Sa=m(),y(se.$$.fragment),qa=m(),y(ne.$$.fragment),this.h()},l(e){const d=Vr('[data-svelte="svelte-1phssyn"]',document.head);h=r(d,"META",{name:!0,content:!0}),d.forEach(o),v=p(e),_=r(e,"H1",{class:!0});var Fe=s(_);g=r(Fe,"A",{id:!0,class:!0,href:!0});var jt=s(g);b=r(jt,"SPAN",{});var Pt=s(b);w(l.$$.fragment,Pt),Pt.forEach(o),jt.forEach(o),u=p(Fe),P=r(Fe,"SPAN",{});var zt=s(P);co=i(zt,"Big Transfer (BiT)"),zt.forEach(o),Fe.forEach(o),Ut=p(e),F=r(e,"H2",{class:!0});var Ae=s(F);Q=r(Ae,"A",{id:!0,class:!0,href:!0});var Qa=s(Q);pt=r(Qa,"SPAN",{});var Ya=s(pt);w(me.$$.fragment,Ya),Ya.forEach(o),Qa.forEach(o),mo=p(Ae),ft=r(Ae,"SPAN",{});var Da=s(ft);po=i(Da,"Overview"),Da.forEach(o),Ae.forEach(o),Nt=p(e),N=r(e,"P",{});var at=s(N);fo=i(at,"The BiT model was proposed in "),pe=r(at,"A",{href:!0,rel:!0});var Oa=s(pe);ho=i(Oa,"Big Transfer (BiT): General Visual Representation Learning"),Oa.forEach(o),go=i(at,` by Alexander Kolesnikov, Lucas Beyer, Xiaohua Zhai, Joan Puigcerver, Jessica Yung, Sylvain Gelly, Neil Houlsby.
BiT is a simple recipe for scaling up pre-training of `),Se=r(at,"A",{href:!0});var Ha=s(Se);uo=i(Ha,"ResNet"),Ha.forEach(o),_o=i(at,"-like architectures (specifically, ResNetv2). The method results in significant improvements for transfer learning."),at.forEach(o),kt=p(e),qe=r(e,"P",{});var Ka=s(qe);bo=i(Ka,"The abstract from the paper is the following:"),Ka.forEach(o),Rt=p(e),Ge=r(e,"P",{});var er=s(Ge);ht=r(er,"EM",{});var tr=s(ht);vo=i(tr,"Transfer of pre-trained representations improves sample efficiency and simplifies hyperparameter tuning when training deep neural networks for vision. We revisit the paradigm of pre-training on large supervised datasets and fine-tuning the model on a target task. We scale up pre-training, and propose a simple recipe that we call Big Transfer (BiT). By combining a few carefully selected components, and transferring using a simple heuristic, we achieve strong performance on over 20 datasets. BiT performs well across a surprisingly wide range of data regimes \u2014 from 1 example per class to 1M total examples. BiT achieves 87.5% top-1 accuracy on ILSVRC-2012, 99.4% on CIFAR-10, and 76.3% on the 19 task Visual Task Adaptation Benchmark (VTAB). On small datasets, BiT attains 76.8% on ILSVRC-2012 with 10 examples per class, and 97.0% on CIFAR-10 with 10 examples per class. We conduct detailed analysis of the main components that lead to high transfer performance."),tr.forEach(o),er.forEach(o),Ft=p(e),Le=r(e,"P",{});var or=s(Le);yo=i(or,"Tips:"),or.forEach(o),At=p(e),Ve=r(e,"UL",{});var ar=s(Ve);A=r(ar,"LI",{});var rt=s(A);wo=i(rt,"BiT models are equivalent to ResNetv2 in terms of architecture, except that: 1) all batch normalization layers are replaced by "),fe=r(rt,"A",{href:!0,rel:!0});var rr=s(fe);Bo=i(rr,"group normalization"),rr.forEach(o),To=i(rt,`,
2) `),he=r(rt,"A",{href:!0,rel:!0});var sr=s(he);$o=i(sr,"weight standardization"),sr.forEach(o),Mo=i(rt,` is used for convolutional layers. The authors show that the combination of both is useful for training with large batch sizes, and has a significant
impact on transfer learning.`),rt.forEach(o),ar.forEach(o),Jt=p(e),k=r(e,"P",{});var st=s(k);Io=i(st,"This model was contributed by "),ge=r(st,"A",{href:!0,rel:!0});var nr=s(ge);Co=i(nr,"nielsr"),nr.forEach(o),Eo=i(st,`.
The original code can be found `),ue=r(st,"A",{href:!0,rel:!0});var ir=s(ue);xo=i(ir,"here"),ir.forEach(o),jo=i(st,"."),st.forEach(o),Wt=p(e),J=r(e,"H2",{class:!0});var eo=s(J);Y=r(eo,"A",{id:!0,class:!0,href:!0});var lr=s(Y);gt=r(lr,"SPAN",{});var cr=s(gt);w(_e.$$.fragment,cr),cr.forEach(o),lr.forEach(o),Po=p(eo),ut=r(eo,"SPAN",{});var dr=s(ut);zo=i(dr,"Resources"),dr.forEach(o),eo.forEach(o),Zt=p(e),Xe=r(e,"P",{});var mr=s(Xe);Uo=i(mr,"A list of official Hugging Face and community (indicated by \u{1F30E}) resources to help you get started with BiT."),mr.forEach(o),St=p(e),w(be.$$.fragment,e),qt=p(e),D=r(e,"UL",{});var to=s(D);R=r(to,"LI",{});var Je=s(R);Qe=r(Je,"A",{href:!0});var pr=s(Qe);No=i(pr,"BitForImageClassification"),pr.forEach(o),ko=i(Je," is supported by this "),ve=r(Je,"A",{href:!0,rel:!0});var fr=s(ve);Ro=i(fr,"example script"),fr.forEach(o),Fo=i(Je," and "),ye=r(Je,"A",{href:!0,rel:!0});var hr=s(ye);Ao=i(hr,"notebook"),hr.forEach(o),Jo=i(Je,"."),Je.forEach(o),Wo=p(to),Ye=r(to,"LI",{});var Ga=s(Ye);Zo=i(Ga,"See also: "),De=r(Ga,"A",{href:!0});var gr=s(De);So=i(gr,"Image classification task guide"),gr.forEach(o),Ga.forEach(o),to.forEach(o),Gt=p(e),Oe=r(e,"P",{});var ur=s(Oe);qo=i(ur,"If you\u2019re interested in submitting a resource to be included here, please feel free to open a Pull Request and we\u2019ll review it! The resource should ideally demonstrate something new instead of duplicating an existing resource."),ur.forEach(o),Lt=p(e),W=r(e,"H2",{class:!0});var oo=s(W);O=r(oo,"A",{id:!0,class:!0,href:!0});var _r=s(O);_t=r(_r,"SPAN",{});var br=s(_t);w(we.$$.fragment,br),br.forEach(o),_r.forEach(o),Go=p(oo),bt=r(oo,"SPAN",{});var vr=s(bt);Lo=i(vr,"BitConfig"),vr.forEach(o),oo.forEach(o),Vt=p(e),I=r(e,"DIV",{class:!0});var ie=s(I);w(Be.$$.fragment,ie),Vo=p(ie),Z=r(ie,"P",{});var nt=s(Z);Xo=i(nt,"This is the configuration class to store the configuration of a "),He=r(nt,"A",{href:!0});var yr=s(He);Qo=i(yr,"BitModel"),yr.forEach(o),Yo=i(nt,`. It is used to instantiate an BiT
model according to the specified arguments, defining the model architecture. Instantiating a configuration with the
defaults will yield a similar configuration to that of the BiT
`),Te=r(nt,"A",{href:!0,rel:!0});var wr=s(Te);Do=i(wr,"google/bit-50"),wr.forEach(o),Oo=i(nt," architecture."),nt.forEach(o),Ho=p(ie),S=r(ie,"P",{});var it=s(S);Ko=i(it,"Configuration objects inherit from "),Ke=r(it,"A",{href:!0});var Br=s(Ke);ea=i(Br,"PretrainedConfig"),Br.forEach(o),ta=i(it,` and can be used to control the model outputs. Read the
documentation from `),et=r(it,"A",{href:!0});var Tr=s(et);oa=i(Tr,"PretrainedConfig"),Tr.forEach(o),aa=i(it," for more information."),it.forEach(o),ra=p(ie),w(H.$$.fragment,ie),ie.forEach(o),Xt=p(e),q=r(e,"H2",{class:!0});var ao=s(q);K=r(ao,"A",{id:!0,class:!0,href:!0});var $r=s(K);vt=r($r,"SPAN",{});var Mr=s(vt);w($e.$$.fragment,Mr),Mr.forEach(o),$r.forEach(o),sa=p(ao),yt=r(ao,"SPAN",{});var Ir=s(yt);na=i(Ir,"BitImageProcessor"),Ir.forEach(o),ao.forEach(o),Qt=p(e),z=r(e,"DIV",{class:!0});var lt=s(z);w(Me.$$.fragment,lt),ia=p(lt),wt=r(lt,"P",{});var Cr=s(wt);la=i(Cr,"Constructs a BiT image processor."),Cr.forEach(o),ca=p(lt),ee=r(lt,"DIV",{class:!0});var ro=s(ee);w(Ie.$$.fragment,ro),da=p(ro),Bt=r(ro,"P",{});var Er=s(Bt);ma=i(Er,"Preprocess an image or batch of images."),Er.forEach(o),ro.forEach(o),lt.forEach(o),Yt=p(e),G=r(e,"H2",{class:!0});var so=s(G);te=r(so,"A",{id:!0,class:!0,href:!0});var xr=s(te);Tt=r(xr,"SPAN",{});var jr=s(Tt);w(Ce.$$.fragment,jr),jr.forEach(o),xr.forEach(o),pa=p(so),$t=r(so,"SPAN",{});var Pr=s($t);fa=i(Pr,"BitModel"),Pr.forEach(o),so.forEach(o),Dt=p(e),U=r(e,"DIV",{class:!0});var ct=s(U);w(Ee.$$.fragment,ct),ha=p(ct),xe=r(ct,"P",{});var no=s(xe);ga=i(no,`The bare BiT model outputting raw features without any specific head on top.
This model is a PyTorch `),je=r(no,"A",{href:!0,rel:!0});var zr=s(je);ua=i(zr,"torch.nn.Module"),zr.forEach(o),_a=i(no,` subclass. Use it
as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),no.forEach(o),ba=p(ct),x=r(ct,"DIV",{class:!0});var le=s(x);w(Pe.$$.fragment,le),va=p(le),L=r(le,"P",{});var dt=s(L);ya=i(dt,"The "),tt=r(dt,"A",{href:!0});var Ur=s(tt);wa=i(Ur,"BitModel"),Ur.forEach(o),Ba=i(dt," forward method, overrides the "),Mt=r(dt,"CODE",{});var Nr=s(Mt);Ta=i(Nr,"__call__"),Nr.forEach(o),$a=i(dt," special method."),dt.forEach(o),Ma=p(le),w(oe.$$.fragment,le),Ia=p(le),w(ae.$$.fragment,le),le.forEach(o),ct.forEach(o),Ot=p(e),V=r(e,"H2",{class:!0});var io=s(V);re=r(io,"A",{id:!0,class:!0,href:!0});var kr=s(re);It=r(kr,"SPAN",{});var Rr=s(It);w(ze.$$.fragment,Rr),Rr.forEach(o),kr.forEach(o),Ca=p(io),Ct=r(io,"SPAN",{});var Fr=s(Ct);Ea=i(Fr,"BitForImageClassification"),Fr.forEach(o),io.forEach(o),Ht=p(e),C=r(e,"DIV",{class:!0});var ce=s(C);w(Ue.$$.fragment,ce),xa=p(ce),Et=r(ce,"P",{});var Ar=s(Et);ja=i(Ar,`BiT Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for
ImageNet.`),Ar.forEach(o),Pa=p(ce),Ne=r(ce,"P",{});var lo=s(Ne);za=i(lo,"This model is a PyTorch "),ke=r(lo,"A",{href:!0,rel:!0});var Jr=s(ke);Ua=i(Jr,"torch.nn.Module"),Jr.forEach(o),Na=i(lo,` subclass. Use it
as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),lo.forEach(o),ka=p(ce),j=r(ce,"DIV",{class:!0});var de=s(j);w(Re.$$.fragment,de),Ra=p(de),X=r(de,"P",{});var mt=s(X);Fa=i(mt,"The "),ot=r(mt,"A",{href:!0});var Wr=s(ot);Aa=i(Wr,"BitForImageClassification"),Wr.forEach(o),Ja=i(mt," forward method, overrides the "),xt=r(mt,"CODE",{});var Zr=s(xt);Wa=i(Zr,"__call__"),Zr.forEach(o),Za=i(mt," special method."),mt.forEach(o),Sa=p(de),w(se.$$.fragment,de),qa=p(de),w(ne.$$.fragment,de),de.forEach(o),ce.forEach(o),this.h()},h(){c(h,"name","hf:doc:metadata"),c(h,"content",JSON.stringify(ts)),c(g,"id","big-transfer-bit"),c(g,"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"),c(g,"href","#big-transfer-bit"),c(_,"class","relative group"),c(Q,"id","overview"),c(Q,"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"),c(Q,"href","#overview"),c(F,"class","relative group"),c(pe,"href","https://arxiv.org/abs/1912.11370"),c(pe,"rel","nofollow"),c(Se,"href","resnet"),c(fe,"href","https://arxiv.org/abs/1803.08494"),c(fe,"rel","nofollow"),c(he,"href","https://arxiv.org/abs/1903.10520"),c(he,"rel","nofollow"),c(ge,"href","https://huggingface.co/nielsr"),c(ge,"rel","nofollow"),c(ue,"href","https://github.com/google-research/big_transfer"),c(ue,"rel","nofollow"),c(Y,"id","resources"),c(Y,"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"),c(Y,"href","#resources"),c(J,"class","relative group"),c(Qe,"href","/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitForImageClassification"),c(ve,"href","https://github.com/huggingface/transformers/tree/main/examples/pytorch/image-classification"),c(ve,"rel","nofollow"),c(ye,"href","https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/image_classification.ipynb"),c(ye,"rel","nofollow"),c(De,"href","../tasks/image_classification"),c(O,"id","transformers.BitConfig"),c(O,"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"),c(O,"href","#transformers.BitConfig"),c(W,"class","relative group"),c(He,"href","/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitModel"),c(Te,"href","https://huggingface.co/google/bit-50"),c(Te,"rel","nofollow"),c(Ke,"href","/docs/transformers/v4.33.0/en/main_classes/configuration#transformers.PretrainedConfig"),c(et,"href","/docs/transformers/v4.33.0/en/main_classes/configuration#transformers.PretrainedConfig"),c(I,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(K,"id","transformers.BitImageProcessor"),c(K,"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"),c(K,"href","#transformers.BitImageProcessor"),c(q,"class","relative group"),c(ee,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(z,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(te,"id","transformers.BitModel"),c(te,"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"),c(te,"href","#transformers.BitModel"),c(G,"class","relative group"),c(je,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),c(je,"rel","nofollow"),c(tt,"href","/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitModel"),c(x,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(U,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(re,"id","transformers.BitForImageClassification"),c(re,"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"),c(re,"href","#transformers.BitForImageClassification"),c(V,"class","relative group"),c(ke,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),c(ke,"rel","nofollow"),c(ot,"href","/docs/transformers/v4.33.0/en/model_doc/bit#transformers.BitForImageClassification"),c(j,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8"),c(C,"class","docstring border-l-2 border-t-2 pl-4 pt-3.5 border-gray-100 rounded-tl-xl mb-6 mt-8")},m(e,d){t(document.head,h),f(e,v,d),f(e,_,d),t(_,g),t(g,b),B(l,b,null),t(_,u),t(_,P),t(P,co),f(e,Ut,d),f(e,F,d),t(F,Q),t(Q,pt),B(me,pt,null),t(F,mo),t(F,ft),t(ft,po),f(e,Nt,d),f(e,N,d),t(N,fo),t(N,pe),t(pe,ho),t(N,go),t(N,Se),t(Se,uo),t(N,_o),f(e,kt,d),f(e,qe,d),t(qe,bo),f(e,Rt,d),f(e,Ge,d),t(Ge,ht),t(ht,vo),f(e,Ft,d),f(e,Le,d),t(Le,yo),f(e,At,d),f(e,Ve,d),t(Ve,A),t(A,wo),t(A,fe),t(fe,Bo),t(A,To),t(A,he),t(he,$o),t(A,Mo),f(e,Jt,d),f(e,k,d),t(k,Io),t(k,ge),t(ge,Co),t(k,Eo),t(k,ue),t(ue,xo),t(k,jo),f(e,Wt,d),f(e,J,d),t(J,Y),t(Y,gt),B(_e,gt,null),t(J,Po),t(J,ut),t(ut,zo),f(e,Zt,d),f(e,Xe,d),t(Xe,Uo),f(e,St,d),B(be,e,d),f(e,qt,d),f(e,D,d),t(D,R),t(R,Qe),t(Qe,No),t(R,ko),t(R,ve),t(ve,Ro),t(R,Fo),t(R,ye),t(ye,Ao),t(R,Jo),t(D,Wo),t(D,Ye),t(Ye,Zo),t(Ye,De),t(De,So),f(e,Gt,d),f(e,Oe,d),t(Oe,qo),f(e,Lt,d),f(e,W,d),t(W,O),t(O,_t),B(we,_t,null),t(W,Go),t(W,bt),t(bt,Lo),f(e,Vt,d),f(e,I,d),B(Be,I,null),t(I,Vo),t(I,Z),t(Z,Xo),t(Z,He),t(He,Qo),t(Z,Yo),t(Z,Te),t(Te,Do),t(Z,Oo),t(I,Ho),t(I,S),t(S,Ko),t(S,Ke),t(Ke,ea),t(S,ta),t(S,et),t(et,oa),t(S,aa),t(I,ra),B(H,I,null),f(e,Xt,d),f(e,q,d),t(q,K),t(K,vt),B($e,vt,null),t(q,sa),t(q,yt),t(yt,na),f(e,Qt,d),f(e,z,d),B(Me,z,null),t(z,ia),t(z,wt),t(wt,la),t(z,ca),t(z,ee),B(Ie,ee,null),t(ee,da),t(ee,Bt),t(Bt,ma),f(e,Yt,d),f(e,G,d),t(G,te),t(te,Tt),B(Ce,Tt,null),t(G,pa),t(G,$t),t($t,fa),f(e,Dt,d),f(e,U,d),B(Ee,U,null),t(U,ha),t(U,xe),t(xe,ga),t(xe,je),t(je,ua),t(xe,_a),t(U,ba),t(U,x),B(Pe,x,null),t(x,va),t(x,L),t(L,ya),t(L,tt),t(tt,wa),t(L,Ba),t(L,Mt),t(Mt,Ta),t(L,$a),t(x,Ma),B(oe,x,null),t(x,Ia),B(ae,x,null),f(e,Ot,d),f(e,V,d),t(V,re),t(re,It),B(ze,It,null),t(V,Ca),t(V,Ct),t(Ct,Ea),f(e,Ht,d),f(e,C,d),B(Ue,C,null),t(C,xa),t(C,Et),t(Et,ja),t(C,Pa),t(C,Ne),t(Ne,za),t(Ne,ke),t(ke,Ua),t(Ne,Na),t(C,ka),t(C,j),B(Re,j,null),t(j,Ra),t(j,X),t(X,Fa),t(X,ot),t(ot,Aa),t(X,Ja),t(X,xt),t(xt,Wa),t(X,Za),t(j,Sa),B(se,j,null),t(j,qa),B(ne,j,null),Kt=!0},p(e,[d]){const Fe={};d&2&&(Fe.$$scope={dirty:d,ctx:e}),H.$set(Fe);const jt={};d&2&&(jt.$$scope={dirty:d,ctx:e}),oe.$set(jt);const Pt={};d&2&&(Pt.$$scope={dirty:d,ctx:e}),ae.$set(Pt);const zt={};d&2&&(zt.$$scope={dirty:d,ctx:e}),se.$set(zt);const Ae={};d&2&&(Ae.$$scope={dirty:d,ctx:e}),ne.$set(Ae)},i(e){Kt||(T(l.$$.fragment,e),T(me.$$.fragment,e),T(_e.$$.fragment,e),T(be.$$.fragment,e),T(we.$$.fragment,e),T(Be.$$.fragment,e),T(H.$$.fragment,e),T($e.$$.fragment,e),T(Me.$$.fragment,e),T(Ie.$$.fragment,e),T(Ce.$$.fragment,e),T(Ee.$$.fragment,e),T(Pe.$$.fragment,e),T(oe.$$.fragment,e),T(ae.$$.fragment,e),T(ze.$$.fragment,e),T(Ue.$$.fragment,e),T(Re.$$.fragment,e),T(se.$$.fragment,e),T(ne.$$.fragment,e),Kt=!0)},o(e){$(l.$$.fragment,e),$(me.$$.fragment,e),$(_e.$$.fragment,e),$(be.$$.fragment,e),$(we.$$.fragment,e),$(Be.$$.fragment,e),$(H.$$.fragment,e),$($e.$$.fragment,e),$(Me.$$.fragment,e),$(Ie.$$.fragment,e),$(Ce.$$.fragment,e),$(Ee.$$.fragment,e),$(Pe.$$.fragment,e),$(oe.$$.fragment,e),$(ae.$$.fragment,e),$(ze.$$.fragment,e),$(Ue.$$.fragment,e),$(Re.$$.fragment,e),$(se.$$.fragment,e),$(ne.$$.fragment,e),Kt=!1},d(e){o(h),e&&o(v),e&&o(_),M(l),e&&o(Ut),e&&o(F),M(me),e&&o(Nt),e&&o(N),e&&o(kt),e&&o(qe),e&&o(Rt),e&&o(Ge),e&&o(Ft),e&&o(Le),e&&o(At),e&&o(Ve),e&&o(Jt),e&&o(k),e&&o(Wt),e&&o(J),M(_e),e&&o(Zt),e&&o(Xe),e&&o(St),M(be,e),e&&o(qt),e&&o(D),e&&o(Gt),e&&o(Oe),e&&o(Lt),e&&o(W),M(we),e&&o(Vt),e&&o(I),M(Be),M(H),e&&o(Xt),e&&o(q),M($e),e&&o(Qt),e&&o(z),M(Me),M(Ie),e&&o(Yt),e&&o(G),M(Ce),e&&o(Dt),e&&o(U),M(Ee),M(Pe),M(oe),M(ae),e&&o(Ot),e&&o(V),M(ze),e&&o(Ht),e&&o(C),M(Ue),M(Re),M(se),M(ne)}}}const ts={local:"big-transfer-bit",sections:[{local:"overview",title:"Overview"},{local:"resources",title:"Resources"},{local:"transformers.BitConfig",title:"BitConfig"},{local:"transformers.BitImageProcessor",title:"BitImageProcessor"},{local:"transformers.BitModel",title:"BitModel"},{local:"transformers.BitForImageClassification",title:"BitForImageClassification"}],title:"Big Transfer (BiT)"};function os(E){return Xr(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ds extends qr{constructor(h){super();Gr(this,h,os,es,Lr,{})}}export{ds as default,ts as metadata};
