import{S as Gr,i as Zr,s as Lr,e as l,k as f,w as u,t as n,M as jr,c as r,d as t,m as d,a as i,x as m,h as a,b as c,G as o,g as p,y as T,q as _,o as v,B as E,v as Or}from"../chunks/vendor-hf-doc-builder.js";import{T as Hr}from"../chunks/Tip-hf-doc-builder.js";import{I as j}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as de}from"../chunks/CodeBlock-hf-doc-builder.js";function Dr(Ut){let h,O,U,$,N,R,P,F,B,H,V;return{c(){h=l("p"),O=n("A partire dalla versione 2.3.0 lo script di conversione \xE8 parte di transformers CLI ("),U=l("strong"),$=n("transformers-cli"),N=n(`), disponibile in ogni installazione
di transformers >=2.3.0.`),R=f(),P=l("p"),F=n("La seguente documentazione riflette il formato dei comandi di "),B=l("strong"),H=n("transformers-cli convert"),V=n(".")},l(J){h=r(J,"P",{});var w=i(h);O=a(w,"A partire dalla versione 2.3.0 lo script di conversione \xE8 parte di transformers CLI ("),U=r(w,"STRONG",{});var ge=i(U);$=a(ge,"transformers-cli"),ge.forEach(t),N=a(w,`), disponibile in ogni installazione
di transformers >=2.3.0.`),w.forEach(t),R=d(J),P=r(J,"P",{});var D=i(P);F=a(D,"La seguente documentazione riflette il formato dei comandi di "),B=r(D,"STRONG",{});var he=i(B);H=a(he,"transformers-cli convert"),he.forEach(t),V=a(D,"."),D.forEach(t)},m(J,w){p(J,h,w),o(h,O),o(h,U),o(U,$),o(h,N),p(J,R,w),p(J,P,w),o(P,F),o(P,B),o(B,H),o(P,V)},d(J){J&&t(h),J&&t(R),J&&t(P)}}}function xr(Ut){let h,O,U,$,N,R,P,F,B,H,V,J,w,ge,D,he,x,Jt,A,W,De,ue,yo,xe,Uo,wt,k,Jo,me,wo,bo,Te,$o,Ro,bt,y,Po,We,Vo,Co,Ye,ko,Io,ze,Mo,No,Ge,Fo,Bo,_e,Ao,So,$t,b,Xo,qe,Qo,go,Ke,Go,Zo,et,Lo,jo,tt,Oo,Ho,Rt,Y,Do,ot,xo,Wo,Pt,z,Yo,lt,zo,qo,Vt,ve,Ct,q,Ko,Ee,el,tl,kt,S,K,rt,ye,ol,it,ll,It,ee,rl,Ue,il,nl,Mt,I,al,nt,sl,pl,at,cl,fl,Nt,te,dl,st,hl,ul,Ft,Je,Bt,oe,ml,we,Tl,_l,At,X,le,pt,be,vl,ct,El,St,re,yl,$e,Ul,Jl,Xt,Re,Qt,Q,ie,ft,Pe,wl,dt,bl,gt,ne,$l,Ve,Rl,Pl,Gt,Ce,Zt,g,ae,ht,ke,Vl,ut,Cl,Lt,se,kl,Ie,Il,Ml,jt,Me,Ot,G,pe,mt,Ne,Nl,Tt,Fl,Ht,Ze,Bl,Dt,Fe,xt,Z,ce,_t,Be,Al,vt,Sl,Wt,Le,Xl,Yt,Ae,zt,L,fe,Et,Se,Ql,yt,gl,qt,je,Gl,Kt,Xe,eo;return R=new j({}),x=new Hr({props:{$$slots:{default:[Dr]},$$scope:{ctx:Ut}}}),ue=new j({}),ve=new de({props:{code:"ZXhwb3J0JTIwQkVSVF9CQVNFX0RJUiUzRCUyRnBhdGglMkZ0byUyRmJlcnQlMkZ1bmNhc2VkX0wtMTJfSC03NjhfQS0xMiUwQXRyYW5zZm9ybWVycy1jbGklMjBjb252ZXJ0JTIwLS1tb2RlbF90eXBlJTIwYmVydCUyMCU1QyUwQSUyMCUyMC0tdGZfY2hlY2twb2ludCUyMCUyNEJFUlRfQkFTRV9ESVIlMkZiZXJ0X21vZGVsLmNrcHQlMjAlNUMlMEElMjAlMjAtLWNvbmZpZyUyMCUyNEJFUlRfQkFTRV9ESVIlMkZiZXJ0X2NvbmZpZy5qc29uJTIwJTVDJTBBJTIwJTIwLS1weXRvcmNoX2R1bXBfb3V0cHV0JTIwJTI0QkVSVF9CQVNFX0RJUiUyRnB5dG9yY2hfbW9kZWwuYmlu",highlighted:`<span class="hljs-built_in">export</span> BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12
transformers-cli convert --model_type bert \\
  --tf_checkpoint <span class="hljs-variable">$BERT_BASE_DIR</span>/bert_model.ckpt \\
  --config <span class="hljs-variable">$BERT_BASE_DIR</span>/bert_config.json \\
  --pytorch_dump_output <span class="hljs-variable">$BERT_BASE_DIR</span>/pytorch_model.bin`}}),ye=new j({}),Je=new de({props:{code:"ZXhwb3J0JTIwQUxCRVJUX0JBU0VfRElSJTNEJTJGcGF0aCUyRnRvJTJGYWxiZXJ0JTJGYWxiZXJ0X2Jhc2UlMEF0cmFuc2Zvcm1lcnMtY2xpJTIwY29udmVydCUyMC0tbW9kZWxfdHlwZSUyMGFsYmVydCUyMCU1QyUwQSUyMCUyMC0tdGZfY2hlY2twb2ludCUyMCUyNEFMQkVSVF9CQVNFX0RJUiUyRm1vZGVsLmNrcHQtYmVzdCUyMCU1QyUwQSUyMCUyMC0tY29uZmlnJTIwJTI0QUxCRVJUX0JBU0VfRElSJTJGYWxiZXJ0X2NvbmZpZy5qc29uJTIwJTVDJTBBJTIwJTIwLS1weXRvcmNoX2R1bXBfb3V0cHV0JTIwJTI0QUxCRVJUX0JBU0VfRElSJTJGcHl0b3JjaF9tb2RlbC5iaW4=",highlighted:`<span class="hljs-built_in">export</span> ALBERT_BASE_DIR=/path/to/albert/albert_base
transformers-cli convert --model_type albert \\
  --tf_checkpoint <span class="hljs-variable">$ALBERT_BASE_DIR</span>/model.ckpt-best \\
  --config <span class="hljs-variable">$ALBERT_BASE_DIR</span>/albert_config.json \\
  --pytorch_dump_output <span class="hljs-variable">$ALBERT_BASE_DIR</span>/pytorch_model.bin`}}),be=new j({}),Re=new de({props:{code:"ZXhwb3J0JTIwT1BFTkFJX0dQVF9DSEVDS1BPSU5UX0ZPTERFUl9QQVRIJTNEJTJGcGF0aCUyRnRvJTJGb3BlbmFpJTJGcHJldHJhaW5lZCUyRm51bXB5JTJGd2VpZ2h0cyUwQXRyYW5zZm9ybWVycy1jbGklMjBjb252ZXJ0JTIwLS1tb2RlbF90eXBlJTIwZ3B0JTIwJTVDJTBBJTIwJTIwLS10Zl9jaGVja3BvaW50JTIwJTI0T1BFTkFJX0dQVF9DSEVDS1BPSU5UX0ZPTERFUl9QQVRIJTIwJTVDJTBBJTIwJTIwLS1weXRvcmNoX2R1bXBfb3V0cHV0JTIwJTI0UFlUT1JDSF9EVU1QX09VVFBVVCUyMCU1QyUwQSUyMCUyMCU1Qi0tY29uZmlnJTIwT1BFTkFJX0dQVF9DT05GSUclNUQlMjAlNUMlMEElMjAlMjAlNUItLWZpbmV0dW5pbmdfdGFza19uYW1lJTIwT1BFTkFJX0dQVF9GSU5FVFVORURfVEFTSyU1RCUyMCU1Qw==",highlighted:`<span class="hljs-built_in">export</span> OPENAI_GPT_CHECKPOINT_FOLDER_PATH=/path/to/openai/pretrained/numpy/weights
transformers-cli convert --model_type gpt \\
  --tf_checkpoint <span class="hljs-variable">$OPENAI_GPT_CHECKPOINT_FOLDER_PATH</span> \\
  --pytorch_dump_output <span class="hljs-variable">$PYTORCH_DUMP_OUTPUT</span> \\
  [--config OPENAI_GPT_CONFIG] \\
  [--finetuning_task_name OPENAI_GPT_FINETUNED_TASK] \\`}}),Pe=new j({}),Ce=new de({props:{code:"ZXhwb3J0JTIwT1BFTkFJX0dQVDJfQ0hFQ0tQT0lOVF9QQVRIJTNEJTJGcGF0aCUyRnRvJTJGZ3B0MiUyRnByZXRyYWluZWQlMkZ3ZWlnaHRzJTBBdHJhbnNmb3JtZXJzLWNsaSUyMGNvbnZlcnQlMjAtLW1vZGVsX3R5cGUlMjBncHQyJTIwJTVDJTBBJTIwJTIwLS10Zl9jaGVja3BvaW50JTIwJTI0T1BFTkFJX0dQVDJfQ0hFQ0tQT0lOVF9QQVRIJTIwJTVDJTBBJTIwJTIwLS1weXRvcmNoX2R1bXBfb3V0cHV0JTIwJTI0UFlUT1JDSF9EVU1QX09VVFBVVCUyMCU1QyUwQSUyMCUyMCU1Qi0tY29uZmlnJTIwT1BFTkFJX0dQVDJfQ09ORklHJTVEJTIwJTVDJTBBJTIwJTIwJTVCLS1maW5ldHVuaW5nX3Rhc2tfbmFtZSUyME9QRU5BSV9HUFQyX0ZJTkVUVU5FRF9UQVNLJTVE",highlighted:`<span class="hljs-built_in">export</span> OPENAI_GPT2_CHECKPOINT_PATH=/path/to/gpt2/pretrained/weights
transformers-cli convert --model_type gpt2 \\
  --tf_checkpoint <span class="hljs-variable">$OPENAI_GPT2_CHECKPOINT_PATH</span> \\
  --pytorch_dump_output <span class="hljs-variable">$PYTORCH_DUMP_OUTPUT</span> \\
  [--config OPENAI_GPT2_CONFIG] \\
  [--finetuning_task_name OPENAI_GPT2_FINETUNED_TASK]`}}),ke=new j({}),Me=new de({props:{code:"ZXhwb3J0JTIwVFJBTlNGT19YTF9DSEVDS1BPSU5UX0ZPTERFUl9QQVRIJTNEJTJGcGF0aCUyRnRvJTJGdHJhbnNmbyUyRnhsJTJGY2hlY2twb2ludCUwQXRyYW5zZm9ybWVycy1jbGklMjBjb252ZXJ0JTIwLS1tb2RlbF90eXBlJTIwdHJhbnNmb194bCUyMCU1QyUwQSUyMCUyMC0tdGZfY2hlY2twb2ludCUyMCUyNFRSQU5TRk9fWExfQ0hFQ0tQT0lOVF9GT0xERVJfUEFUSCUyMCU1QyUwQSUyMCUyMC0tcHl0b3JjaF9kdW1wX291dHB1dCUyMCUyNFBZVE9SQ0hfRFVNUF9PVVRQVVQlMjAlNUMlMEElMjAlMjAlNUItLWNvbmZpZyUyMFRSQU5TRk9fWExfQ09ORklHJTVEJTIwJTVDJTBBJTIwJTIwJTVCLS1maW5ldHVuaW5nX3Rhc2tfbmFtZSUyMFRSQU5TRk9fWExfRklORVRVTkVEX1RBU0slNUQ=",highlighted:`<span class="hljs-built_in">export</span> TRANSFO_XL_CHECKPOINT_FOLDER_PATH=/path/to/transfo/xl/checkpoint
transformers-cli convert --model_type transfo_xl \\
  --tf_checkpoint <span class="hljs-variable">$TRANSFO_XL_CHECKPOINT_FOLDER_PATH</span> \\
  --pytorch_dump_output <span class="hljs-variable">$PYTORCH_DUMP_OUTPUT</span> \\
  [--config TRANSFO_XL_CONFIG] \\
  [--finetuning_task_name TRANSFO_XL_FINETUNED_TASK]`}}),Ne=new j({}),Fe=new de({props:{code:"ZXhwb3J0JTIwVFJBTlNGT19YTF9DSEVDS1BPSU5UX1BBVEglM0QlMkZwYXRoJTJGdG8lMkZ4bG5ldCUyRmNoZWNrcG9pbnQlMEFleHBvcnQlMjBUUkFOU0ZPX1hMX0NPTkZJR19QQVRIJTNEJTJGcGF0aCUyRnRvJTJGeGxuZXQlMkZjb25maWclMEF0cmFuc2Zvcm1lcnMtY2xpJTIwY29udmVydCUyMC0tbW9kZWxfdHlwZSUyMHhsbmV0JTIwJTVDJTBBJTIwJTIwLS10Zl9jaGVja3BvaW50JTIwJTI0VFJBTlNGT19YTF9DSEVDS1BPSU5UX1BBVEglMjAlNUMlMEElMjAlMjAtLWNvbmZpZyUyMCUyNFRSQU5TRk9fWExfQ09ORklHX1BBVEglMjAlNUMlMEElMjAlMjAtLXB5dG9yY2hfZHVtcF9vdXRwdXQlMjAlMjRQWVRPUkNIX0RVTVBfT1VUUFVUJTIwJTVDJTBBJTIwJTIwJTVCLS1maW5ldHVuaW5nX3Rhc2tfbmFtZSUyMFhMTkVUX0ZJTkVUVU5FRF9UQVNLJTVEJTIwJTVD",highlighted:`<span class="hljs-built_in">export</span> TRANSFO_XL_CHECKPOINT_PATH=/path/to/xlnet/checkpoint
<span class="hljs-built_in">export</span> TRANSFO_XL_CONFIG_PATH=/path/to/xlnet/config
transformers-cli convert --model_type xlnet \\
  --tf_checkpoint <span class="hljs-variable">$TRANSFO_XL_CHECKPOINT_PATH</span> \\
  --config <span class="hljs-variable">$TRANSFO_XL_CONFIG_PATH</span> \\
  --pytorch_dump_output <span class="hljs-variable">$PYTORCH_DUMP_OUTPUT</span> \\
  [--finetuning_task_name XLNET_FINETUNED_TASK] \\`}}),Be=new j({}),Ae=new de({props:{code:"ZXhwb3J0JTIwWExNX0NIRUNLUE9JTlRfUEFUSCUzRCUyRnBhdGglMkZ0byUyRnhsbSUyRmNoZWNrcG9pbnQlMEF0cmFuc2Zvcm1lcnMtY2xpJTIwY29udmVydCUyMC0tbW9kZWxfdHlwZSUyMHhsbSUyMCU1QyUwQSUyMCUyMC0tdGZfY2hlY2twb2ludCUyMCUyNFhMTV9DSEVDS1BPSU5UX1BBVEglMjAlNUMlMEElMjAlMjAtLXB5dG9yY2hfZHVtcF9vdXRwdXQlMjAlMjRQWVRPUkNIX0RVTVBfT1VUUFVUJTBBJTIwJTVCLS1jb25maWclMjBYTUxfQ09ORklHJTVEJTIwJTVDJTBBJTIwJTVCLS1maW5ldHVuaW5nX3Rhc2tfbmFtZSUyMFhNTF9GSU5FVFVORURfVEFTSyU1RA==",highlighted:`<span class="hljs-built_in">export</span> XLM_CHECKPOINT_PATH=/path/to/xlm/checkpoint
transformers-cli convert --model_type xlm \\
  --tf_checkpoint <span class="hljs-variable">$XLM_CHECKPOINT_PATH</span> \\
  --pytorch_dump_output <span class="hljs-variable">$PYTORCH_DUMP_OUTPUT</span>
 [--config XML_CONFIG] \\
 [--finetuning_task_name XML_FINETUNED_TASK]`}}),Se=new j({}),Xe=new de({props:{code:"ZXhwb3J0JTIwVDUlM0QlMkZwYXRoJTJGdG8lMkZ0NSUyRnVuY2FzZWRfTC0xMl9ILTc2OF9BLTEyJTBBdHJhbnNmb3JtZXJzLWNsaSUyMGNvbnZlcnQlMjAtLW1vZGVsX3R5cGUlMjB0NSUyMCU1QyUwQSUyMCUyMC0tdGZfY2hlY2twb2ludCUyMCUyNFQ1JTJGdDVfbW9kZWwuY2twdCUyMCU1QyUwQSUyMCUyMC0tY29uZmlnJTIwJTI0VDUlMkZ0NV9jb25maWcuanNvbiUyMCU1QyUwQSUyMCUyMC0tcHl0b3JjaF9kdW1wX291dHB1dCUyMCUyNFQ1JTJGcHl0b3JjaF9tb2RlbC5iaW4=",highlighted:`<span class="hljs-built_in">export</span> T5=/path/to/t5/uncased_L-12_H-768_A-12
transformers-cli convert --model_type t5 \\
  --tf_checkpoint <span class="hljs-variable">$T5</span>/t5_model.ckpt \\
  --config <span class="hljs-variable">$T5</span>/t5_config.json \\
  --pytorch_dump_output <span class="hljs-variable">$T5</span>/pytorch_model.bin`}}),{c(){h=l("meta"),O=f(),U=l("h1"),$=l("a"),N=l("span"),u(R.$$.fragment),P=f(),F=l("span"),B=n("Convertire checkpoint di Tensorflow"),H=f(),V=l("p"),J=n(`\xC8 disponibile un\u2019interfaccia a linea di comando per convertire gli originali checkpoint di Bert/GPT/GPT-2/Transformer-XL/XLNet/XLM
in modelli che possono essere caricati utilizzando i metodi `),w=l("code"),ge=n("from_pretrained"),D=n(" della libreria."),he=f(),u(x.$$.fragment),Jt=f(),A=l("h2"),W=l("a"),De=l("span"),u(ue.$$.fragment),yo=f(),xe=l("span"),Uo=n("BERT"),wt=f(),k=l("p"),Jo=n(`Puoi convertire qualunque checkpoint Tensorflow di BERT (in particolare
`),me=l("a"),wo=n("i modeli pre-allenati rilasciati da Google"),bo=n(`)
in un file di salvataggio Pytorch utilizzando lo script
`),Te=l("a"),$o=n("convert_bert_original_tf_checkpoint_to_pytorch.py"),Ro=n("."),bt=f(),y=l("p"),Po=n("Questo CLI prende come input un checkpoint di Tensorflow (tre files che iniziano con "),We=l("code"),Vo=n("bert_model.ckpt"),Co=n(`) ed il relativo
file di configurazione (`),Ye=l("code"),ko=n("bert_config.json"),Io=n(`), crea un modello Pytorch per questa configurazione, carica i pesi dal
checkpoint di Tensorflow nel modello di Pytorch e salva il modello che ne risulta in un file di salvataggio standard di Pytorch che
pu\xF2 essere importato utilizzando `),ze=l("code"),Mo=n("from_pretrained()"),No=n(` (vedi l\u2019esempio nel
`),Ge=l("a"),Fo=n("quicktour"),Bo=n(" , "),_e=l("a"),Ao=n("run_glue.py"),So=n(" )."),$t=f(),b=l("p"),Xo=n("Devi soltanto lanciare questo script di conversione "),qe=l("strong"),Qo=n("una volta"),go=n(` per ottenere un modello Pytorch. Dopodich\xE8, potrai tralasciare
il checkpoint di Tensorflow (i tre files che iniziano con `),Ke=l("code"),Go=n("bert_model.ckpt"),Zo=n(`), ma assicurati di tenere il file di configurazione
(`),et=l("code"),Lo=n("bert_config.json"),jo=n(") ed il file di vocabolario ("),tt=l("code"),Oo=n("vocab.txt"),Ho=n(") in quanto queste componenti sono necessarie anche per il modello di Pytorch."),Rt=f(),Y=l("p"),Do=n(`Per lanciare questo specifico script di conversione avrai bisogno di un\u2019installazione di Tensorflow e di Pytorch
(`),ot=l("code"),xo=n("pip install tensorflow"),Wo=n("). Il resto della repository richiede soltanto Pytorch."),Pt=f(),z=l("p"),Yo=n("Questo \xE8 un esempio del processo di conversione per un modello "),lt=l("code"),zo=n("BERT-Base Uncased"),qo=n(" pre-allenato:"),Vt=f(),u(ve.$$.fragment),Ct=f(),q=l("p"),Ko=n("Puoi scaricare i modelli pre-allenati di Google per la conversione "),Ee=l("a"),el=n("qua"),tl=n("."),kt=f(),S=l("h2"),K=l("a"),rt=l("span"),u(ye.$$.fragment),ol=f(),it=l("span"),ll=n("ALBERT"),It=f(),ee=l("p"),rl=n(`Per il modello ALBERT, converti checkpoint di Tensoflow in Pytorch utilizzando lo script
`),Ue=l("a"),il=n("convert_albert_original_tf_checkpoint_to_pytorch.py"),nl=n("."),Mt=f(),I=l("p"),al=n("Il CLI prende come input un checkpoint di Tensorflow (tre files che iniziano con "),nt=l("code"),sl=n("model.ckpt-best"),pl=n(`) e i relativi file di
configurazione (`),at=l("code"),cl=n("albert_config.json"),fl=n(`), dopodich\xE8 crea e salva un modello Pytorch. Per lanciare questa conversione
avrai bisogno di un\u2019installazione di Tensorflow e di Pytorch.`),Nt=f(),te=l("p"),dl=n("Ecco un esempio del procedimento di conversione di un modello "),st=l("code"),hl=n("ALBERT Base"),ul=n(" pre-allenato:"),Ft=f(),u(Je.$$.fragment),Bt=f(),oe=l("p"),ml=n("Puoi scaricare i modelli pre-allenati di Google per la conversione "),we=l("a"),Tl=n("qui"),_l=n("."),At=f(),X=l("h2"),le=l("a"),pt=l("span"),u(be.$$.fragment),vl=f(),ct=l("span"),El=n("OpenAI GPT"),St=f(),re=l("p"),yl=n(`Ecco un esempio del processo di conversione di un modello OpenAI GPT pre-allenato, assumendo che il tuo checkpoint di NumPy
sia salvato nello stesso formato dei modelli pre-allenati OpenAI (vedi `),$e=l("a"),Ul=n("qui"),Jl=n("):"),Xt=f(),u(Re.$$.fragment),Qt=f(),Q=l("h2"),ie=l("a"),ft=l("span"),u(Pe.$$.fragment),wl=f(),dt=l("span"),bl=n("OpenAI GPT-2"),gt=f(),ne=l("p"),$l=n("Ecco un esempio del processo di conversione di un modello OpenAI GPT-2 pre-allenato (vedi "),Ve=l("a"),Rl=n("qui"),Pl=n("):"),Gt=f(),u(Ce.$$.fragment),Zt=f(),g=l("h2"),ae=l("a"),ht=l("span"),u(ke.$$.fragment),Vl=f(),ut=l("span"),Cl=n("Transformer-XL"),Lt=f(),se=l("p"),kl=n(`Ecco un esempio del processo di conversione di un modello Transformer-XL pre-allenato
(vedi `),Ie=l("a"),Il=n("qui"),Ml=n("):"),jt=f(),u(Me.$$.fragment),Ot=f(),G=l("h2"),pe=l("a"),mt=l("span"),u(Ne.$$.fragment),Nl=f(),Tt=l("span"),Fl=n("XLNet"),Ht=f(),Ze=l("p"),Bl=n("Ecco un esempio del processo di conversione di un modello XLNet pre-allenato:"),Dt=f(),u(Fe.$$.fragment),xt=f(),Z=l("h2"),ce=l("a"),_t=l("span"),u(Be.$$.fragment),Al=f(),vt=l("span"),Sl=n("XLM"),Wt=f(),Le=l("p"),Xl=n("Ecco un esempio del processo di conversione di un modello XLM pre-allenato:"),Yt=f(),u(Ae.$$.fragment),zt=f(),L=l("h2"),fe=l("a"),Et=l("span"),u(Se.$$.fragment),Ql=f(),yt=l("span"),gl=n("T5"),qt=f(),je=l("p"),Gl=n("Ecco un esempio del processo di conversione di un modello T5 pre-allenato:"),Kt=f(),u(Xe.$$.fragment),this.h()},l(e){const s=jr('[data-svelte="svelte-1phssyn"]',document.head);h=r(s,"META",{name:!0,content:!0}),s.forEach(t),O=d(e),U=r(e,"H1",{class:!0});var Qe=i(U);$=r(Qe,"A",{id:!0,class:!0,href:!0});var Zl=i($);N=r(Zl,"SPAN",{});var Ll=i(N);m(R.$$.fragment,Ll),Ll.forEach(t),Zl.forEach(t),P=d(Qe),F=r(Qe,"SPAN",{});var jl=i(F);B=a(jl,"Convertire checkpoint di Tensorflow"),jl.forEach(t),Qe.forEach(t),H=d(e),V=r(e,"P",{});var to=i(V);J=a(to,`\xC8 disponibile un\u2019interfaccia a linea di comando per convertire gli originali checkpoint di Bert/GPT/GPT-2/Transformer-XL/XLNet/XLM
in modelli che possono essere caricati utilizzando i metodi `),w=r(to,"CODE",{});var Ol=i(w);ge=a(Ol,"from_pretrained"),Ol.forEach(t),D=a(to," della libreria."),to.forEach(t),he=d(e),m(x.$$.fragment,e),Jt=d(e),A=r(e,"H2",{class:!0});var oo=i(A);W=r(oo,"A",{id:!0,class:!0,href:!0});var Hl=i(W);De=r(Hl,"SPAN",{});var Dl=i(De);m(ue.$$.fragment,Dl),Dl.forEach(t),Hl.forEach(t),yo=d(oo),xe=r(oo,"SPAN",{});var xl=i(xe);Uo=a(xl,"BERT"),xl.forEach(t),oo.forEach(t),wt=d(e),k=r(e,"P",{});var Oe=i(k);Jo=a(Oe,`Puoi convertire qualunque checkpoint Tensorflow di BERT (in particolare
`),me=r(Oe,"A",{href:!0,rel:!0});var Wl=i(me);wo=a(Wl,"i modeli pre-allenati rilasciati da Google"),Wl.forEach(t),bo=a(Oe,`)
in un file di salvataggio Pytorch utilizzando lo script
`),Te=r(Oe,"A",{href:!0,rel:!0});var Yl=i(Te);$o=a(Yl,"convert_bert_original_tf_checkpoint_to_pytorch.py"),Yl.forEach(t),Ro=a(Oe,"."),Oe.forEach(t),bt=d(e),y=r(e,"P",{});var C=i(y);Po=a(C,"Questo CLI prende come input un checkpoint di Tensorflow (tre files che iniziano con "),We=r(C,"CODE",{});var zl=i(We);Vo=a(zl,"bert_model.ckpt"),zl.forEach(t),Co=a(C,`) ed il relativo
file di configurazione (`),Ye=r(C,"CODE",{});var ql=i(Ye);ko=a(ql,"bert_config.json"),ql.forEach(t),Io=a(C,`), crea un modello Pytorch per questa configurazione, carica i pesi dal
checkpoint di Tensorflow nel modello di Pytorch e salva il modello che ne risulta in un file di salvataggio standard di Pytorch che
pu\xF2 essere importato utilizzando `),ze=r(C,"CODE",{});var Kl=i(ze);Mo=a(Kl,"from_pretrained()"),Kl.forEach(t),No=a(C,` (vedi l\u2019esempio nel
`),Ge=r(C,"A",{href:!0});var er=i(Ge);Fo=a(er,"quicktour"),er.forEach(t),Bo=a(C," , "),_e=r(C,"A",{href:!0,rel:!0});var tr=i(_e);Ao=a(tr,"run_glue.py"),tr.forEach(t),So=a(C," )."),C.forEach(t),$t=d(e),b=r(e,"P",{});var M=i(b);Xo=a(M,"Devi soltanto lanciare questo script di conversione "),qe=r(M,"STRONG",{});var or=i(qe);Qo=a(or,"una volta"),or.forEach(t),go=a(M,` per ottenere un modello Pytorch. Dopodich\xE8, potrai tralasciare
il checkpoint di Tensorflow (i tre files che iniziano con `),Ke=r(M,"CODE",{});var lr=i(Ke);Go=a(lr,"bert_model.ckpt"),lr.forEach(t),Zo=a(M,`), ma assicurati di tenere il file di configurazione
(`),et=r(M,"CODE",{});var rr=i(et);Lo=a(rr,"bert_config.json"),rr.forEach(t),jo=a(M,") ed il file di vocabolario ("),tt=r(M,"CODE",{});var ir=i(tt);Oo=a(ir,"vocab.txt"),ir.forEach(t),Ho=a(M,") in quanto queste componenti sono necessarie anche per il modello di Pytorch."),M.forEach(t),Rt=d(e),Y=r(e,"P",{});var lo=i(Y);Do=a(lo,`Per lanciare questo specifico script di conversione avrai bisogno di un\u2019installazione di Tensorflow e di Pytorch
(`),ot=r(lo,"CODE",{});var nr=i(ot);xo=a(nr,"pip install tensorflow"),nr.forEach(t),Wo=a(lo,"). Il resto della repository richiede soltanto Pytorch."),lo.forEach(t),Pt=d(e),z=r(e,"P",{});var ro=i(z);Yo=a(ro,"Questo \xE8 un esempio del processo di conversione per un modello "),lt=r(ro,"CODE",{});var ar=i(lt);zo=a(ar,"BERT-Base Uncased"),ar.forEach(t),qo=a(ro," pre-allenato:"),ro.forEach(t),Vt=d(e),m(ve.$$.fragment,e),Ct=d(e),q=r(e,"P",{});var io=i(q);Ko=a(io,"Puoi scaricare i modelli pre-allenati di Google per la conversione "),Ee=r(io,"A",{href:!0,rel:!0});var sr=i(Ee);el=a(sr,"qua"),sr.forEach(t),tl=a(io,"."),io.forEach(t),kt=d(e),S=r(e,"H2",{class:!0});var no=i(S);K=r(no,"A",{id:!0,class:!0,href:!0});var pr=i(K);rt=r(pr,"SPAN",{});var cr=i(rt);m(ye.$$.fragment,cr),cr.forEach(t),pr.forEach(t),ol=d(no),it=r(no,"SPAN",{});var fr=i(it);ll=a(fr,"ALBERT"),fr.forEach(t),no.forEach(t),It=d(e),ee=r(e,"P",{});var ao=i(ee);rl=a(ao,`Per il modello ALBERT, converti checkpoint di Tensoflow in Pytorch utilizzando lo script
`),Ue=r(ao,"A",{href:!0,rel:!0});var dr=i(Ue);il=a(dr,"convert_albert_original_tf_checkpoint_to_pytorch.py"),dr.forEach(t),nl=a(ao,"."),ao.forEach(t),Mt=d(e),I=r(e,"P",{});var He=i(I);al=a(He,"Il CLI prende come input un checkpoint di Tensorflow (tre files che iniziano con "),nt=r(He,"CODE",{});var hr=i(nt);sl=a(hr,"model.ckpt-best"),hr.forEach(t),pl=a(He,`) e i relativi file di
configurazione (`),at=r(He,"CODE",{});var ur=i(at);cl=a(ur,"albert_config.json"),ur.forEach(t),fl=a(He,`), dopodich\xE8 crea e salva un modello Pytorch. Per lanciare questa conversione
avrai bisogno di un\u2019installazione di Tensorflow e di Pytorch.`),He.forEach(t),Nt=d(e),te=r(e,"P",{});var so=i(te);dl=a(so,"Ecco un esempio del procedimento di conversione di un modello "),st=r(so,"CODE",{});var mr=i(st);hl=a(mr,"ALBERT Base"),mr.forEach(t),ul=a(so," pre-allenato:"),so.forEach(t),Ft=d(e),m(Je.$$.fragment,e),Bt=d(e),oe=r(e,"P",{});var po=i(oe);ml=a(po,"Puoi scaricare i modelli pre-allenati di Google per la conversione "),we=r(po,"A",{href:!0,rel:!0});var Tr=i(we);Tl=a(Tr,"qui"),Tr.forEach(t),_l=a(po,"."),po.forEach(t),At=d(e),X=r(e,"H2",{class:!0});var co=i(X);le=r(co,"A",{id:!0,class:!0,href:!0});var _r=i(le);pt=r(_r,"SPAN",{});var vr=i(pt);m(be.$$.fragment,vr),vr.forEach(t),_r.forEach(t),vl=d(co),ct=r(co,"SPAN",{});var Er=i(ct);El=a(Er,"OpenAI GPT"),Er.forEach(t),co.forEach(t),St=d(e),re=r(e,"P",{});var fo=i(re);yl=a(fo,`Ecco un esempio del processo di conversione di un modello OpenAI GPT pre-allenato, assumendo che il tuo checkpoint di NumPy
sia salvato nello stesso formato dei modelli pre-allenati OpenAI (vedi `),$e=r(fo,"A",{href:!0,rel:!0});var yr=i($e);Ul=a(yr,"qui"),yr.forEach(t),Jl=a(fo,"):"),fo.forEach(t),Xt=d(e),m(Re.$$.fragment,e),Qt=d(e),Q=r(e,"H2",{class:!0});var ho=i(Q);ie=r(ho,"A",{id:!0,class:!0,href:!0});var Ur=i(ie);ft=r(Ur,"SPAN",{});var Jr=i(ft);m(Pe.$$.fragment,Jr),Jr.forEach(t),Ur.forEach(t),wl=d(ho),dt=r(ho,"SPAN",{});var wr=i(dt);bl=a(wr,"OpenAI GPT-2"),wr.forEach(t),ho.forEach(t),gt=d(e),ne=r(e,"P",{});var uo=i(ne);$l=a(uo,"Ecco un esempio del processo di conversione di un modello OpenAI GPT-2 pre-allenato (vedi "),Ve=r(uo,"A",{href:!0,rel:!0});var br=i(Ve);Rl=a(br,"qui"),br.forEach(t),Pl=a(uo,"):"),uo.forEach(t),Gt=d(e),m(Ce.$$.fragment,e),Zt=d(e),g=r(e,"H2",{class:!0});var mo=i(g);ae=r(mo,"A",{id:!0,class:!0,href:!0});var $r=i(ae);ht=r($r,"SPAN",{});var Rr=i(ht);m(ke.$$.fragment,Rr),Rr.forEach(t),$r.forEach(t),Vl=d(mo),ut=r(mo,"SPAN",{});var Pr=i(ut);Cl=a(Pr,"Transformer-XL"),Pr.forEach(t),mo.forEach(t),Lt=d(e),se=r(e,"P",{});var To=i(se);kl=a(To,`Ecco un esempio del processo di conversione di un modello Transformer-XL pre-allenato
(vedi `),Ie=r(To,"A",{href:!0,rel:!0});var Vr=i(Ie);Il=a(Vr,"qui"),Vr.forEach(t),Ml=a(To,"):"),To.forEach(t),jt=d(e),m(Me.$$.fragment,e),Ot=d(e),G=r(e,"H2",{class:!0});var _o=i(G);pe=r(_o,"A",{id:!0,class:!0,href:!0});var Cr=i(pe);mt=r(Cr,"SPAN",{});var kr=i(mt);m(Ne.$$.fragment,kr),kr.forEach(t),Cr.forEach(t),Nl=d(_o),Tt=r(_o,"SPAN",{});var Ir=i(Tt);Fl=a(Ir,"XLNet"),Ir.forEach(t),_o.forEach(t),Ht=d(e),Ze=r(e,"P",{});var Mr=i(Ze);Bl=a(Mr,"Ecco un esempio del processo di conversione di un modello XLNet pre-allenato:"),Mr.forEach(t),Dt=d(e),m(Fe.$$.fragment,e),xt=d(e),Z=r(e,"H2",{class:!0});var vo=i(Z);ce=r(vo,"A",{id:!0,class:!0,href:!0});var Nr=i(ce);_t=r(Nr,"SPAN",{});var Fr=i(_t);m(Be.$$.fragment,Fr),Fr.forEach(t),Nr.forEach(t),Al=d(vo),vt=r(vo,"SPAN",{});var Br=i(vt);Sl=a(Br,"XLM"),Br.forEach(t),vo.forEach(t),Wt=d(e),Le=r(e,"P",{});var Ar=i(Le);Xl=a(Ar,"Ecco un esempio del processo di conversione di un modello XLM pre-allenato:"),Ar.forEach(t),Yt=d(e),m(Ae.$$.fragment,e),zt=d(e),L=r(e,"H2",{class:!0});var Eo=i(L);fe=r(Eo,"A",{id:!0,class:!0,href:!0});var Sr=i(fe);Et=r(Sr,"SPAN",{});var Xr=i(Et);m(Se.$$.fragment,Xr),Xr.forEach(t),Sr.forEach(t),Ql=d(Eo),yt=r(Eo,"SPAN",{});var Qr=i(yt);gl=a(Qr,"T5"),Qr.forEach(t),Eo.forEach(t),qt=d(e),je=r(e,"P",{});var gr=i(je);Gl=a(gr,"Ecco un esempio del processo di conversione di un modello T5 pre-allenato:"),gr.forEach(t),Kt=d(e),m(Xe.$$.fragment,e),this.h()},h(){c(h,"name","hf:doc:metadata"),c(h,"content",JSON.stringify(Wr)),c($,"id","convertire-checkpoint-di-tensorflow"),c($,"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($,"href","#convertire-checkpoint-di-tensorflow"),c(U,"class","relative group"),c(W,"id","bert"),c(W,"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(W,"href","#bert"),c(A,"class","relative group"),c(me,"href","https://github.com/google-research/bert#pre-trained-models"),c(me,"rel","nofollow"),c(Te,"href","https://github.com/huggingface/transformers/tree/main/src/transformers/models/bert/convert_bert_original_tf_checkpoint_to_pytorch.py"),c(Te,"rel","nofollow"),c(Ge,"href","quicktour"),c(_e,"href","https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-classification/run_glue.py"),c(_e,"rel","nofollow"),c(Ee,"href","https://github.com/google-research/bert#pre-trained-models"),c(Ee,"rel","nofollow"),c(K,"id","albert"),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","#albert"),c(S,"class","relative group"),c(Ue,"href","https://github.com/huggingface/transformers/tree/main/src/transformers/models/albert/convert_albert_original_tf_checkpoint_to_pytorch.py"),c(Ue,"rel","nofollow"),c(we,"href","https://github.com/google-research/albert#pre-trained-models"),c(we,"rel","nofollow"),c(le,"id","openai-gpt"),c(le,"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(le,"href","#openai-gpt"),c(X,"class","relative group"),c($e,"href","https://github.com/openai/finetune-transformer-lm"),c($e,"rel","nofollow"),c(ie,"id","openai-gpt2"),c(ie,"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(ie,"href","#openai-gpt2"),c(Q,"class","relative group"),c(Ve,"href","https://github.com/openai/gpt-2"),c(Ve,"rel","nofollow"),c(ae,"id","transformerxl"),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","#transformerxl"),c(g,"class","relative group"),c(Ie,"href","https://github.com/kimiyoung/transformer-xl/tree/master/tf#obtain-and-evaluate-pretrained-sota-models"),c(Ie,"rel","nofollow"),c(pe,"id","xlnet"),c(pe,"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(pe,"href","#xlnet"),c(G,"class","relative group"),c(ce,"id","xlm"),c(ce,"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(ce,"href","#xlm"),c(Z,"class","relative group"),c(fe,"id","t5"),c(fe,"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(fe,"href","#t5"),c(L,"class","relative group")},m(e,s){o(document.head,h),p(e,O,s),p(e,U,s),o(U,$),o($,N),T(R,N,null),o(U,P),o(U,F),o(F,B),p(e,H,s),p(e,V,s),o(V,J),o(V,w),o(w,ge),o(V,D),p(e,he,s),T(x,e,s),p(e,Jt,s),p(e,A,s),o(A,W),o(W,De),T(ue,De,null),o(A,yo),o(A,xe),o(xe,Uo),p(e,wt,s),p(e,k,s),o(k,Jo),o(k,me),o(me,wo),o(k,bo),o(k,Te),o(Te,$o),o(k,Ro),p(e,bt,s),p(e,y,s),o(y,Po),o(y,We),o(We,Vo),o(y,Co),o(y,Ye),o(Ye,ko),o(y,Io),o(y,ze),o(ze,Mo),o(y,No),o(y,Ge),o(Ge,Fo),o(y,Bo),o(y,_e),o(_e,Ao),o(y,So),p(e,$t,s),p(e,b,s),o(b,Xo),o(b,qe),o(qe,Qo),o(b,go),o(b,Ke),o(Ke,Go),o(b,Zo),o(b,et),o(et,Lo),o(b,jo),o(b,tt),o(tt,Oo),o(b,Ho),p(e,Rt,s),p(e,Y,s),o(Y,Do),o(Y,ot),o(ot,xo),o(Y,Wo),p(e,Pt,s),p(e,z,s),o(z,Yo),o(z,lt),o(lt,zo),o(z,qo),p(e,Vt,s),T(ve,e,s),p(e,Ct,s),p(e,q,s),o(q,Ko),o(q,Ee),o(Ee,el),o(q,tl),p(e,kt,s),p(e,S,s),o(S,K),o(K,rt),T(ye,rt,null),o(S,ol),o(S,it),o(it,ll),p(e,It,s),p(e,ee,s),o(ee,rl),o(ee,Ue),o(Ue,il),o(ee,nl),p(e,Mt,s),p(e,I,s),o(I,al),o(I,nt),o(nt,sl),o(I,pl),o(I,at),o(at,cl),o(I,fl),p(e,Nt,s),p(e,te,s),o(te,dl),o(te,st),o(st,hl),o(te,ul),p(e,Ft,s),T(Je,e,s),p(e,Bt,s),p(e,oe,s),o(oe,ml),o(oe,we),o(we,Tl),o(oe,_l),p(e,At,s),p(e,X,s),o(X,le),o(le,pt),T(be,pt,null),o(X,vl),o(X,ct),o(ct,El),p(e,St,s),p(e,re,s),o(re,yl),o(re,$e),o($e,Ul),o(re,Jl),p(e,Xt,s),T(Re,e,s),p(e,Qt,s),p(e,Q,s),o(Q,ie),o(ie,ft),T(Pe,ft,null),o(Q,wl),o(Q,dt),o(dt,bl),p(e,gt,s),p(e,ne,s),o(ne,$l),o(ne,Ve),o(Ve,Rl),o(ne,Pl),p(e,Gt,s),T(Ce,e,s),p(e,Zt,s),p(e,g,s),o(g,ae),o(ae,ht),T(ke,ht,null),o(g,Vl),o(g,ut),o(ut,Cl),p(e,Lt,s),p(e,se,s),o(se,kl),o(se,Ie),o(Ie,Il),o(se,Ml),p(e,jt,s),T(Me,e,s),p(e,Ot,s),p(e,G,s),o(G,pe),o(pe,mt),T(Ne,mt,null),o(G,Nl),o(G,Tt),o(Tt,Fl),p(e,Ht,s),p(e,Ze,s),o(Ze,Bl),p(e,Dt,s),T(Fe,e,s),p(e,xt,s),p(e,Z,s),o(Z,ce),o(ce,_t),T(Be,_t,null),o(Z,Al),o(Z,vt),o(vt,Sl),p(e,Wt,s),p(e,Le,s),o(Le,Xl),p(e,Yt,s),T(Ae,e,s),p(e,zt,s),p(e,L,s),o(L,fe),o(fe,Et),T(Se,Et,null),o(L,Ql),o(L,yt),o(yt,gl),p(e,qt,s),p(e,je,s),o(je,Gl),p(e,Kt,s),T(Xe,e,s),eo=!0},p(e,[s]){const Qe={};s&2&&(Qe.$$scope={dirty:s,ctx:e}),x.$set(Qe)},i(e){eo||(_(R.$$.fragment,e),_(x.$$.fragment,e),_(ue.$$.fragment,e),_(ve.$$.fragment,e),_(ye.$$.fragment,e),_(Je.$$.fragment,e),_(be.$$.fragment,e),_(Re.$$.fragment,e),_(Pe.$$.fragment,e),_(Ce.$$.fragment,e),_(ke.$$.fragment,e),_(Me.$$.fragment,e),_(Ne.$$.fragment,e),_(Fe.$$.fragment,e),_(Be.$$.fragment,e),_(Ae.$$.fragment,e),_(Se.$$.fragment,e),_(Xe.$$.fragment,e),eo=!0)},o(e){v(R.$$.fragment,e),v(x.$$.fragment,e),v(ue.$$.fragment,e),v(ve.$$.fragment,e),v(ye.$$.fragment,e),v(Je.$$.fragment,e),v(be.$$.fragment,e),v(Re.$$.fragment,e),v(Pe.$$.fragment,e),v(Ce.$$.fragment,e),v(ke.$$.fragment,e),v(Me.$$.fragment,e),v(Ne.$$.fragment,e),v(Fe.$$.fragment,e),v(Be.$$.fragment,e),v(Ae.$$.fragment,e),v(Se.$$.fragment,e),v(Xe.$$.fragment,e),eo=!1},d(e){t(h),e&&t(O),e&&t(U),E(R),e&&t(H),e&&t(V),e&&t(he),E(x,e),e&&t(Jt),e&&t(A),E(ue),e&&t(wt),e&&t(k),e&&t(bt),e&&t(y),e&&t($t),e&&t(b),e&&t(Rt),e&&t(Y),e&&t(Pt),e&&t(z),e&&t(Vt),E(ve,e),e&&t(Ct),e&&t(q),e&&t(kt),e&&t(S),E(ye),e&&t(It),e&&t(ee),e&&t(Mt),e&&t(I),e&&t(Nt),e&&t(te),e&&t(Ft),E(Je,e),e&&t(Bt),e&&t(oe),e&&t(At),e&&t(X),E(be),e&&t(St),e&&t(re),e&&t(Xt),E(Re,e),e&&t(Qt),e&&t(Q),E(Pe),e&&t(gt),e&&t(ne),e&&t(Gt),E(Ce,e),e&&t(Zt),e&&t(g),E(ke),e&&t(Lt),e&&t(se),e&&t(jt),E(Me,e),e&&t(Ot),e&&t(G),E(Ne),e&&t(Ht),e&&t(Ze),e&&t(Dt),E(Fe,e),e&&t(xt),e&&t(Z),E(Be),e&&t(Wt),e&&t(Le),e&&t(Yt),E(Ae,e),e&&t(zt),e&&t(L),E(Se),e&&t(qt),e&&t(je),e&&t(Kt),E(Xe,e)}}}const Wr={local:"convertire-checkpoint-di-tensorflow",sections:[{local:"bert",title:"BERT"},{local:"albert",title:"ALBERT"},{local:"openai-gpt",title:"OpenAI GPT"},{local:"openai-gpt2",title:"OpenAI GPT-2"},{local:"transformerxl",title:"Transformer-XL"},{local:"xlnet",title:"XLNet"},{local:"xlm",title:"XLM"},{local:"t5",title:"T5"}],title:"Convertire checkpoint di Tensorflow"};function Yr(Ut){return Or(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ti extends Gr{constructor(h){super();Zr(this,h,Yr,xr,Lr,{})}}export{ti as default,Wr as metadata};
