Buckets:

rtrm's picture
download
raw
20.4 kB
import{s as ee,o as ae}from"../chunks/scheduler.37c15a92.js";import{S as te,i as ie,g as B,s,r as u,A as oe,h as O,f as i,c as l,j as Y,u as m,x as ne,k as Z,y as re,a as n,v as p,t as c,b as se,d,w as f,p as le}from"../chunks/index.2bf4358c.js";import{Q as D}from"../chunks/Question.668688bc.js";import{F as ce}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as k,E as de}from"../chunks/getInferenceSnippets.ebf8be91.js";function ue(I){let $,_,g,w,b,T,v,P,z,S,h,q;return $=new k({props:{title:"4. Cosa succede quando una classe di tipo TFAutoModelForXxx viene istanziata con un modello di linguaggio pre-addestrato (come bert-base-uncased ) che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?",local:"4-cosa-succede-quando-una-classe-di-tipo-tfautomodelforxxx-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-come-bert-base-uncased--che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato",headingTag:"h3"}}),g=new D({props:{choices:[{text:"Nulla, ma viene mostrato un avvertimento",explain:"L'avvertimento non è l'unica cosa!"},{text:"La testa del modello pre-addestrato viene scartata e una nuova testa, appropriata per il compito, viene inserita al suo posto",explain:"Corretto. Ad esempio, quando abbiamo usato <code>TFAutoModelForSequenceClassification</code> con <code>bert-base-uncased</code>, abbiamo ottenuto un avvertimento mentre il modello veniva istanziato. La testa pre-addestrata non viene usata per il compito di classificazione delle sequenze, ma viene scartata e una nuova testa viene istanziata con pesi casuali.",correct:!0},{text:"La testa del modello pre-addestrato viene scartata",explain:"Deve succedere anche qualcos'altro. Prova ancora!"},{text:"Nulla, dato che il modello può comunque essere affinato per un compito differente.",explain:"La testa del modello pre-addestrato non era stata addestrata per risolvere questo compito, quindi dovremmo scartarla!"}]}}),b=new k({props:{title:"5. I modelli Tensorflow da transformers sono già dei modelli Keras. Quali benefici offre ciò?",local:"5-i-modelli-tensorflow-da-transformers-sono-già-dei-modelli-keras-quali-benefici-offre-ciò",headingTag:"h3"}}),v=new D({props:{choices:[{text:"I modelli funzionano automaticamente su una TPU.",explain:"Quasi! Sono richiesti alcuni cambiamenti. Ad esempio, bisogna eseguire tutto all'interno di uno scope <code>TPUStrategy</code>, incluso l'inizializzazione del modello"},{text:"Si possono sfruttare metodi già esistenti quali <code>compile()</code>, <code>fit()</code>, e <code>predict()</code>.",explain:"Correto! Una volta ottenuti i dati, l'addestramento richiede molto poco sforzo.",correct:!0},{text:"Puoi imparare Keras in aggiunta ai transformers.",explain:"Corretto, anche se cercavamo qualcosa in pù :)",correct:!0},{text:"Si possono calcolare facilmente delle metriche relative al dataset",explain:"Keras è d'aiuto nell'addestramento e valutazione del modello, non nel calcolare metriche relative al dataset."}]}}),z=new k({props:{title:"6. Come si definisce una metrica personalizzata (custom metric)?",local:"6-come-si-definisce-una-metrica-personalizzata-custom-metric",headingTag:"h3"}}),h=new D({props:{choices:[{text:"Creando una sottoclasse di <code>tf.keras.metrics.Metric</code>.",explain:"Ottimo!",correct:!0},{text:"Usando l'API funzionale di Keras",explain:"Prova ancora!"},{text:"Utilizzando una funzione con segnatura <code>metric_fn(y_true, y_pred)</code>.",explain:"Corretto!",correct:!0},{text:"Chiedendo a Google",explain:"Non è la risposta che cercavamo, ma dovrebbe comunque aiutarvi a risolvere il problema.",correct:!0}]}}),{c(){u($.$$.fragment),_=s(),u(g.$$.fragment),w=s(),u(b.$$.fragment),T=s(),u(v.$$.fragment),P=s(),u(z.$$.fragment),S=s(),u(h.$$.fragment)},l(t){m($.$$.fragment,t),_=l(t),m(g.$$.fragment,t),w=l(t),m(b.$$.fragment,t),T=l(t),m(v.$$.fragment,t),P=l(t),m(z.$$.fragment,t),S=l(t),m(h.$$.fragment,t)},m(t,x){p($,t,x),n(t,_,x),p(g,t,x),n(t,w,x),p(b,t,x),n(t,T,x),p(v,t,x),n(t,P,x),p(z,t,x),n(t,S,x),p(h,t,x),q=!0},i(t){q||(d($.$$.fragment,t),d(g.$$.fragment,t),d(b.$$.fragment,t),d(v.$$.fragment,t),d(z.$$.fragment,t),d(h.$$.fragment,t),q=!0)},o(t){c($.$$.fragment,t),c(g.$$.fragment,t),c(b.$$.fragment,t),c(v.$$.fragment,t),c(z.$$.fragment,t),c(h.$$.fragment,t),q=!1},d(t){t&&(i(_),i(w),i(T),i(P),i(S)),f($,t),f(g,t),f(b,t),f(v,t),f(z,t),f(h,t)}}}function me(I){let $,_,g,w,b,T,v,P,z,S,h,q,t,x,Q,A,y,L,E,F,M,N,U,C;return $=new k({props:{title:"4. Quali sono i benefici del metodo Dataset.map() ?",local:"4-quali-sono-i-benefici-del-metodo-datasetmap-",headingTag:"h3"}}),g=new D({props:{choices:[{text:"I risultati della funzione vengono conservati, così la ri-esecuzione del codice sarà rapidissima",explain:"Questo è sicuramente uno dei benefici di questo metodo! Ma non è l'unico...",correct:!0},{text:"È possibile applicare multiprocessing per un'esecuzione più rapida rispetto all'applicazione seriale ad ogni elemento del dataset",explain:"Questo è sicuramente uno dei benefici di questo metodo! Ma non è l'unico...",correct:!0},{text:"Non carica l'intero dataset in memoria, salvando i risultati appena ogni elemento è stato processato.",explain:"Questo è sicuramente uno dei benefici di questo metodo! Ma non è l'unico...",correct:!0}]}}),b=new k({props:{title:"5. Qual è il significato di padding dinamico (dynamic padding)?",local:"5-qual-è-il-significato-di-padding-dinamico-dynamic-padding",headingTag:"h3"}}),v=new D({props:{choices:[{text:"È quando si applica in ogni batch il padding fino alla lunghezza massima dell'intero dataset",explain:"Riguarda il padding per ogni batch, ma non fino alla lunghezza massima dell'intero dataset."},{text:"È quando si applica in ogni batch il padding fino alla lunghezza massima delle frasi in quella batch",explain:'Corretto! la parte "dinamica" viene dal fatto che la dimensione per ogni batch viene determinata al momento della creazione, e quindi le batch potrebbero avere dimensioni differenti.',correct:!0},{text:"È quando si applica il padding agli input in modo che ogni frase abbia lo stesso numero di token della frase precedente nel dataset.",explain:"Sbagliato. In più non avrebbe senso considerare l'ordine del dataset dato che lo rimischiamo durante l'apprendimento."}]}}),z=new k({props:{title:"6. Qual è lo scopo di una funzione di raccolta (collate function)?",local:"6-qual-è-lo-scopo-di-una-funzione-di-raccolta-collate-function",headingTag:"h3"}}),h=new D({props:{choices:[{text:"Di assicurarsi che tutte le sequenze nel dataset abbiano la stessa lunghezza.",explain:"Una funzione di raccolta gestisce solo batch individuali, non l'intero dataset. In più, si sta parlando di funzioni di raccolta in generale, e non specificatamente di <code>DataCollatorWithPadding</code>."},{text:"Di raccogliere tutti i campioni in una batch.",explain:"Corretto! Puoi passare la funzione di raccolta come argomento di un <code>DataLoader</code>. Noi abbiamo usato la funzione <code>DataCollatorWithPadding</code>, che applica padding a tutti gli elementi di una batch affinché abbiano la stessa lunghezza.",correct:!0},{text:"Di preprocessare l'intero dataset",explain:"Quella sarebbe una funzione di preprocessing, non di raccolta."},{text:"Di troncare le sequenze nel dataset.",explain:"Una funzione di raccolta gestisce solo batch individuali, non l'intero dataset. Se siete interessati al troncamento, potete usare l'argomento <code>truncate</code> del <code>tokenizer</code>."}]}}),t=new k({props:{title:"7. Cosa succede quando una classe di tipo AutoModelForXxx viene istanziata con un modello di linguaggio pre-addestrato (come bert-base-uncased ) che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?",local:"7-cosa-succede-quando-una-classe-di-tipo-automodelforxxx-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-come-bert-base-uncased--che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato",headingTag:"h3"}}),Q=new D({props:{choices:[{text:"Nulla, ma viene mostrato un avvertimento",explain:"L'avvertimento non è 'l'unica cosa!"},{text:"La testa del modello pre-addestrato viene scartata e una nuova testa, appropriata per il compito, viene inserita al suo posto",explain:"Corretto. Ad esempio, quando abbiamo usato <code>AutoModelForSequenceClassification</code> con <code>bert-base-uncased</code>, abbiamo ottenuto un avvertimento mentre il modello veniva istanziato. La testa pre-addestrata non viene usata per il compito di classificazione delle sequenze, ma viene scartata e una nuova testa viene istanziata con pesi casuali.",correct:!0},{text:"La testa del modello pre-addestrato viene scartata",explain:"Deve succedere anche qualcos'altro. Prova ancora!"},{text:"Nulla, dato che il modello può comunque essere affinato per un compito differente.",explain:"La testa del modello pre-addestrato non era stata addestrata per risolvere questo compito, quindi dovremmo scartarla!"}]}}),y=new k({props:{title:"8. Qual è lo scopo di TrainingArguments ?",local:"8-qual-è-lo-scopo-di-trainingarguments-",headingTag:"h3"}}),E=new D({props:{choices:[{text:"Contiene tutti gli iperparametri usati per l'addestramento e la valutazione con il <code>Trainer</code>.",explain:"Corretto!",correct:!0},{text:"Specifica le dimensioni del modello.",explain:"Le dimensioni del modello sono definite dalla configurazione del modello, non dalla classe <code>TrainingArguments</code>."},{text:"Contiene soltanto gli iperparametri usati per la valutazione.",explain:"Nell'esempio, abbiamo specificato anche dove salvare il modello e i suoi checkpoint. Prova ancora!"},{text:"Contiene soltanto gli iperparametri usati per l'addestramento.",explain:"Nell'esempio, abbiamo usato anche una <code>evaluation_strategy</code> (stragia di valutazione). Prova ancora!"}]}}),M=new k({props:{title:"9. Perché si dovrebbe usare la libreria 🤗 Accelerate?",local:"9-perché-si-dovrebbe-usare-la-libreria--accelerate",headingTag:"h3"}}),U=new D({props:{choices:[{text:"Fornisce l'accesso a modelli più veloci.",explain:"No, la libreria 🤗 Accelerate non fornisce l'accesso ad alcun modello"},{text:"Fornisce una API di alto livello, così non devo implementare il mio ciclo di addestramento.",explain:"Questa è la funzionalità del <code>Trainer</code>, non della libreria 🤗 Accelerate. Prova ancora!"},{text:"Permette ai nostri cicli di addestramento di venire eseguiti con strategie distribuite.",explain:"Corretto! Con 🤗 Accelerate, i tuoi cicli di addestramento funzioneranno con svariate GPU e TPU.",correct:!0},{text:"Fornisce altre funzioni di ottimizzazione.",explain:"No, la libreria 🤗 Accelerate library non fornisce alcuna funzione di ottimizzazione."}]}}),{c(){u($.$$.fragment),_=s(),u(g.$$.fragment),w=s(),u(b.$$.fragment),T=s(),u(v.$$.fragment),P=s(),u(z.$$.fragment),S=s(),u(h.$$.fragment),q=s(),u(t.$$.fragment),x=s(),u(Q.$$.fragment),A=s(),u(y.$$.fragment),L=s(),u(E.$$.fragment),F=s(),u(M.$$.fragment),N=s(),u(U.$$.fragment)},l(e){m($.$$.fragment,e),_=l(e),m(g.$$.fragment,e),w=l(e),m(b.$$.fragment,e),T=l(e),m(v.$$.fragment,e),P=l(e),m(z.$$.fragment,e),S=l(e),m(h.$$.fragment,e),q=l(e),m(t.$$.fragment,e),x=l(e),m(Q.$$.fragment,e),A=l(e),m(y.$$.fragment,e),L=l(e),m(E.$$.fragment,e),F=l(e),m(M.$$.fragment,e),N=l(e),m(U.$$.fragment,e)},m(e,r){p($,e,r),n(e,_,r),p(g,e,r),n(e,w,r),p(b,e,r),n(e,T,r),p(v,e,r),n(e,P,r),p(z,e,r),n(e,S,r),p(h,e,r),n(e,q,r),p(t,e,r),n(e,x,r),p(Q,e,r),n(e,A,r),p(y,e,r),n(e,L,r),p(E,e,r),n(e,F,r),p(M,e,r),n(e,N,r),p(U,e,r),C=!0},i(e){C||(d($.$$.fragment,e),d(g.$$.fragment,e),d(b.$$.fragment,e),d(v.$$.fragment,e),d(z.$$.fragment,e),d(h.$$.fragment,e),d(t.$$.fragment,e),d(Q.$$.fragment,e),d(y.$$.fragment,e),d(E.$$.fragment,e),d(M.$$.fragment,e),d(U.$$.fragment,e),C=!0)},o(e){c($.$$.fragment,e),c(g.$$.fragment,e),c(b.$$.fragment,e),c(v.$$.fragment,e),c(z.$$.fragment,e),c(h.$$.fragment,e),c(t.$$.fragment,e),c(Q.$$.fragment,e),c(y.$$.fragment,e),c(E.$$.fragment,e),c(M.$$.fragment,e),c(U.$$.fragment,e),C=!1},d(e){e&&(i(_),i(w),i(T),i(P),i(S),i(q),i(x),i(A),i(L),i(F),i(N)),f($,e),f(g,e),f(b,e),f(v,e),f(z,e),f(h,e),f(t,e),f(Q,e),f(y,e),f(E,e),f(M,e),f(U,e)}}}function pe(I){let $,_,g,w,b,T,v,P,z,S="Testiamo cosa avete imparato in questo capitolo!",h,q,t,x,Q,A,y,L,E,F,M,N,U,C,e,r,H,G,K,X;b=new ce({props:{fw:I[0]}}),v=new k({props:{title:"Quiz di fine capitolo",local:"quiz-di-fine-capitolo",headingTag:"h1"}}),q=new k({props:{title:"1. Il dataset emotion contiene messaggi Twitter etichettati con emozioni. Cercalo nel Hub e leggi la carta del dataset. Quale di queste non fa parte delle sue emozioni di base?",local:"1-il-dataset-emotion-contiene-messaggi-twitter-etichettati-con-emozioni-cercalo-nel-hub-e-leggi-la-carta-del-dataset-quale-di-queste-non-fa-parte-delle-sue-emozioni-di-base",headingTag:"h3"}}),x=new D({props:{choices:[{text:"Joy (Gioia)",explain:"Prova ancora — questa emozione è contenuta nel dataset!"},{text:"Love (Amore)",explain:"Prova ancora — questa emozione è contenuta nel dataset!"},{text:"Confusion (Confusione)",explain:"Corretto! Confusion non è una della sei emozioni di base.",correct:!0},{text:"Surprise (Sorpresa)",explain:"Sorpresa! Prova ancora!"}]}}),A=new k({props:{title:"2. Cerca il dataset ar_sarcasm nel Hub . Quali compiti supporta?",local:"2-cerca-il-dataset-arsarcasm-nel-hub--quali-compiti-supporta",headingTag:"h3"}}),L=new D({props:{choices:[{text:"Sentiment classification (Classificazione dei sentimenti)",explain:"Corretto! Si capisce dai tag.",correct:!0},{text:"Machine translation (Traduzione automatica)",explain:"Sbagliato — dai un'altra occhiata alla <a href='https://huggingface.co/datasets/ar_sarcasm'>dataset card</a>!"},{text:"Named entity recognition (Riconoscimento di entità con un nome)",explain:"Sbagliato — dai un'altra occhiata alla <a href='https://huggingface.co/datasets/ar_sarcasm'>dataset card</a>!"},{text:"Question answering (Risposte a domande)",explain:"Purtroppo non hai risposto correttamente. Prova ancora!"}]}}),F=new k({props:{title:"3. Come deve essere preparata una coppia di frasi per essere processata dal modello BERT?",local:"3-come-deve-essere-preparata-una-coppia-di-frasi-per-essere-processata-dal-modello-bert",headingTag:"h3"}}),N=new D({props:{choices:[{text:"Tokens_della_frase_1 [SEP] Tokens_della_frase_2",explain:"Un token speciale <code>[SEP]</code> è necessario per separare le due frasi, ma non è l'unica cosa!"},{text:"[CLS] Tokens_della_frase_1 Tokens_della_frase_2",explain:"Un token speciale <code>[CLS]</code> è necessario all'inizio, ma non è l'unica cosa!"},{text:"[CLS] Tokens_della_frase_1 [SEP] Tokens_della_frase_2 [SEP]",explain:"Corretto!",correct:!0},{text:"[CLS] Tokens_della_frase_1 [SEP] Tokens_della_frase_2",explain:"Un token speciale <code>[CLS]</code> è necessario all'inizio e un token speciale <code>[SEP]</code> è necessario per separare le due frasi, ma non è l'unica cosa!"}]}});const j=[me,ue],R=[];function J(a,o){return a[0]==="pt"?0:1}return C=J(I),e=R[C]=j[C](I),H=new de({props:{source:"https://github.com/huggingface/course/blob/main/chapters/it/chapter3/6.mdx"}}),{c(){$=B("meta"),_=s(),g=B("p"),w=s(),u(b.$$.fragment),T=s(),u(v.$$.fragment),P=s(),z=B("p"),z.textContent=S,h=s(),u(q.$$.fragment),t=s(),u(x.$$.fragment),Q=s(),u(A.$$.fragment),y=s(),u(L.$$.fragment),E=s(),u(F.$$.fragment),M=s(),u(N.$$.fragment),U=s(),e.c(),r=s(),u(H.$$.fragment),G=s(),K=B("p"),this.h()},l(a){const o=oe("svelte-u9bgzb",document.head);$=O(o,"META",{name:!0,content:!0}),o.forEach(i),_=l(a),g=O(a,"P",{}),Y(g).forEach(i),w=l(a),m(b.$$.fragment,a),T=l(a),m(v.$$.fragment,a),P=l(a),z=O(a,"P",{"data-svelte-h":!0}),ne(z)!=="svelte-1wyxm6q"&&(z.textContent=S),h=l(a),m(q.$$.fragment,a),t=l(a),m(x.$$.fragment,a),Q=l(a),m(A.$$.fragment,a),y=l(a),m(L.$$.fragment,a),E=l(a),m(F.$$.fragment,a),M=l(a),m(N.$$.fragment,a),U=l(a),e.l(a),r=l(a),m(H.$$.fragment,a),G=l(a),K=O(a,"P",{}),Y(K).forEach(i),this.h()},h(){Z($,"name","hf:doc:metadata"),Z($,"content",fe)},m(a,o){re(document.head,$),n(a,_,o),n(a,g,o),n(a,w,o),p(b,a,o),n(a,T,o),p(v,a,o),n(a,P,o),n(a,z,o),n(a,h,o),p(q,a,o),n(a,t,o),p(x,a,o),n(a,Q,o),p(A,a,o),n(a,y,o),p(L,a,o),n(a,E,o),p(F,a,o),n(a,M,o),p(N,a,o),n(a,U,o),R[C].m(a,o),n(a,r,o),p(H,a,o),n(a,G,o),n(a,K,o),X=!0},p(a,[o]){const V={};o&1&&(V.fw=a[0]),b.$set(V);let W=C;C=J(a),C!==W&&(le(),c(R[W],1,1,()=>{R[W]=null}),se(),e=R[C],e||(e=R[C]=j[C](a),e.c()),d(e,1),e.m(r.parentNode,r))},i(a){X||(d(b.$$.fragment,a),d(v.$$.fragment,a),d(q.$$.fragment,a),d(x.$$.fragment,a),d(A.$$.fragment,a),d(L.$$.fragment,a),d(F.$$.fragment,a),d(N.$$.fragment,a),d(e),d(H.$$.fragment,a),X=!0)},o(a){c(b.$$.fragment,a),c(v.$$.fragment,a),c(q.$$.fragment,a),c(x.$$.fragment,a),c(A.$$.fragment,a),c(L.$$.fragment,a),c(F.$$.fragment,a),c(N.$$.fragment,a),c(e),c(H.$$.fragment,a),X=!1},d(a){a&&(i(_),i(g),i(w),i(T),i(P),i(z),i(h),i(t),i(Q),i(y),i(E),i(M),i(U),i(r),i(G),i(K)),i($),f(b,a),f(v,a),f(q,a),f(x,a),f(A,a),f(L,a),f(F,a),f(N,a),R[C].d(a),f(H,a)}}}const fe='{"title":"Quiz di fine capitolo","local":"quiz-di-fine-capitolo","sections":[{"title":"1. Il dataset emotion contiene messaggi Twitter etichettati con emozioni. Cercalo nel Hub e leggi la carta del dataset. Quale di queste non fa parte delle sue emozioni di base?","local":"1-il-dataset-emotion-contiene-messaggi-twitter-etichettati-con-emozioni-cercalo-nel-hub-e-leggi-la-carta-del-dataset-quale-di-queste-non-fa-parte-delle-sue-emozioni-di-base","sections":[],"depth":3},{"title":"2. Cerca il dataset ar_sarcasm nel Hub . Quali compiti supporta?","local":"2-cerca-il-dataset-arsarcasm-nel-hub--quali-compiti-supporta","sections":[],"depth":3},{"title":"3. Come deve essere preparata una coppia di frasi per essere processata dal modello BERT?","local":"3-come-deve-essere-preparata-una-coppia-di-frasi-per-essere-processata-dal-modello-bert","sections":[],"depth":3},{"title":"4. Quali sono i benefici del metodo Dataset.map() ?","local":"4-quali-sono-i-benefici-del-metodo-datasetmap-","sections":[],"depth":3},{"title":"5. Qual è il significato di padding dinamico (dynamic padding)?","local":"5-qual-è-il-significato-di-padding-dinamico-dynamic-padding","sections":[],"depth":3},{"title":"6. Qual è lo scopo di una funzione di raccolta (collate function)?","local":"6-qual-è-lo-scopo-di-una-funzione-di-raccolta-collate-function","sections":[],"depth":3},{"title":"7. Cosa succede quando una classe di tipo AutoModelForXxx viene istanziata con un modello di linguaggio pre-addestrato (come bert-base-uncased ) che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?","local":"7-cosa-succede-quando-una-classe-di-tipo-automodelforxxx-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-come-bert-base-uncased--che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato","sections":[],"depth":3},{"title":"8. Qual è lo scopo di TrainingArguments ?","local":"8-qual-è-lo-scopo-di-trainingarguments-","sections":[],"depth":3},{"title":"9. Perché si dovrebbe usare la libreria 🤗 Accelerate?","local":"9-perché-si-dovrebbe-usare-la-libreria--accelerate","sections":[],"depth":3},{"title":"4. Cosa succede quando una classe di tipo TFAutoModelForXxx viene istanziata con un modello di linguaggio pre-addestrato (come bert-base-uncased ) che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?","local":"4-cosa-succede-quando-una-classe-di-tipo-tfautomodelforxxx-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-come-bert-base-uncased--che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato","sections":[],"depth":3},{"title":"5. I modelli Tensorflow da transformers sono già dei modelli Keras. Quali benefici offre ciò?","local":"5-i-modelli-tensorflow-da-transformers-sono-già-dei-modelli-keras-quali-benefici-offre-ciò","sections":[],"depth":3},{"title":"6. Come si definisce una metrica personalizzata (custom metric)?","local":"6-come-si-definisce-una-metrica-personalizzata-custom-metric","sections":[],"depth":3}],"depth":1}';function $e(I,$,_){let g="pt";return ae(()=>{const w=new URLSearchParams(window.location.search);_(0,g=w.get("fw")||"pt")}),[g]}class he extends te{constructor($){super(),ie(this,$,$e,pe,ee,{})}}export{he as component};

Xet Storage Details

Size:
20.4 kB
·
Xet hash:
d1626f5a1d86079f3e02324375aa2d3d2ef64b7ff23d49c8db20c43ae86d4e1e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.