Buckets:

rtrm's picture
download
raw
22.1 kB
import{s as fs,o as us,n as He}from"../chunks/scheduler.36a0863c.js";import{S as gs,i as Ms,g as m,s as l,r,A as ys,h as o,f as a,c as n,j as cs,u as c,x as M,k as ds,y as hs,a as t,v as d,d as f,t as u,w as g}from"../chunks/index.f891bdb2.js";import{T as Xe}from"../chunks/Tip.a8272f7f.js";import{Y as bs}from"../chunks/Youtube.0cbacd3d.js";import{C as h}from"../chunks/CodeBlock.3ec784ea.js";import{H as Ne,E as $s}from"../chunks/EditOnGithub.a58e27a9.js";function Js($){let p,y='Consulta la <a href="https://huggingface.co/tasks/audio-classification" rel="nofollow">página de la tarea</a> de clasificación de imágenes para obtener más información sobre sus modelos, datasets y métricas asociadas.';return{c(){p=m("p"),p.innerHTML=y},l(i){p=o(i,"P",{"data-svelte-h":!0}),M(p)!=="svelte-x2f51r"&&(p.innerHTML=y)},m(i,b){t(i,p,b)},p:He,d(i){i&&a(p)}}}function Us($){let p,y='Si no estás familiarizado con el fine-tuning de un modelo con el <code>Trainer</code>, echa un vistazo al tutorial básico <a href="../training#finetune-with-trainer">aquí</a>!';return{c(){p=m("p"),p.innerHTML=y},l(i){p=o(i,"P",{"data-svelte-h":!0}),M(p)!=="svelte-vd1d0s"&&(p.innerHTML=y)},m(i,b){t(i,p,b)},p:He,d(i){i&&a(p)}}}function js($){let p,y='Para ver un ejemplo más a profundidad de cómo hacer fine-tune a un modelo para clasificación de imágenes, echa un vistazo al correspondiente <a href="https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/image_classification.ipynb" rel="nofollow">PyTorch notebook</a>.';return{c(){p=m("p"),p.innerHTML=y},l(i){p=o(i,"P",{"data-svelte-h":!0}),M(p)!=="svelte-1qqa7s7"&&(p.innerHTML=y)},m(i,b){t(i,p,b)},p:He,d(i){i&&a(p)}}}function Ts($){let p,y,i,b,T,ne,w,pe,C,qe="La clasificación de imágenes asigna una etiqueta o clase a una imagen. A diferencia de la clasificación de texto o audio, las entradas son los valores de los píxeles que representan una imagen. La clasificación de imágenes tiene muchos usos, como la detección de daños tras una catástrofe, el control de la salud de los cultivos o la búsqueda de signos de enfermedad en imágenes médicas.",ie,v,Se='Esta guía te mostrará como hacer fine-tune al <a href="https://huggingface.co/docs/transformers/v4.16.2/en/model_doc/vit" rel="nofollow">ViT</a> en el dataset <a href="https://huggingface.co/datasets/food101" rel="nofollow">Food-101</a> para clasificar un alimento en una imagen.',me,J,oe,Z,re,_,Ae="Carga solo las primeras 5000 imágenes del dataset Food-101 de la biblioteca 🤗 de Datasets ya que es bastante grande:",ce,I,de,x,Le="Divide el dataset en un train y un test set:",fe,G,ue,W,De="A continuación, observa un ejemplo:",ge,k,Me,z,Pe="El campo <code>image</code> contiene una imagen PIL, y cada <code>label</code> es un número entero que representa una clase. Crea un diccionario que asigne un nombre de label a un entero y viceversa. El mapeo ayudará al modelo a recuperar el nombre de label a partir del número de la misma:",ye,R,he,Q,Ke="Ahora puedes convertir el número de label en un nombre de label para obtener más información:",be,E,$e,F,Oe="Cada clase de alimento - o label - corresponde a un número; <code>79</code> indica una costilla de primera en el ejemplo anterior.",Je,V,Ue,B,es="Carga el image processor de ViT para procesar la imagen en un tensor:",je,Y,Te,N,ss='Aplica varias transformaciones de imagen al dataset para hacer el modelo más robusto contra el overfitting. En este caso se utilizará el módulo <a href="https://pytorch.org/vision/stable/transforms.html" rel="nofollow"><code>transforms</code></a> de torchvision. Recorta una parte aleatoria de la imagen, cambia su tamaño y normalízala con la media y la desviación estándar de la imagen:',we,X,Ce,H,as="Crea una función de preprocesamiento que aplique las transformaciones y devuelva los <code>pixel_values</code> - los inputs al modelo - de la imagen:",ve,q,Ze,S,ts='Utiliza el método <a href="https://huggingface.co/docs/datasets/package_reference/main_classes?#datasets.Dataset.with_transform" rel="nofollow"><code>with_transform</code></a> de 🤗 Dataset para aplicar las transformaciones sobre todo el dataset. Las transformaciones se aplican sobre la marcha cuando se carga un elemento del dataset:',_e,A,Ie,L,ls="Utiliza <code>DefaultDataCollator</code> para crear un batch de ejemplos. A diferencia de otros data collators en 🤗 Transformers, el DefaultDataCollator no aplica un preprocesamiento adicional como el padding.",xe,D,Ge,P,We,K,ns="Carga ViT con <code>AutoModelForImageClassification</code>. Especifica el número de labels, y pasa al modelo el mapping entre el número de label y la clase de label:",ke,O,ze,U,Re,ee,ps="Al llegar a este punto, solo quedan tres pasos:",Qe,se,is="<li>Define tus hiperparámetros de entrenamiento en <code>TrainingArguments</code>. Es importante que no elimines las columnas que no se utilicen, ya que esto hará que desaparezca la columna <code>image</code>. Sin la columna <code>image</code> no puedes crear <code>pixel_values</code>. Establece <code>remove_unused_columns=False</code> para evitar este comportamiento.</li> <li>Pasa los training arguments al <code>Trainer</code> junto con el modelo, los datasets, tokenizer y data collator.</li> <li>Llama <code>train()</code> para hacer fine-tune de tu modelo.</li>",Ee,ae,Fe,j,Ve,te,Be,le,Ye;return T=new Ne({props:{title:"Clasificación de imágenes",local:"clasificación-de-imágenes",headingTag:"h1"}}),w=new bs({props:{id:"tjAIM7BOYhw"}}),J=new Xe({props:{$$slots:{default:[Js]},$$scope:{ctx:$}}}),Z=new Ne({props:{title:"Carga el dataset Food-101",local:"carga-el-dataset-food-101",headingTag:"h2"}}),I=new h({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBZm9vZCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJmb29kMTAxJTIyJTJDJTIwc3BsaXQlM0QlMjJ0cmFpbiU1QiUzQTUwMDAlNUQlMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset
<span class="hljs-meta">&gt;&gt;&gt; </span>food = load_dataset(<span class="hljs-string">&quot;food101&quot;</span>, split=<span class="hljs-string">&quot;train[:5000]&quot;</span>)`,wrap:!1}}),G=new h({props:{code:"Zm9vZCUyMCUzRCUyMGZvb2QudHJhaW5fdGVzdF9zcGxpdCh0ZXN0X3NpemUlM0QwLjIp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>food = food.train_test_split(test_size=<span class="hljs-number">0.2</span>)',wrap:!1}}),k=new h({props:{code:"Zm9vZCU1QiUyMnRyYWluJTIyJTVEJTVCMCU1RA==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>food[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-number">0</span>]
{<span class="hljs-string">&#x27;image&#x27;</span>: &lt;PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=512x512 at <span class="hljs-number">0x7F52AFC8AC50</span>&gt;,
<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-number">79</span>}`,wrap:!1}}),R=new h({props:{code:"bGFiZWxzJTIwJTNEJTIwZm9vZCU1QiUyMnRyYWluJTIyJTVELmZlYXR1cmVzJTVCJTIybGFiZWwlMjIlNUQubmFtZXMlMEFsYWJlbDJpZCUyQyUyMGlkMmxhYmVsJTIwJTNEJTIwZGljdCgpJTJDJTIwZGljdCgpJTBBZm9yJTIwaSUyQyUyMGxhYmVsJTIwaW4lMjBlbnVtZXJhdGUobGFiZWxzKSUzQSUwQSUyMCUyMCUyMCUyMGxhYmVsMmlkJTVCbGFiZWwlNUQlMjAlM0QlMjBzdHIoaSklMEElMjAlMjAlMjAlMjBpZDJsYWJlbCU1QnN0cihpKSU1RCUyMCUzRCUyMGxhYmVs",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>labels = food[<span class="hljs-string">&quot;train&quot;</span>].features[<span class="hljs-string">&quot;label&quot;</span>].names
<span class="hljs-meta">&gt;&gt;&gt; </span>label2id, id2label = <span class="hljs-built_in">dict</span>(), <span class="hljs-built_in">dict</span>()
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">for</span> i, label <span class="hljs-keyword">in</span> <span class="hljs-built_in">enumerate</span>(labels):
<span class="hljs-meta">... </span> label2id[label] = <span class="hljs-built_in">str</span>(i)
<span class="hljs-meta">... </span> id2label[<span class="hljs-built_in">str</span>(i)] = label`,wrap:!1}}),E=new h({props:{code:"aWQybGFiZWwlNUJzdHIoNzkpJTVE",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>id2label[<span class="hljs-built_in">str</span>(<span class="hljs-number">79</span>)]
<span class="hljs-string">&#x27;prime_rib&#x27;</span>`,wrap:!1}}),V=new Ne({props:{title:"Preprocesa",local:"preprocesa",headingTag:"h2"}}),Y=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9JbWFnZVByb2Nlc3NvciUwQSUwQWltYWdlX3Byb2Nlc3NvciUyMCUzRCUyMEF1dG9JbWFnZVByb2Nlc3Nvci5mcm9tX3ByZXRyYWluZWQoJTIyZ29vZ2xlJTJGdml0LWJhc2UtcGF0Y2gxNi0yMjQtaW4yMWslMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoImageProcessor
<span class="hljs-meta">&gt;&gt;&gt; </span>image_processor = AutoImageProcessor.from_pretrained(<span class="hljs-string">&quot;google/vit-base-patch16-224-in21k&quot;</span>)`,wrap:!1}}),X=new h({props:{code:"ZnJvbSUyMHRvcmNodmlzaW9uLnRyYW5zZm9ybXMlMjBpbXBvcnQlMjBSYW5kb21SZXNpemVkQ3JvcCUyQyUyMENvbXBvc2UlMkMlMjBOb3JtYWxpemUlMkMlMjBUb1RlbnNvciUwQSUwQW5vcm1hbGl6ZSUyMCUzRCUyME5vcm1hbGl6ZShtZWFuJTNEaW1hZ2VfcHJvY2Vzc29yLmltYWdlX21lYW4lMkMlMjBzdGQlM0RpbWFnZV9wcm9jZXNzb3IuaW1hZ2Vfc3RkKSUwQV90cmFuc2Zvcm1zJTIwJTNEJTIwQ29tcG9zZSglNUJSYW5kb21SZXNpemVkQ3JvcChpbWFnZV9wcm9jZXNzb3Iuc2l6ZSU1QiUyMmhlaWdodCUyMiU1RCklMkMlMjBUb1RlbnNvcigpJTJDJTIwbm9ybWFsaXplJTVEKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> torchvision.transforms <span class="hljs-keyword">import</span> RandomResizedCrop, Compose, Normalize, ToTensor
<span class="hljs-meta">&gt;&gt;&gt; </span>normalize = Normalize(mean=image_processor.image_mean, std=image_processor.image_std)
<span class="hljs-meta">&gt;&gt;&gt; </span>_transforms = Compose([RandomResizedCrop(image_processor.size[<span class="hljs-string">&quot;height&quot;</span>]), ToTensor(), normalize])`,wrap:!1}}),q=new h({props:{code:"ZGVmJTIwdHJhbnNmb3JtcyhleGFtcGxlcyklM0ElMEElMjAlMjAlMjAlMjBleGFtcGxlcyU1QiUyMnBpeGVsX3ZhbHVlcyUyMiU1RCUyMCUzRCUyMCU1Ql90cmFuc2Zvcm1zKGltZy5jb252ZXJ0KCUyMlJHQiUyMikpJTIwZm9yJTIwaW1nJTIwaW4lMjBleGFtcGxlcyU1QiUyMmltYWdlJTIyJTVEJTVEJTBBJTIwJTIwJTIwJTIwZGVsJTIwZXhhbXBsZXMlNUIlMjJpbWFnZSUyMiU1RCUwQSUyMCUyMCUyMCUyMHJldHVybiUyMGV4YW1wbGVz",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">def</span> <span class="hljs-title function_">transforms</span>(<span class="hljs-params">examples</span>):
<span class="hljs-meta">... </span> examples[<span class="hljs-string">&quot;pixel_values&quot;</span>] = [_transforms(img.convert(<span class="hljs-string">&quot;RGB&quot;</span>)) <span class="hljs-keyword">for</span> img <span class="hljs-keyword">in</span> examples[<span class="hljs-string">&quot;image&quot;</span>]]
<span class="hljs-meta">... </span> <span class="hljs-keyword">del</span> examples[<span class="hljs-string">&quot;image&quot;</span>]
<span class="hljs-meta">... </span> <span class="hljs-keyword">return</span> examples`,wrap:!1}}),A=new h({props:{code:"Zm9vZCUyMCUzRCUyMGZvb2Qud2l0aF90cmFuc2Zvcm0odHJhbnNmb3Jtcyk=",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>food = food.with_transform(transforms)',wrap:!1}}),D=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMERlZmF1bHREYXRhQ29sbGF0b3IlMEElMEFkYXRhX2NvbGxhdG9yJTIwJTNEJTIwRGVmYXVsdERhdGFDb2xsYXRvcigp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> DefaultDataCollator
<span class="hljs-meta">&gt;&gt;&gt; </span>data_collator = DefaultDataCollator()`,wrap:!1}}),P=new Ne({props:{title:"Entrena",local:"entrena",headingTag:"h2"}}),O=new h({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckltYWdlQ2xhc3NpZmljYXRpb24lMkMlMjBUcmFpbmluZ0FyZ3VtZW50cyUyQyUyMFRyYWluZXIlMEElMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvckltYWdlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmdvb2dsZSUyRnZpdC1iYXNlLXBhdGNoMTYtMjI0LWluMjFrJTIyJTJDJTBBJTIwJTIwJTIwJTIwbnVtX2xhYmVscyUzRGxlbihsYWJlbHMpJTJDJTBBJTIwJTIwJTIwJTIwaWQybGFiZWwlM0RpZDJsYWJlbCUyQyUwQSUyMCUyMCUyMCUyMGxhYmVsMmlkJTNEbGFiZWwyaWQlMkMlMEEp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForImageClassification, TrainingArguments, Trainer
<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModelForImageClassification.from_pretrained(
<span class="hljs-meta">... </span> <span class="hljs-string">&quot;google/vit-base-patch16-224-in21k&quot;</span>,
<span class="hljs-meta">... </span> num_labels=<span class="hljs-built_in">len</span>(labels),
<span class="hljs-meta">... </span> id2label=id2label,
<span class="hljs-meta">... </span> label2id=label2id,
<span class="hljs-meta">... </span>)`,wrap:!1}}),U=new Xe({props:{$$slots:{default:[Us]},$$scope:{ctx:$}}}),ae=new h({props:{code:"dHJhaW5pbmdfYXJncyUyMCUzRCUyMFRyYWluaW5nQXJndW1lbnRzKCUwQSUyMCUyMCUyMCUyMG91dHB1dF9kaXIlM0QlMjIuJTJGcmVzdWx0cyUyMiUyQyUwQSUyMCUyMCUyMCUyMHBlcl9kZXZpY2VfdHJhaW5fYmF0Y2hfc2l6ZSUzRDE2JTJDJTBBJTIwJTIwJTIwJTIwZXZhbF9zdHJhdGVneSUzRCUyMnN0ZXBzJTIyJTJDJTBBJTIwJTIwJTIwJTIwbnVtX3RyYWluX2Vwb2NocyUzRDQlMkMlMEElMjAlMjAlMjAlMjBmcDE2JTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMHNhdmVfc3RlcHMlM0QxMDAlMkMlMEElMjAlMjAlMjAlMjBldmFsX3N0ZXBzJTNEMTAwJTJDJTBBJTIwJTIwJTIwJTIwbG9nZ2luZ19zdGVwcyUzRDEwJTJDJTBBJTIwJTIwJTIwJTIwbGVhcm5pbmdfcmF0ZSUzRDJlLTQlMkMlMEElMjAlMjAlMjAlMjBzYXZlX3RvdGFsX2xpbWl0JTNEMiUyQyUwQSUyMCUyMCUyMCUyMHJlbW92ZV91bnVzZWRfY29sdW1ucyUzREZhbHNlJTJDJTBBKSUwQSUwQXRyYWluZXIlMjAlM0QlMjBUcmFpbmVyKCUwQSUyMCUyMCUyMCUyMG1vZGVsJTNEbW9kZWwlMkMlMEElMjAlMjAlMjAlMjBhcmdzJTNEdHJhaW5pbmdfYXJncyUyQyUwQSUyMCUyMCUyMCUyMGRhdGFfY29sbGF0b3IlM0RkYXRhX2NvbGxhdG9yJTJDJTBBJTIwJTIwJTIwJTIwdHJhaW5fZGF0YXNldCUzRGZvb2QlNUIlMjJ0cmFpbiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMGV2YWxfZGF0YXNldCUzRGZvb2QlNUIlMjJ0ZXN0JTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwdG9rZW5pemVyJTNEaW1hZ2VfcHJvY2Vzc29yJTJDJTBBKSUwQSUwQXRyYWluZXIudHJhaW4oKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>training_args = TrainingArguments(
<span class="hljs-meta">... </span> output_dir=<span class="hljs-string">&quot;./results&quot;</span>,
<span class="hljs-meta">... </span> per_device_train_batch_size=<span class="hljs-number">16</span>,
<span class="hljs-meta">... </span> eval_strategy=<span class="hljs-string">&quot;steps&quot;</span>,
<span class="hljs-meta">... </span> num_train_epochs=<span class="hljs-number">4</span>,
<span class="hljs-meta">... </span> fp16=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span> save_steps=<span class="hljs-number">100</span>,
<span class="hljs-meta">... </span> eval_steps=<span class="hljs-number">100</span>,
<span class="hljs-meta">... </span> logging_steps=<span class="hljs-number">10</span>,
<span class="hljs-meta">... </span> learning_rate=<span class="hljs-number">2e-4</span>,
<span class="hljs-meta">... </span> save_total_limit=<span class="hljs-number">2</span>,
<span class="hljs-meta">... </span> remove_unused_columns=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>trainer = Trainer(
<span class="hljs-meta">... </span> model=model,
<span class="hljs-meta">... </span> args=training_args,
<span class="hljs-meta">... </span> data_collator=data_collator,
<span class="hljs-meta">... </span> train_dataset=food[<span class="hljs-string">&quot;train&quot;</span>],
<span class="hljs-meta">... </span> eval_dataset=food[<span class="hljs-string">&quot;test&quot;</span>],
<span class="hljs-meta">... </span> tokenizer=image_processor,
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.train()`,wrap:!1}}),j=new Xe({props:{$$slots:{default:[js]},$$scope:{ctx:$}}}),te=new $s({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/es/tasks/image_classification.md"}}),{c(){p=m("meta"),y=l(),i=m("p"),b=l(),r(T.$$.fragment),ne=l(),r(w.$$.fragment),pe=l(),C=m("p"),C.textContent=qe,ie=l(),v=m("p"),v.innerHTML=Se,me=l(),r(J.$$.fragment),oe=l(),r(Z.$$.fragment),re=l(),_=m("p"),_.textContent=Ae,ce=l(),r(I.$$.fragment),de=l(),x=m("p"),x.textContent=Le,fe=l(),r(G.$$.fragment),ue=l(),W=m("p"),W.textContent=De,ge=l(),r(k.$$.fragment),Me=l(),z=m("p"),z.innerHTML=Pe,ye=l(),r(R.$$.fragment),he=l(),Q=m("p"),Q.textContent=Ke,be=l(),r(E.$$.fragment),$e=l(),F=m("p"),F.innerHTML=Oe,Je=l(),r(V.$$.fragment),Ue=l(),B=m("p"),B.textContent=es,je=l(),r(Y.$$.fragment),Te=l(),N=m("p"),N.innerHTML=ss,we=l(),r(X.$$.fragment),Ce=l(),H=m("p"),H.innerHTML=as,ve=l(),r(q.$$.fragment),Ze=l(),S=m("p"),S.innerHTML=ts,_e=l(),r(A.$$.fragment),Ie=l(),L=m("p"),L.innerHTML=ls,xe=l(),r(D.$$.fragment),Ge=l(),r(P.$$.fragment),We=l(),K=m("p"),K.innerHTML=ns,ke=l(),r(O.$$.fragment),ze=l(),r(U.$$.fragment),Re=l(),ee=m("p"),ee.textContent=ps,Qe=l(),se=m("ol"),se.innerHTML=is,Ee=l(),r(ae.$$.fragment),Fe=l(),r(j.$$.fragment),Ve=l(),r(te.$$.fragment),Be=l(),le=m("p"),this.h()},l(e){const s=ys("svelte-u9bgzb",document.head);p=o(s,"META",{name:!0,content:!0}),s.forEach(a),y=n(e),i=o(e,"P",{}),cs(i).forEach(a),b=n(e),c(T.$$.fragment,e),ne=n(e),c(w.$$.fragment,e),pe=n(e),C=o(e,"P",{"data-svelte-h":!0}),M(C)!=="svelte-1in2i61"&&(C.textContent=qe),ie=n(e),v=o(e,"P",{"data-svelte-h":!0}),M(v)!=="svelte-16asmdu"&&(v.innerHTML=Se),me=n(e),c(J.$$.fragment,e),oe=n(e),c(Z.$$.fragment,e),re=n(e),_=o(e,"P",{"data-svelte-h":!0}),M(_)!=="svelte-1i4xr2v"&&(_.textContent=Ae),ce=n(e),c(I.$$.fragment,e),de=n(e),x=o(e,"P",{"data-svelte-h":!0}),M(x)!=="svelte-welj5e"&&(x.textContent=Le),fe=n(e),c(G.$$.fragment,e),ue=n(e),W=o(e,"P",{"data-svelte-h":!0}),M(W)!=="svelte-1ccba5i"&&(W.textContent=De),ge=n(e),c(k.$$.fragment,e),Me=n(e),z=o(e,"P",{"data-svelte-h":!0}),M(z)!=="svelte-1cy1r9x"&&(z.innerHTML=Pe),ye=n(e),c(R.$$.fragment,e),he=n(e),Q=o(e,"P",{"data-svelte-h":!0}),M(Q)!=="svelte-dj6pq1"&&(Q.textContent=Ke),be=n(e),c(E.$$.fragment,e),$e=n(e),F=o(e,"P",{"data-svelte-h":!0}),M(F)!=="svelte-1enyby9"&&(F.innerHTML=Oe),Je=n(e),c(V.$$.fragment,e),Ue=n(e),B=o(e,"P",{"data-svelte-h":!0}),M(B)!=="svelte-b7wzno"&&(B.textContent=es),je=n(e),c(Y.$$.fragment,e),Te=n(e),N=o(e,"P",{"data-svelte-h":!0}),M(N)!=="svelte-oh33tg"&&(N.innerHTML=ss),we=n(e),c(X.$$.fragment,e),Ce=n(e),H=o(e,"P",{"data-svelte-h":!0}),M(H)!=="svelte-1tpprs0"&&(H.innerHTML=as),ve=n(e),c(q.$$.fragment,e),Ze=n(e),S=o(e,"P",{"data-svelte-h":!0}),M(S)!=="svelte-838aua"&&(S.innerHTML=ts),_e=n(e),c(A.$$.fragment,e),Ie=n(e),L=o(e,"P",{"data-svelte-h":!0}),M(L)!=="svelte-1qktm8g"&&(L.innerHTML=ls),xe=n(e),c(D.$$.fragment,e),Ge=n(e),c(P.$$.fragment,e),We=n(e),K=o(e,"P",{"data-svelte-h":!0}),M(K)!=="svelte-1lx22e"&&(K.innerHTML=ns),ke=n(e),c(O.$$.fragment,e),ze=n(e),c(U.$$.fragment,e),Re=n(e),ee=o(e,"P",{"data-svelte-h":!0}),M(ee)!=="svelte-yip3uv"&&(ee.textContent=ps),Qe=n(e),se=o(e,"OL",{"data-svelte-h":!0}),M(se)!=="svelte-2mt88g"&&(se.innerHTML=is),Ee=n(e),c(ae.$$.fragment,e),Fe=n(e),c(j.$$.fragment,e),Ve=n(e),c(te.$$.fragment,e),Be=n(e),le=o(e,"P",{}),cs(le).forEach(a),this.h()},h(){ds(p,"name","hf:doc:metadata"),ds(p,"content",ws)},m(e,s){hs(document.head,p),t(e,y,s),t(e,i,s),t(e,b,s),d(T,e,s),t(e,ne,s),d(w,e,s),t(e,pe,s),t(e,C,s),t(e,ie,s),t(e,v,s),t(e,me,s),d(J,e,s),t(e,oe,s),d(Z,e,s),t(e,re,s),t(e,_,s),t(e,ce,s),d(I,e,s),t(e,de,s),t(e,x,s),t(e,fe,s),d(G,e,s),t(e,ue,s),t(e,W,s),t(e,ge,s),d(k,e,s),t(e,Me,s),t(e,z,s),t(e,ye,s),d(R,e,s),t(e,he,s),t(e,Q,s),t(e,be,s),d(E,e,s),t(e,$e,s),t(e,F,s),t(e,Je,s),d(V,e,s),t(e,Ue,s),t(e,B,s),t(e,je,s),d(Y,e,s),t(e,Te,s),t(e,N,s),t(e,we,s),d(X,e,s),t(e,Ce,s),t(e,H,s),t(e,ve,s),d(q,e,s),t(e,Ze,s),t(e,S,s),t(e,_e,s),d(A,e,s),t(e,Ie,s),t(e,L,s),t(e,xe,s),d(D,e,s),t(e,Ge,s),d(P,e,s),t(e,We,s),t(e,K,s),t(e,ke,s),d(O,e,s),t(e,ze,s),d(U,e,s),t(e,Re,s),t(e,ee,s),t(e,Qe,s),t(e,se,s),t(e,Ee,s),d(ae,e,s),t(e,Fe,s),d(j,e,s),t(e,Ve,s),d(te,e,s),t(e,Be,s),t(e,le,s),Ye=!0},p(e,[s]){const ms={};s&2&&(ms.$$scope={dirty:s,ctx:e}),J.$set(ms);const os={};s&2&&(os.$$scope={dirty:s,ctx:e}),U.$set(os);const rs={};s&2&&(rs.$$scope={dirty:s,ctx:e}),j.$set(rs)},i(e){Ye||(f(T.$$.fragment,e),f(w.$$.fragment,e),f(J.$$.fragment,e),f(Z.$$.fragment,e),f(I.$$.fragment,e),f(G.$$.fragment,e),f(k.$$.fragment,e),f(R.$$.fragment,e),f(E.$$.fragment,e),f(V.$$.fragment,e),f(Y.$$.fragment,e),f(X.$$.fragment,e),f(q.$$.fragment,e),f(A.$$.fragment,e),f(D.$$.fragment,e),f(P.$$.fragment,e),f(O.$$.fragment,e),f(U.$$.fragment,e),f(ae.$$.fragment,e),f(j.$$.fragment,e),f(te.$$.fragment,e),Ye=!0)},o(e){u(T.$$.fragment,e),u(w.$$.fragment,e),u(J.$$.fragment,e),u(Z.$$.fragment,e),u(I.$$.fragment,e),u(G.$$.fragment,e),u(k.$$.fragment,e),u(R.$$.fragment,e),u(E.$$.fragment,e),u(V.$$.fragment,e),u(Y.$$.fragment,e),u(X.$$.fragment,e),u(q.$$.fragment,e),u(A.$$.fragment,e),u(D.$$.fragment,e),u(P.$$.fragment,e),u(O.$$.fragment,e),u(U.$$.fragment,e),u(ae.$$.fragment,e),u(j.$$.fragment,e),u(te.$$.fragment,e),Ye=!1},d(e){e&&(a(y),a(i),a(b),a(ne),a(pe),a(C),a(ie),a(v),a(me),a(oe),a(re),a(_),a(ce),a(de),a(x),a(fe),a(ue),a(W),a(ge),a(Me),a(z),a(ye),a(he),a(Q),a(be),a($e),a(F),a(Je),a(Ue),a(B),a(je),a(Te),a(N),a(we),a(Ce),a(H),a(ve),a(Ze),a(S),a(_e),a(Ie),a(L),a(xe),a(Ge),a(We),a(K),a(ke),a(ze),a(Re),a(ee),a(Qe),a(se),a(Ee),a(Fe),a(Ve),a(Be),a(le)),a(p),g(T,e),g(w,e),g(J,e),g(Z,e),g(I,e),g(G,e),g(k,e),g(R,e),g(E,e),g(V,e),g(Y,e),g(X,e),g(q,e),g(A,e),g(D,e),g(P,e),g(O,e),g(U,e),g(ae,e),g(j,e),g(te,e)}}}const ws='{"title":"Clasificación de imágenes","local":"clasificación-de-imágenes","sections":[{"title":"Carga el dataset Food-101","local":"carga-el-dataset-food-101","sections":[],"depth":2},{"title":"Preprocesa","local":"preprocesa","sections":[],"depth":2},{"title":"Entrena","local":"entrena","sections":[],"depth":2}],"depth":1}';function Cs($){return us(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ws extends gs{constructor(p){super(),Ms(this,p,Cs,Ts,fs,{})}}export{Ws as component};

Xet Storage Details

Size:
22.1 kB
·
Xet hash:
996a4c68fa48a968bc05e616c85ac1d87dd9dc18ceaee36283841571fad5e508

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