import{S as Ga,i as qa,s as Va,e as r,k as m,w as y,t as n,M as La,c as a,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 T,q as B,o as $,B as M,v as Xa,L as Lr}from"../../chunks/vendor-hf-doc-builder.js";import{T as Sa}from"../../chunks/Tip-hf-doc-builder.js";import{D as We}from"../../chunks/Docstring-hf-doc-builder.js";import{C as Xr}from"../../chunks/CodeBlock-hf-doc-builder.js";import{I as Ze}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{E as Vr}from"../../chunks/ExampleCodeBlock-hf-doc-builder.js";import{P as Qa}from"../../chunks/PipelineTag-hf-doc-builder.js";function Ya(E){let h,v,_,g,b;return g=new Xr({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=r("p"),v=n("Example:"),_=m(),y(g.$$.fragment)},l(l){h=a(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),T(g,l,u),b=!0},p:Lr,i(l){b||(B(g.$$.fragment,l),b=!0)},o(l){$(g.$$.fragment,l),b=!1},d(l){l&&o(h),l&&o(_),M(g,l)}}}function Da(E){let h,v,_,g,b;return{c(){h=r("p"),v=n("Although the recipe for forward pass needs to be defined within this function, one should call the "),_=r("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=a(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 "),_=a(u,"CODE",{});var z=s(_);g=i(z,"Module"),z.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 Ha(E){let h,v,_,g,b;return g=new Xr({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=r("p"),v=n("Example:"),_=m(),y(g.$$.fragment)},l(l){h=a(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),T(g,l,u),b=!0},p:Lr,i(l){b||(B(g.$$.fragment,l),b=!0)},o(l){$(g.$$.fragment,l),b=!1},d(l){l&&o(h),l&&o(_),M(g,l)}}}function Oa(E){let h,v,_,g,b;return{c(){h=r("p"),v=n("Although the recipe for forward pass needs to be defined within this function, one should call the "),_=r("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=a(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 "),_=a(u,"CODE",{});var z=s(_);g=i(z,"Module"),z.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 Ka(E){let h,v,_,g,b;return g=new Xr({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=r("p"),v=n("Example:"),_=m(),y(g.$$.fragment)},l(l){h=a(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),T(g,l,u),b=!0},p:Lr,i(l){b||(B(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,z,co,Ut,A,Q,pt,me,mo,ft,po,Nt,N,fo,pe,ho,go,Se,uo,_o,kt,Ge,bo,Rt,qe,ht,vo,At,Ve,yo,Ft,Le,F,wo,fe,To,Bo,he,$o,Mo,Jt,k,Io,ge,Co,Eo,ue,xo,jo,Wt,J,Y,gt,_e,zo,ut,Po,Zt,Xe,Uo,St,be,Gt,D,R,Qe,No,ko,ve,Ro,Ao,ye,Fo,Jo,Wo,Ye,Zo,De,So,qt,He,Go,Vt,W,H,_t,we,qo,bt,Vo,Lt,I,Te,Lo,Z,Xo,Oe,Qo,Yo,Be,Do,Ho,Oo,S,Ko,Ke,er,tr,et,or,rr,ar,O,Xt,G,K,vt,$e,sr,yt,nr,Qt,P,Me,ir,wt,lr,cr,ee,Ie,dr,Tt,mr,Yt,q,te,Bt,Ce,pr,$t,fr,Dt,U,Ee,hr,xe,gr,je,ur,_r,br,x,ze,vr,V,yr,tt,wr,Tr,Mt,Br,$r,Mr,oe,Ir,re,Ht,L,ae,It,Pe,Cr,Ct,Er,Ot,C,Ue,xr,Et,jr,zr,Ne,Pr,ke,Ur,Nr,kr,j,Re,Rr,X,Ar,ot,Fr,Jr,xt,Wr,Zr,Sr,se,Gr,ne,Kt;return l=new Ze({}),me=new Ze({}),_e=new Ze({}),be=new Qa({props:{pipeline:"image-classification"}}),we=new Ze({}),Te=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.31.0/src/transformers/models/bit/configuration_bit.py#L29"}}),O=new Vr({props:{anchor:"transformers.BitConfig.example",$$slots:{default:[Ya]},$$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>IMAGENET_STANDARD_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>IMAGENET_STANDARD_STD</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.31.0/src/transformers/models/bit/image_processing_bit.py#L51"}}),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:"**kwargs",val:""}],parametersDescription:[{anchor:"transformers.BitImageProcessor.preprocess.images",description:`<strong>images</strong> (<code>ImageInput</code>) &#x2014;
Image to preprocess.`,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>ChannelDimension.FIRST</code>: image in (num_channels, height, width) format.</li>
<li><code>ChannelDimension.LAST</code>: image in (height, width, num_channels) format.</li>
<li>Unset: defaults to the channel dimension format of the input image.</li>
</ul>`,name:"data_format"}],source:"https://github.com/huggingface/transformers/blob/v4.31.0/src/transformers/models/bit/image_processing_bit.py#L219"}}),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.31.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.31.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.31.0/src/transformers/models/bit/modeling_bit.py#L706"}}),ze=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.31.0/en/model_doc/auto#transformers.AutoImageProcessor">AutoImageProcessor</a>. See <a href="/docs/transformers/v4.31.0/en/model_doc/perceiver#transformers.PerceiverFeatureExtractor.__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.31.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.31.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.31.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 Sa({props:{$$slots:{default:[Da]},$$scope:{ctx:E}}}),re=new Vr({props:{anchor:"transformers.BitModel.forward.example",$$slots:{default:[Ha]},$$scope:{ctx:E}}}),Pe=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.31.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.31.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.31.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.31.0/en/model_doc/auto#transformers.AutoImageProcessor">AutoImageProcessor</a>. See <a href="/docs/transformers/v4.31.0/en/model_doc/perceiver#transformers.PerceiverFeatureExtractor.__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.31.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.31.0/src/transformers/models/bit/modeling_bit.py#L782",returnDescription:`
<p>A <a
  href="/docs/transformers/v4.31.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.31.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.31.0/en/main_classes/output#transformers.modeling_outputs.ImageClassifierOutputWithNoAttention"
>transformers.modeling_outputs.ImageClassifierOutputWithNoAttention</a> or <code>tuple(torch.FloatTensor)</code></p>
`}}),se=new Sa({props:{$$slots:{default:[Oa]},$$scope:{ctx:E}}}),ne=new Vr({props:{anchor:"transformers.BitForImageClassification.forward.example",$$slots:{default:[Ka]},$$scope:{ctx:E}}}),{c(){h=r("meta"),v=m(),_=r("h1"),g=r("a"),b=r("span"),y(l.$$.fragment),u=m(),z=r("span"),co=n("Big Transfer (BiT)"),Ut=m(),A=r("h2"),Q=r("a"),pt=r("span"),y(me.$$.fragment),mo=m(),ft=r("span"),po=n("Overview"),Nt=m(),N=r("p"),fo=n("The BiT model was proposed in "),pe=r("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=r("a"),uo=n("ResNet"),_o=n("-like architectures (specifically, ResNetv2). The method results in significant improvements for transfer learning."),kt=m(),Ge=r("p"),bo=n("The abstract from the paper is the following:"),Rt=m(),qe=r("p"),ht=r("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."),At=m(),Ve=r("p"),yo=n("Tips:"),Ft=m(),Le=r("ul"),F=r("li"),wo=n("BiT models are equivalent to ResNetv2 in terms of architecture, except that: 1) all batch normalization layers are replaced by "),fe=r("a"),To=n("group normalization"),Bo=n(`,
2) `),he=r("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=r("p"),Io=n("This model was contributed by "),ge=r("a"),Co=n("nielsr"),Eo=n(`.
The original code can be found `),ue=r("a"),xo=n("here"),jo=n("."),Wt=m(),J=r("h2"),Y=r("a"),gt=r("span"),y(_e.$$.fragment),zo=m(),ut=r("span"),Po=n("Resources"),Zt=m(),Xe=r("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),Gt=m(),D=r("ul"),R=r("li"),Qe=r("a"),No=n("BitForImageClassification"),ko=n(" is supported by this "),ve=r("a"),Ro=n("example script"),Ao=n(" and "),ye=r("a"),Fo=n("notebook"),Jo=n("."),Wo=m(),Ye=r("li"),Zo=n("See also: "),De=r("a"),So=n("Image classification task guide"),qt=m(),He=r("p"),Go=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."),Vt=m(),W=r("h2"),H=r("a"),_t=r("span"),y(we.$$.fragment),qo=m(),bt=r("span"),Vo=n("BitConfig"),Lt=m(),I=r("div"),y(Te.$$.fragment),Lo=m(),Z=r("p"),Xo=n("This is the configuration class to store the configuration of a "),Oe=r("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
`),Be=r("a"),Do=n("google/bit-50"),Ho=n(" architecture."),Oo=m(),S=r("p"),Ko=n("Configuration objects inherit from "),Ke=r("a"),er=n("PretrainedConfig"),tr=n(` and can be used to control the model outputs. Read the
documentation from `),et=r("a"),or=n("PretrainedConfig"),rr=n(" for more information."),ar=m(),y(O.$$.fragment),Xt=m(),G=r("h2"),K=r("a"),vt=r("span"),y($e.$$.fragment),sr=m(),yt=r("span"),nr=n("BitImageProcessor"),Qt=m(),P=r("div"),y(Me.$$.fragment),ir=m(),wt=r("p"),lr=n("Constructs a BiT image processor."),cr=m(),ee=r("div"),y(Ie.$$.fragment),dr=m(),Tt=r("p"),mr=n("Preprocess an image or batch of images."),Yt=m(),q=r("h2"),te=r("a"),Bt=r("span"),y(Ce.$$.fragment),pr=m(),$t=r("span"),fr=n("BitModel"),Dt=m(),U=r("div"),y(Ee.$$.fragment),hr=m(),xe=r("p"),gr=n(`The bare BiT model outputting raw features without any specific head on top.
This model is a PyTorch `),je=r("a"),ur=n("torch.nn.Module"),_r=n(` subclass. Use it
as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),br=m(),x=r("div"),y(ze.$$.fragment),vr=m(),V=r("p"),yr=n("The "),tt=r("a"),wr=n("BitModel"),Tr=n(" forward method, overrides the "),Mt=r("code"),Br=n("__call__"),$r=n(" special method."),Mr=m(),y(oe.$$.fragment),Ir=m(),y(re.$$.fragment),Ht=m(),L=r("h2"),ae=r("a"),It=r("span"),y(Pe.$$.fragment),Cr=m(),Ct=r("span"),Er=n("BitForImageClassification"),Ot=m(),C=r("div"),y(Ue.$$.fragment),xr=m(),Et=r("p"),jr=n(`BiT Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for
ImageNet.`),zr=m(),Ne=r("p"),Pr=n("This model is a PyTorch "),ke=r("a"),Ur=n("torch.nn.Module"),Nr=n(` subclass. Use it
as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
behavior.`),kr=m(),j=r("div"),y(Re.$$.fragment),Rr=m(),X=r("p"),Ar=n("The "),ot=r("a"),Fr=n("BitForImageClassification"),Jr=n(" forward method, overrides the "),xt=r("code"),Wr=n("__call__"),Zr=n(" special method."),Sr=m(),y(se.$$.fragment),Gr=m(),y(ne.$$.fragment),this.h()},l(e){const d=La('[data-svelte="svelte-1phssyn"]',document.head);h=a(d,"META",{name:!0,content:!0}),d.forEach(o),v=p(e),_=a(e,"H1",{class:!0});var Ae=s(_);g=a(Ae,"A",{id:!0,class:!0,href:!0});var jt=s(g);b=a(jt,"SPAN",{});var zt=s(b);w(l.$$.fragment,zt),zt.forEach(o),jt.forEach(o),u=p(Ae),z=a(Ae,"SPAN",{});var Pt=s(z);co=i(Pt,"Big Transfer (BiT)"),Pt.forEach(o),Ae.forEach(o),Ut=p(e),A=a(e,"H2",{class:!0});var Fe=s(A);Q=a(Fe,"A",{id:!0,class:!0,href:!0});var Qr=s(Q);pt=a(Qr,"SPAN",{});var Yr=s(pt);w(me.$$.fragment,Yr),Yr.forEach(o),Qr.forEach(o),mo=p(Fe),ft=a(Fe,"SPAN",{});var Dr=s(ft);po=i(Dr,"Overview"),Dr.forEach(o),Fe.forEach(o),Nt=p(e),N=a(e,"P",{});var rt=s(N);fo=i(rt,"The BiT model was proposed in "),pe=a(rt,"A",{href:!0,rel:!0});var Hr=s(pe);ho=i(Hr,"Big Transfer (BiT): General Visual Representation Learning"),Hr.forEach(o),go=i(rt,` 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(rt,"A",{href:!0});var Or=s(Se);uo=i(Or,"ResNet"),Or.forEach(o),_o=i(rt,"-like architectures (specifically, ResNetv2). The method results in significant improvements for transfer learning."),rt.forEach(o),kt=p(e),Ge=a(e,"P",{});var Kr=s(Ge);bo=i(Kr,"The abstract from the paper is the following:"),Kr.forEach(o),Rt=p(e),qe=a(e,"P",{});var ea=s(qe);ht=a(ea,"EM",{});var ta=s(ht);vo=i(ta,"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."),ta.forEach(o),ea.forEach(o),At=p(e),Ve=a(e,"P",{});var oa=s(Ve);yo=i(oa,"Tips:"),oa.forEach(o),Ft=p(e),Le=a(e,"UL",{});var ra=s(Le);F=a(ra,"LI",{});var at=s(F);wo=i(at,"BiT models are equivalent to ResNetv2 in terms of architecture, except that: 1) all batch normalization layers are replaced by "),fe=a(at,"A",{href:!0,rel:!0});var aa=s(fe);To=i(aa,"group normalization"),aa.forEach(o),Bo=i(at,`,
2) `),he=a(at,"A",{href:!0,rel:!0});var sa=s(he);$o=i(sa,"weight standardization"),sa.forEach(o),Mo=i(at,` 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.`),at.forEach(o),ra.forEach(o),Jt=p(e),k=a(e,"P",{});var st=s(k);Io=i(st,"This model was contributed by "),ge=a(st,"A",{href:!0,rel:!0});var na=s(ge);Co=i(na,"nielsr"),na.forEach(o),Eo=i(st,`.
The original code can be found `),ue=a(st,"A",{href:!0,rel:!0});var ia=s(ue);xo=i(ia,"here"),ia.forEach(o),jo=i(st,"."),st.forEach(o),Wt=p(e),J=a(e,"H2",{class:!0});var eo=s(J);Y=a(eo,"A",{id:!0,class:!0,href:!0});var la=s(Y);gt=a(la,"SPAN",{});var ca=s(gt);w(_e.$$.fragment,ca),ca.forEach(o),la.forEach(o),zo=p(eo),ut=a(eo,"SPAN",{});var da=s(ut);Po=i(da,"Resources"),da.forEach(o),eo.forEach(o),Zt=p(e),Xe=a(e,"P",{});var ma=s(Xe);Uo=i(ma,"A list of official Hugging Face and community (indicated by \u{1F30E}) resources to help you get started with BiT."),ma.forEach(o),St=p(e),w(be.$$.fragment,e),Gt=p(e),D=a(e,"UL",{});var to=s(D);R=a(to,"LI",{});var Je=s(R);Qe=a(Je,"A",{href:!0});var pa=s(Qe);No=i(pa,"BitForImageClassification"),pa.forEach(o),ko=i(Je," is supported by this "),ve=a(Je,"A",{href:!0,rel:!0});var fa=s(ve);Ro=i(fa,"example script"),fa.forEach(o),Ao=i(Je," and "),ye=a(Je,"A",{href:!0,rel:!0});var ha=s(ye);Fo=i(ha,"notebook"),ha.forEach(o),Jo=i(Je,"."),Je.forEach(o),Wo=p(to),Ye=a(to,"LI",{});var qr=s(Ye);Zo=i(qr,"See also: "),De=a(qr,"A",{href:!0});var ga=s(De);So=i(ga,"Image classification task guide"),ga.forEach(o),qr.forEach(o),to.forEach(o),qt=p(e),He=a(e,"P",{});var ua=s(He);Go=i(ua,"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."),ua.forEach(o),Vt=p(e),W=a(e,"H2",{class:!0});var oo=s(W);H=a(oo,"A",{id:!0,class:!0,href:!0});var _a=s(H);_t=a(_a,"SPAN",{});var ba=s(_t);w(we.$$.fragment,ba),ba.forEach(o),_a.forEach(o),qo=p(oo),bt=a(oo,"SPAN",{});var va=s(bt);Vo=i(va,"BitConfig"),va.forEach(o),oo.forEach(o),Lt=p(e),I=a(e,"DIV",{class:!0});var ie=s(I);w(Te.$$.fragment,ie),Lo=p(ie),Z=a(ie,"P",{});var nt=s(Z);Xo=i(nt,"This is the configuration class to store the configuration of a "),Oe=a(nt,"A",{href:!0});var ya=s(Oe);Qo=i(ya,"BitModel"),ya.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
`),Be=a(nt,"A",{href:!0,rel:!0});var wa=s(Be);Do=i(wa,"google/bit-50"),wa.forEach(o),Ho=i(nt," architecture."),nt.forEach(o),Oo=p(ie),S=a(ie,"P",{});var it=s(S);Ko=i(it,"Configuration objects inherit from "),Ke=a(it,"A",{href:!0});var Ta=s(Ke);er=i(Ta,"PretrainedConfig"),Ta.forEach(o),tr=i(it,` and can be used to control the model outputs. Read the
documentation from `),et=a(it,"A",{href:!0});var Ba=s(et);or=i(Ba,"PretrainedConfig"),Ba.forEach(o),rr=i(it," for more information."),it.forEach(o),ar=p(ie),w(O.$$.fragment,ie),ie.forEach(o),Xt=p(e),G=a(e,"H2",{class:!0});var ro=s(G);K=a(ro,"A",{id:!0,class:!0,href:!0});var $a=s(K);vt=a($a,"SPAN",{});var Ma=s(vt);w($e.$$.fragment,Ma),Ma.forEach(o),$a.forEach(o),sr=p(ro),yt=a(ro,"SPAN",{});var Ia=s(yt);nr=i(Ia,"BitImageProcessor"),Ia.forEach(o),ro.forEach(o),Qt=p(e),P=a(e,"DIV",{class:!0});var lt=s(P);w(Me.$$.fragment,lt),ir=p(lt),wt=a(lt,"P",{});var Ca=s(wt);lr=i(Ca,"Constructs a BiT image processor."),Ca.forEach(o),cr=p(lt),ee=a(lt,"DIV",{class:!0});var ao=s(ee);w(Ie.$$.fragment,ao),dr=p(ao),Tt=a(ao,"P",{});var Ea=s(Tt);mr=i(Ea,"Preprocess an image or batch of images."),Ea.forEach(o),ao.forEach(o),lt.forEach(o),Yt=p(e),q=a(e,"H2",{class:!0});var so=s(q);te=a(so,"A",{id:!0,class:!0,href:!0});var xa=s(te);Bt=a(xa,"SPAN",{});var ja=s(Bt);w(Ce.$$.fragment,ja),ja.forEach(o),xa.forEach(o),pr=p(so),$t=a(so,"SPAN",{});var za=s($t);fr=i(za,"BitModel"),za.forEach(o),so.forEach(o),Dt=p(e),U=a(e,"DIV",{class:!0});var ct=s(U);w(Ee.$$.fragment,ct),hr=p(ct),xe=a(ct,"P",{});var no=s(xe);gr=i(no,`The bare BiT model outputting raw features without any specific head on top.
This model is a PyTorch `),je=a(no,"A",{href:!0,rel:!0});var Pa=s(je);ur=i(Pa,"torch.nn.Module"),Pa.forEach(o),_r=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),br=p(ct),x=a(ct,"DIV",{class:!0});var le=s(x);w(ze.$$.fragment,le),vr=p(le),V=a(le,"P",{});var dt=s(V);yr=i(dt,"The "),tt=a(dt,"A",{href:!0});var Ua=s(tt);wr=i(Ua,"BitModel"),Ua.forEach(o),Tr=i(dt," forward method, overrides the "),Mt=a(dt,"CODE",{});var Na=s(Mt);Br=i(Na,"__call__"),Na.forEach(o),$r=i(dt," special method."),dt.forEach(o),Mr=p(le),w(oe.$$.fragment,le),Ir=p(le),w(re.$$.fragment,le),le.forEach(o),ct.forEach(o),Ht=p(e),L=a(e,"H2",{class:!0});var io=s(L);ae=a(io,"A",{id:!0,class:!0,href:!0});var ka=s(ae);It=a(ka,"SPAN",{});var Ra=s(It);w(Pe.$$.fragment,Ra),Ra.forEach(o),ka.forEach(o),Cr=p(io),Ct=a(io,"SPAN",{});var Aa=s(Ct);Er=i(Aa,"BitForImageClassification"),Aa.forEach(o),io.forEach(o),Ot=p(e),C=a(e,"DIV",{class:!0});var ce=s(C);w(Ue.$$.fragment,ce),xr=p(ce),Et=a(ce,"P",{});var Fa=s(Et);jr=i(Fa,`BiT Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for
ImageNet.`),Fa.forEach(o),zr=p(ce),Ne=a(ce,"P",{});var lo=s(Ne);Pr=i(lo,"This model is a PyTorch "),ke=a(lo,"A",{href:!0,rel:!0});var Ja=s(ke);Ur=i(Ja,"torch.nn.Module"),Ja.forEach(o),Nr=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),kr=p(ce),j=a(ce,"DIV",{class:!0});var de=s(j);w(Re.$$.fragment,de),Rr=p(de),X=a(de,"P",{});var mt=s(X);Ar=i(mt,"The "),ot=a(mt,"A",{href:!0});var Wa=s(ot);Fr=i(Wa,"BitForImageClassification"),Wa.forEach(o),Jr=i(mt," forward method, overrides the "),xt=a(mt,"CODE",{});var Za=s(xt);Wr=i(Za,"__call__"),Za.forEach(o),Zr=i(mt," special method."),mt.forEach(o),Sr=p(de),w(se.$$.fragment,de),Gr=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(A,"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.31.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(H,"id","transformers.BitConfig"),c(H,"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(H,"href","#transformers.BitConfig"),c(W,"class","relative group"),c(Oe,"href","/docs/transformers/v4.31.0/en/model_doc/bit#transformers.BitModel"),c(Be,"href","https://huggingface.co/google/bit-50"),c(Be,"rel","nofollow"),c(Ke,"href","/docs/transformers/v4.31.0/en/main_classes/configuration#transformers.PretrainedConfig"),c(et,"href","/docs/transformers/v4.31.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(G,"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(P,"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(q,"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.31.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(ae,"id","transformers.BitForImageClassification"),c(ae,"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(ae,"href","#transformers.BitForImageClassification"),c(L,"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.31.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),T(l,b,null),t(_,u),t(_,z),t(z,co),f(e,Ut,d),f(e,A,d),t(A,Q),t(Q,pt),T(me,pt,null),t(A,mo),t(A,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,Ge,d),t(Ge,bo),f(e,Rt,d),f(e,qe,d),t(qe,ht),t(ht,vo),f(e,At,d),f(e,Ve,d),t(Ve,yo),f(e,Ft,d),f(e,Le,d),t(Le,F),t(F,wo),t(F,fe),t(fe,To),t(F,Bo),t(F,he),t(he,$o),t(F,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),T(_e,gt,null),t(J,zo),t(J,ut),t(ut,Po),f(e,Zt,d),f(e,Xe,d),t(Xe,Uo),f(e,St,d),T(be,e,d),f(e,Gt,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,Ao),t(R,ye),t(ye,Fo),t(R,Jo),t(D,Wo),t(D,Ye),t(Ye,Zo),t(Ye,De),t(De,So),f(e,qt,d),f(e,He,d),t(He,Go),f(e,Vt,d),f(e,W,d),t(W,H),t(H,_t),T(we,_t,null),t(W,qo),t(W,bt),t(bt,Vo),f(e,Lt,d),f(e,I,d),T(Te,I,null),t(I,Lo),t(I,Z),t(Z,Xo),t(Z,Oe),t(Oe,Qo),t(Z,Yo),t(Z,Be),t(Be,Do),t(Z,Ho),t(I,Oo),t(I,S),t(S,Ko),t(S,Ke),t(Ke,er),t(S,tr),t(S,et),t(et,or),t(S,rr),t(I,ar),T(O,I,null),f(e,Xt,d),f(e,G,d),t(G,K),t(K,vt),T($e,vt,null),t(G,sr),t(G,yt),t(yt,nr),f(e,Qt,d),f(e,P,d),T(Me,P,null),t(P,ir),t(P,wt),t(wt,lr),t(P,cr),t(P,ee),T(Ie,ee,null),t(ee,dr),t(ee,Tt),t(Tt,mr),f(e,Yt,d),f(e,q,d),t(q,te),t(te,Bt),T(Ce,Bt,null),t(q,pr),t(q,$t),t($t,fr),f(e,Dt,d),f(e,U,d),T(Ee,U,null),t(U,hr),t(U,xe),t(xe,gr),t(xe,je),t(je,ur),t(xe,_r),t(U,br),t(U,x),T(ze,x,null),t(x,vr),t(x,V),t(V,yr),t(V,tt),t(tt,wr),t(V,Tr),t(V,Mt),t(Mt,Br),t(V,$r),t(x,Mr),T(oe,x,null),t(x,Ir),T(re,x,null),f(e,Ht,d),f(e,L,d),t(L,ae),t(ae,It),T(Pe,It,null),t(L,Cr),t(L,Ct),t(Ct,Er),f(e,Ot,d),f(e,C,d),T(Ue,C,null),t(C,xr),t(C,Et),t(Et,jr),t(C,zr),t(C,Ne),t(Ne,Pr),t(Ne,ke),t(ke,Ur),t(Ne,Nr),t(C,kr),t(C,j),T(Re,j,null),t(j,Rr),t(j,X),t(X,Ar),t(X,ot),t(ot,Fr),t(X,Jr),t(X,xt),t(xt,Wr),t(X,Zr),t(j,Sr),T(se,j,null),t(j,Gr),T(ne,j,null),Kt=!0},p(e,[d]){const Ae={};d&2&&(Ae.$$scope={dirty:d,ctx:e}),O.$set(Ae);const jt={};d&2&&(jt.$$scope={dirty:d,ctx:e}),oe.$set(jt);const zt={};d&2&&(zt.$$scope={dirty:d,ctx:e}),re.$set(zt);const Pt={};d&2&&(Pt.$$scope={dirty:d,ctx:e}),se.$set(Pt);const Fe={};d&2&&(Fe.$$scope={dirty:d,ctx:e}),ne.$set(Fe)},i(e){Kt||(B(l.$$.fragment,e),B(me.$$.fragment,e),B(_e.$$.fragment,e),B(be.$$.fragment,e),B(we.$$.fragment,e),B(Te.$$.fragment,e),B(O.$$.fragment,e),B($e.$$.fragment,e),B(Me.$$.fragment,e),B(Ie.$$.fragment,e),B(Ce.$$.fragment,e),B(Ee.$$.fragment,e),B(ze.$$.fragment,e),B(oe.$$.fragment,e),B(re.$$.fragment,e),B(Pe.$$.fragment,e),B(Ue.$$.fragment,e),B(Re.$$.fragment,e),B(se.$$.fragment,e),B(ne.$$.fragment,e),Kt=!0)},o(e){$(l.$$.fragment,e),$(me.$$.fragment,e),$(_e.$$.fragment,e),$(be.$$.fragment,e),$(we.$$.fragment,e),$(Te.$$.fragment,e),$(O.$$.fragment,e),$($e.$$.fragment,e),$(Me.$$.fragment,e),$(Ie.$$.fragment,e),$(Ce.$$.fragment,e),$(Ee.$$.fragment,e),$(ze.$$.fragment,e),$(oe.$$.fragment,e),$(re.$$.fragment,e),$(Pe.$$.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(A),M(me),e&&o(Nt),e&&o(N),e&&o(kt),e&&o(Ge),e&&o(Rt),e&&o(qe),e&&o(At),e&&o(Ve),e&&o(Ft),e&&o(Le),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(Gt),e&&o(D),e&&o(qt),e&&o(He),e&&o(Vt),e&&o(W),M(we),e&&o(Lt),e&&o(I),M(Te),M(O),e&&o(Xt),e&&o(G),M($e),e&&o(Qt),e&&o(P),M(Me),M(Ie),e&&o(Yt),e&&o(q),M(Ce),e&&o(Dt),e&&o(U),M(Ee),M(ze),M(oe),M(re),e&&o(Ht),e&&o(L),M(Pe),e&&o(Ot),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 Xa(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ds extends Ga{constructor(h){super();qa(this,h,os,es,Va,{})}}export{ds as default,ts as metadata};
