Buckets:
| import{s as Ue,o as $e}from"../chunks/scheduler.505acc25.js";import{S as we,i as Ce,e as d,s as i,c as g,h as Ze,a as h,d as a,b as o,f as Te,g as J,j as C,k as L,l as _e,m as r,n as T,o as y,q as ke,t as f,p as k,r as je}from"../chunks/index.17dd9071.js";import{C as We,H as Ve,E as Ne}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.e360a85f.js";import{C as X}from"../chunks/CodeBlock.e9f12efb.js";import{C as xe}from"../chunks/CourseFloatingBanner.2c656ed6.js";import{F as ve}from"../chunks/FrameworkSwitchCourse.7aa4b983.js";function ze(j){let n,c;return n=new xe({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/th/chapter4/section2_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/th/chapter4/section2_tf.ipynb"}]}}),{c(){g(n.$$.fragment)},l(s){J(n.$$.fragment,s)},m(s,M){T(n,s,M),c=!0},i(s){c||(f(n.$$.fragment,s),c=!0)},o(s){y(n.$$.fragment,s),c=!1},d(s){k(n,s)}}}function Ee(j){let n,c;return n=new xe({props:{chapter:4,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/th/chapter4/section2_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/th/chapter4/section2_pt.ipynb"}]}}),{c(){g(n.$$.fragment)},l(s){J(n.$$.fragment,s)},m(s,M){T(n,s,M),c=!0},i(s){c||(f(n.$$.fragment,s),c=!0)},o(s){y(n.$$.fragment,s),c=!1},d(s){k(n,s)}}}function Qe(j){let n,c,s,M='อย่างไรก็ตาม เราแนะนำให้ใช้ <a href="https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes" rel="nofollow">คลาส <code>TFAuto*</code></a> แทน เพราะว่ามันเป็นคลาสที่สามารถใช้ได้กับสถาปัตยกรรมหลายประเภท (design architecture-agnostic) ในขณะที่โค้ดก่อนหน้านี้จำกัดผู้ใช้อยู่กับ checkpoints ที่สามารถโหลดได้เฉพาะกับสถาปัตยกรรมแบบ CamemBERT การใช้คลาส <code>TFAuto*</code> นั้นทำให้การเปลี่ยน checkpoints เป็นเรื่องง่าย:',u,p,b;return n=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMENhbWVtYmVydFRva2VuaXplciUyQyUyMFRGQ2FtZW1iZXJ0Rm9yTWFza2VkTE0lMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBDYW1lbWJlcnRUb2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMmNhbWVtYmVydC1iYXNlJTIyKSUwQW1vZGVsJTIwJTNEJTIwVEZDYW1lbWJlcnRGb3JNYXNrZWRMTS5mcm9tX3ByZXRyYWluZWQoJTIyY2FtZW1iZXJ0LWJhc2UlMjIp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CamembertTokenizer, TFCamembertForMaskedLM | |
| tokenizer = CamembertTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = TFCamembertForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),p=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoJTIyY2FtZW1iZXJ0LWJhc2UlMjIpJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZCglMjJjYW1lbWJlcnQtYmFzZSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForMaskedLM | |
| tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = TFAutoModelForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),{c(){g(n.$$.fragment),c=i(),s=d("p"),s.innerHTML=M,u=i(),g(p.$$.fragment)},l(t){J(n.$$.fragment,t),c=o(t),s=h(t,"P",{"data-svelte-h":!0}),C(s)!=="svelte-o4d7kt"&&(s.innerHTML=M),u=o(t),J(p.$$.fragment,t)},m(t,m){T(n,t,m),r(t,c,m),r(t,s,m),r(t,u,m),T(p,t,m),b=!0},i(t){b||(f(n.$$.fragment,t),f(p.$$.fragment,t),b=!0)},o(t){y(n.$$.fragment,t),y(p.$$.fragment,t),b=!1},d(t){t&&(a(c),a(s),a(u)),k(n,t),k(p,t)}}}function Be(j){let n,c,s,M='อย่างไรก็ตาม เราแนะนำให้ใช้ <a href="https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes" rel="nofollow">คลาส <code>Auto*</code></a> แทน เพราะว่ามันเป็นคลาสที่สามารถใช้ได้กับสถาปัตยกรรมหลายประเภท (design architecture-agnostic) ในขณะที่โค้ดก่อนหน้านี้จำกัดผู้ใช้อยู่กับ checkpoints ที่สามารถโหลดได้เฉพาะกับสถาปัตยกรรมแบบ CamemBERT การใช้คลาส <code>Auto*</code> นั้นทำให้การเปลี่ยน checkpoints เป็นเรื่องง่าย:',u,p,b;return n=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMENhbWVtYmVydFRva2VuaXplciUyQyUyMENhbWVtYmVydEZvck1hc2tlZExNJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQ2FtZW1iZXJ0VG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJjYW1lbWJlcnQtYmFzZSUyMiklMEFtb2RlbCUyMCUzRCUyMENhbWVtYmVydEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZCglMjJjYW1lbWJlcnQtYmFzZSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> CamembertTokenizer, CamembertForMaskedLM | |
| tokenizer = CamembertTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = CamembertForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),p=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBBdXRvTW9kZWxGb3JNYXNrZWRMTSUwQSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMmNhbWVtYmVydC1iYXNlJTIyKSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKCUyMmNhbWVtYmVydC1iYXNlJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForMaskedLM | |
| tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">"camembert-base"</span>) | |
| model = AutoModelForMaskedLM.from_pretrained(<span class="hljs-string">"camembert-base"</span>)`,wrap:!1}}),{c(){g(n.$$.fragment),c=i(),s=d("p"),s.innerHTML=M,u=i(),g(p.$$.fragment)},l(t){J(n.$$.fragment,t),c=o(t),s=h(t,"P",{"data-svelte-h":!0}),C(s)!=="svelte-11adkgl"&&(s.innerHTML=M),u=o(t),J(p.$$.fragment,t)},m(t,m){T(n,t,m),r(t,c,m),r(t,s,m),r(t,u,m),T(p,t,m),b=!0},i(t){b||(f(n.$$.fragment,t),f(p.$$.fragment,t),b=!0)},o(t){y(n.$$.fragment,t),y(p.$$.fragment,t),b=!1},d(t){t&&(a(c),a(s),a(u)),k(n,t),k(p,t)}}}function Fe(j){let n,c,s,M,u,p,b,t,m,R,x,U,Y,V,ie="Model Hub ทำให้การเลือกใช้โมเดลที่เหมาะสมเป็นเรื่องง่ายขนาดที่ว่า การใช้งานมันคู่กับ library ปลายน้ำสามารถเสร็จได้ในการใช้โค้ดเพียงไม่กี่บรรทัดเท่านั้น มาดูวิธีใช้โมเดลพวกนี้และการให้ความช่วยเหลือกับชุมชนกันดีกว่า",q,N,oe="สมมุติว่าเรากำลังมองหาโมเดลภาษาฝรั่งเศสที่สามารถเติมคำที่หายไปได้ (mask filling)",H,Z,pe='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/camembert.gif" alt="Selecting the Camembert model." width="80%"/>',D,v,me="เราเลือก <code>camembert-base</code> checkpoint มาลองใช้ ตัวระบุ <code>camembert-base</code> คือทั้งหมดที่เราต้องการในการเริ่มใช้งาน! อย่างที่คุณได้เห็นไปแล้วในบทก่อนหน้านี้ เราสามารถเรียกใช้งานมันได้ด้วยคำสั่ง <code>pipeline()</code>:",P,z,K,E,O,Q,ue="อย่างที่คุณเห็น การโหลดโมเดลใน pipeline นั้นง่ายมากๆ สิ่งเดียวที่ควรระวังคือ checkpoint ที่คุณเลือกนั้นควรเหมาะสมกับประเภทของงานที่คุณจะทำ อย่างเช่น ในงานนี้เราโหลด <code>camembert-base</code> checkpoint ใน <code>fill-mask</code> pipeline ซึ่งเหมาะกับงานที่เราจะใช้อย่างแน่นอน แต่ถ้าเราโหลด checkpoint นี้ใน <code>text-classification</code> pipeline ผลลัพธ์จะไม่สมเหตุสมผล เพราะหัวข้อของ <code>camembert-base</code> ไม่เหมาะสมกับงานประเภทนี้! เราแนะนำให้ใช้ตัวเลือกประเภทงาน (task selector) ในอินเตอร์เฟซของ Hugging Face Hub เพื่อเลือก checkpoints ที่เหมาะสม",ee,_,be='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/tasks.png" alt="The task selector on the web interface." width="80%"/>',te,B,Me="คุณสามารถเรียกใช้ checkpoint โดยการใช้สถาปัตยกรรมโมเดล (model architecture) ได้โดยตรงด้วย:",se,$,w,A,W,ye="<p>เมื่อมีการใช้งานโมเดลที่ผ่านการเทรนมาแล้ว (pretrained model) คุณควรตรวจสอบให้มั่นใจว่ามันถูกเทรนมาอย่างไร กับชุดข้อมูลไหน ขีดจำกัด (limits) และความลำเอียง (biases) คืออะไร ซึ่งข้อมูลทั้งหมดนี้ควรถูกระบุอยู่ในการ์ดโมเดล (model card)</p>",le,F,ne,S,ae;u=new ve({props:{fw:j[0]}}),b=new We({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),m=new Ve({props:{title:"การใช้งานโมเดลที่ผ่านการเทรนมาแล้ว (pretrained models)",local:"การใชงานโมเดลทผานการเทรนมาแลว-pretrained-models",headingTag:"h1"}});const fe=[Ee,ze],G=[];function de(e,l){return e[0]==="pt"?0:1}x=de(j),U=G[x]=fe[x](j),z=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2FtZW1iZXJ0X2ZpbGxfbWFzayUyMCUzRCUyMHBpcGVsaW5lKCUyMmZpbGwtbWFzayUyMiUyQyUyMG1vZGVsJTNEJTIyY2FtZW1iZXJ0LWJhc2UlMjIpJTBBcmVzdWx0cyUyMCUzRCUyMGNhbWVtYmVydF9maWxsX21hc2soJTIyTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjAlM0NtYXNrJTNFJTIwJTNBKSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline | |
| camembert_fill_mask = pipeline(<span class="hljs-string">"fill-mask"</span>, model=<span class="hljs-string">"camembert-base"</span>) | |
| results = camembert_fill_mask(<span class="hljs-string">"Le camembert est <mask> :)"</span>)`,wrap:!1}}),E=new X({props:{code:"JTVCJTBBJTIwJTIwJTdCJ3NlcXVlbmNlJyUzQSUyMCdMZSUyMGNhbWVtYmVydCUyMGVzdCUyMGQlQzMlQTlsaWNpZXV4JTIwJTNBKSclMkMlMjAnc2NvcmUnJTNBJTIwMC40OTA5MTAwNTMyNTMxNzM4MyUyQyUyMCd0b2tlbiclM0ElMjA3MjAwJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnZCVDMyVBOWxpY2lldXgnJTdEJTJDJTIwJTBBJTIwJTIwJTdCJ3NlcXVlbmNlJyUzQSUyMCdMZSUyMGNhbWVtYmVydCUyMGVzdCUyMGV4Y2VsbGVudCUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMTA1NTY5NzQyNjE5OTkxMyUyQyUyMCd0b2tlbiclM0ElMjAyMTgzJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnZXhjZWxsZW50JyU3RCUyQyUyMCUwQSUyMCUyMCU3QidzZXF1ZW5jZSclM0ElMjAnTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjBzdWNjdWxlbnQlMjAlM0EpJyUyQyUyMCdzY29yZSclM0ElMjAwLjAzNDUzMzEzMTg2NzY0NzE3JTJDJTIwJ3Rva2VuJyUzQSUyMDI2MjAyJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnc3VjY3VsZW50JyU3RCUyQyUyMCUwQSUyMCUyMCU3QidzZXF1ZW5jZSclM0ElMjAnTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjBtZWlsbGV1ciUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMDMzMDMxNDExNDY4OTgyNyUyQyUyMCd0b2tlbiclM0ElMjA1MjglMkMlMjAndG9rZW5fc3RyJyUzQSUyMCdtZWlsbGV1ciclN0QlMkMlMjAlMEElMjAlMjAlN0Inc2VxdWVuY2UnJTNBJTIwJ0xlJTIwY2FtZW1iZXJ0JTIwZXN0JTIwcGFyZmFpdCUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMDMwMDc2NTAxODkxMDE2OTYlMkMlMjAndG9rZW4nJTNBJTIwMTY1NCUyQyUyMCd0b2tlbl9zdHInJTNBJTIwJ3BhcmZhaXQnJTdEJTBBJTVE",highlighted:`[ | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est délicieux :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.49091005325317383</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">7200</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'délicieux'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est excellent :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.1055697426199913</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">2183</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'excellent'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est succulent :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.03453313186764717</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">26202</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'succulent'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est meilleur :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.0330314114689827</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">528</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'meilleur'</span>}, | |
| {<span class="hljs-string">'sequence'</span>: <span class="hljs-string">'Le camembert est parfait :)'</span>, <span class="hljs-string">'score'</span>: <span class="hljs-number">0.03007650189101696</span>, <span class="hljs-string">'token'</span>: <span class="hljs-number">1654</span>, <span class="hljs-string">'token_str'</span>: <span class="hljs-string">'parfait'</span>} | |
| ]`,wrap:!1}});const he=[Be,Qe],I=[];function ge(e,l){return e[0]==="pt"?0:1}return $=ge(j),w=I[$]=he[$](j),F=new Ne({props:{source:"https://github.com/huggingface/course/blob/main/chapters/th/chapter4/2.mdx"}}),{c(){n=d("meta"),c=i(),s=d("p"),M=i(),g(u.$$.fragment),p=i(),g(b.$$.fragment),t=i(),g(m.$$.fragment),R=i(),U.c(),Y=i(),V=d("p"),V.textContent=ie,q=i(),N=d("p"),N.textContent=oe,H=i(),Z=d("div"),Z.innerHTML=pe,D=i(),v=d("p"),v.innerHTML=me,P=i(),g(z.$$.fragment),K=i(),g(E.$$.fragment),O=i(),Q=d("p"),Q.innerHTML=ue,ee=i(),_=d("div"),_.innerHTML=be,te=i(),B=d("p"),B.textContent=Me,se=i(),w.c(),A=i(),W=d("blockquote"),W.innerHTML=ye,le=i(),g(F.$$.fragment),ne=i(),S=d("p"),this.h()},l(e){const l=Ze("svelte-u9bgzb",document.head);n=h(l,"META",{name:!0,content:!0}),l.forEach(a),c=o(e),s=h(e,"P",{}),Te(s).forEach(a),M=o(e),J(u.$$.fragment,e),p=o(e),J(b.$$.fragment,e),t=o(e),J(m.$$.fragment,e),R=o(e),U.l(e),Y=o(e),V=h(e,"P",{"data-svelte-h":!0}),C(V)!=="svelte-cciipp"&&(V.textContent=ie),q=o(e),N=h(e,"P",{"data-svelte-h":!0}),C(N)!=="svelte-12xbsc3"&&(N.textContent=oe),H=o(e),Z=h(e,"DIV",{class:!0,"data-svelte-h":!0}),C(Z)!=="svelte-4k6hvy"&&(Z.innerHTML=pe),D=o(e),v=h(e,"P",{"data-svelte-h":!0}),C(v)!=="svelte-sx7m40"&&(v.innerHTML=me),P=o(e),J(z.$$.fragment,e),K=o(e),J(E.$$.fragment,e),O=o(e),Q=h(e,"P",{"data-svelte-h":!0}),C(Q)!=="svelte-ig1uuj"&&(Q.innerHTML=ue),ee=o(e),_=h(e,"DIV",{class:!0,"data-svelte-h":!0}),C(_)!=="svelte-1cl7xbt"&&(_.innerHTML=be),te=o(e),B=h(e,"P",{"data-svelte-h":!0}),C(B)!=="svelte-rnw1cq"&&(B.textContent=Me),se=o(e),w.l(e),A=o(e),W=h(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),C(W)!=="svelte-7q3vna"&&(W.innerHTML=ye),le=o(e),J(F.$$.fragment,e),ne=o(e),S=h(e,"P",{}),Te(S).forEach(a),this.h()},h(){L(n,"name","hf:doc:metadata"),L(n,"content",Ge),L(Z,"class","flex justify-center"),L(_,"class","flex justify-center"),L(W,"class","tip")},m(e,l){_e(document.head,n),r(e,c,l),r(e,s,l),r(e,M,l),T(u,e,l),r(e,p,l),T(b,e,l),r(e,t,l),T(m,e,l),r(e,R,l),G[x].m(e,l),r(e,Y,l),r(e,V,l),r(e,q,l),r(e,N,l),r(e,H,l),r(e,Z,l),r(e,D,l),r(e,v,l),r(e,P,l),T(z,e,l),r(e,K,l),T(E,e,l),r(e,O,l),r(e,Q,l),r(e,ee,l),r(e,_,l),r(e,te,l),r(e,B,l),r(e,se,l),I[$].m(e,l),r(e,A,l),r(e,W,l),r(e,le,l),T(F,e,l),r(e,ne,l),r(e,S,l),ae=!0},p(e,[l]){const Je={};l&1&&(Je.fw=e[0]),u.$set(Je);let re=x;x=de(e),x!==re&&(je(),y(G[re],1,1,()=>{G[re]=null}),ke(),U=G[x],U||(U=G[x]=fe[x](e),U.c()),f(U,1),U.m(Y.parentNode,Y));let ce=$;$=ge(e),$!==ce&&(je(),y(I[ce],1,1,()=>{I[ce]=null}),ke(),w=I[$],w||(w=I[$]=he[$](e),w.c()),f(w,1),w.m(A.parentNode,A))},i(e){ae||(f(u.$$.fragment,e),f(b.$$.fragment,e),f(m.$$.fragment,e),f(U),f(z.$$.fragment,e),f(E.$$.fragment,e),f(w),f(F.$$.fragment,e),ae=!0)},o(e){y(u.$$.fragment,e),y(b.$$.fragment,e),y(m.$$.fragment,e),y(U),y(z.$$.fragment,e),y(E.$$.fragment,e),y(w),y(F.$$.fragment,e),ae=!1},d(e){e&&(a(c),a(s),a(M),a(p),a(t),a(R),a(Y),a(V),a(q),a(N),a(H),a(Z),a(D),a(v),a(P),a(K),a(O),a(Q),a(ee),a(_),a(te),a(B),a(se),a(A),a(W),a(le),a(ne),a(S)),a(n),k(u,e),k(b,e),k(m,e),G[x].d(e),k(z,e),k(E,e),I[$].d(e),k(F,e)}}}const Ge='{"title":"การใช้งานโมเดลที่ผ่านการเทรนมาแล้ว (pretrained models)","local":"การใชงานโมเดลทผานการเทรนมาแลว-pretrained-models","sections":[],"depth":1}';function Ie(j,n,c){let s="pt";return $e(()=>{const M=new URLSearchParams(window.location.search);c(0,s=M.get("fw")||"pt")}),[s]}class qe extends we{constructor(n){super(),Ce(this,n,Ie,Fe,Ue,{})}}export{qe as component}; | |
Xet Storage Details
- Size:
- 19.1 kB
- Xet hash:
- 08221e2bd40163cc2e0b23c413d5f586b18af22b4cc33d7e9413a585bdbed1b2
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.