Buckets:

rtrm's picture
download
raw
18.8 kB
import{s as Ce,o as _e}from"../chunks/scheduler.47c1f99a.js";import{S as ve,i as Ze,e as b,s as p,c as U,h as We,a as h,d as o,b as d,f as z,g as x,j as V,k as W,l as m,m as M,n as $,o as g,q as xe,t as J,p as w,r as $e}from"../chunks/index.1514974e.js";import{C as Ve,H as Ne,E as Ee}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.8658df52.js";import{C as H}from"../chunks/CodeBlock.7d4296b6.js";import{C as we}from"../chunks/CourseFloatingBanner.30ca0721.js";import{F as ze}from"../chunks/FrameworkSwitchCourse.d0260c3d.js";function Ie(C){let l,n;return l=new we({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/fa/chapter4/section2_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fa/chapter4/section2_tf.ipynb"}]}}),{c(){U(l.$$.fragment)},l(a){x(l.$$.fragment,a)},m(a,c){$(l,a,c),n=!0},i(a){n||(J(l.$$.fragment,a),n=!0)},o(a){g(l.$$.fragment,a),n=!1},d(a){w(l,a)}}}function Qe(C){let l,n;return l=new we({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/fa/chapter4/section2_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/fa/chapter4/section2_pt.ipynb"}]}}),{c(){U(l.$$.fragment)},l(a){x(l.$$.fragment,a)},m(a,c){$(l,a,c),n=!0},i(a){n||(J(l.$$.fragment,a),n=!0)},o(a){g(l.$$.fragment,a),n=!1},d(a){w(l,a)}}}function Be(C){let l,n,a,c,T='با این حال توصیه می‌کنیم به جای این کار، از کلاس‌هایی استفاده کنید که نام آن‌ها با <span dir="ltr"><a href="https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes" rel="nofollow"><code>TFAuto*</code></a></span> شروع می‌شود؛ چرا که طراحی این کلاس‌های خودکار به گونه‌ایست که فارغ از هرگونه وابستگی به معماری به کار رفته هستند. در حالی که نمونه کد قبلی، کاربران را محدود به نقاط تعلیم قابل بارگذاری در معماری CamemBERT می‌کند، استفاده از کلاس‌های <span dir="ltr"><code>TFAuto*</code></span>، تعویض نقاط تعلیم را ساده‌تر می‌نماید:',j,e,i,k;return n=new H({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">&quot;camembert-base&quot;</span>)
model = TFCamembertForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`,wrap:!1}}),i=new H({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">&quot;camembert-base&quot;</span>)
model = TFAutoModelForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`,wrap:!1}}),{c(){l=b("div"),U(n.$$.fragment),a=p(),c=b("p"),c.innerHTML=T,j=p(),e=b("div"),U(i.$$.fragment),this.h()},l(s){l=h(s,"DIV",{dir:!0});var u=z(l);x(n.$$.fragment,u),u.forEach(o),a=d(s),c=h(s,"P",{"data-svelte-h":!0}),V(c)!=="svelte-1bhpwkc"&&(c.innerHTML=T),j=d(s),e=h(s,"DIV",{dir:!0});var f=z(e);x(i.$$.fragment,f),f.forEach(o),this.h()},h(){W(l,"dir","ltr"),W(e,"dir","ltr")},m(s,u){M(s,l,u),$(n,l,null),M(s,a,u),M(s,c,u),M(s,j,u),M(s,e,u),$(i,e,null),k=!0},i(s){k||(J(n.$$.fragment,s),J(i.$$.fragment,s),k=!0)},o(s){g(n.$$.fragment,s),g(i.$$.fragment,s),k=!1},d(s){s&&(o(l),o(a),o(c),o(j),o(e)),w(n),w(i)}}}function Fe(C){let l,n,a,c,T='با این حال توصیه می‌کنیم به جای این کار، از کلاس‌هایی استفاده کنید که نام آن‌ها با <span dir="ltr"><a href="https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes" rel="nofollow"><code>Auto*</code></a></span> شروع می‌شود؛ چرا که طراحی این کلاس‌های خودکار به گونه‌ایست که فارغ از هرگونه وابستگی به معماری به کار رفته هستند. در حالی که نمونه کد قبلی، کاربران را محدود به نقاط تعلیم قابل بارگذاری در معماری CamemBERT می‌کند، استفاده از کلاس‌های <span dir="ltr"><code>Auto*</code></span>، تعویض نقاط تعلیم را ساده‌تر می‌نماید:',j,e,i,k;return n=new H({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">&quot;camembert-base&quot;</span>)
model = CamembertForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`,wrap:!1}}),i=new H({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">&quot;camembert-base&quot;</span>)
model = AutoModelForMaskedLM.from_pretrained(<span class="hljs-string">&quot;camembert-base&quot;</span>)`,wrap:!1}}),{c(){l=b("div"),U(n.$$.fragment),a=p(),c=b("p"),c.innerHTML=T,j=p(),e=b("div"),U(i.$$.fragment),this.h()},l(s){l=h(s,"DIV",{dir:!0});var u=z(l);x(n.$$.fragment,u),u.forEach(o),a=d(s),c=h(s,"P",{"data-svelte-h":!0}),V(c)!=="svelte-1e9jov8"&&(c.innerHTML=T),j=d(s),e=h(s,"DIV",{dir:!0});var f=z(e);x(i.$$.fragment,f),f.forEach(o),this.h()},h(){W(l,"dir","ltr"),W(e,"dir","ltr")},m(s,u){M(s,l,u),$(n,l,null),M(s,a,u),M(s,c,u),M(s,j,u),M(s,e,u),$(i,e,null),k=!0},i(s){k||(J(n.$$.fragment,s),J(i.$$.fragment,s),k=!0)},o(s){g(n.$$.fragment,s),g(i.$$.fragment,s),k=!1},d(s){s&&(o(l),o(a),o(c),o(j),o(e)),w(n),w(i)}}}function Ge(C){let l,n,a,c,T,j,e,i,k,s,u,f,_,K,L,ue="هاب مدل‌ها، انتخاب مدل مناسب را ساده می‌کند؛ به طوری که می‌توان با چند خط کد، آن را در هر کتابخانه پایین‌دستی وابسته استفاده نمود. بیایید نگاهی به نحوه عملی بکارگیری یکی از این مدل‌ها انداخته و ببینیم چگونه می‌توانیم در جامعه کاربران مشارکت داشته باشیم.",le,S,be="فرض کنید به دنبال مدلی مبتنی بر زبان فرانسوی هستیم که قادر به پر کردن جاهای خالی متن است.",ae,I,he='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/camembert.gif" alt="انتخاب مدل Camembert" width="80%"/>',ne,R,Me='نقطه تعلیم <code>camembert-base</code> را انتخاب می‌کنیم تا مدل را با آن آزمایش نماییم. برای شروع استفاده از آن، تمام آنچه نیاز داریم شناسه <code>camembert-base</code> است! همان گونه که در فصل‌های پیشین دیدید، می‌توانیم با استفاده از تابع <span dir="ltr"><code>pipeline()</code></span> نمونه‌ای از آن بسازیم:',re,N,Q,oe,B,ce,q,fe="همان طور که می‌بینید، بارگذاری مدل در داخل خط تولید بسیار ساده است. تنها چیزی که باید مراقبش باشید این است که نقطه تعلیم انتخاب شده، مناسب مسئله‌ای باشد که برای حل آن به کار گرفته خواهد شد. برای مثال، در اینجا نقطه تعلیم <code>camembert-base</code> را در خط تولید <code>fill-mask</code> استفاده می‌کنیم، که انتخابی کاملا معقول است. اما اگر ما این نقطه تعلیم را در خط تولید <code>text-classification</code> به کار بگیریم، نتایج هیچ معنایی نخواهند داشت؛ زیرا سَر مربوط به <code>camembert-base</code> برای این نوع مسئله مناسب نیست. توصیه می‌کنیم برای گزینش نقاط تعلیم مناسب، از قسمت انتخاب مسئله در رابط کاربری هاب هاگینگ‌فِیس استفاده نمایید:",ie,F,ye='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/tasks.png" alt="بخش انتخاب مسئله در رابط کاربری تحت وب" width="80%"/>',me,D,ge="همچنین می‌توانید ایجاد نمونه از نقطه تعلیم مد نظر را مستقیما با استفاده از معماری مدل انجام دهید:",pe,v,Z,O,G,Je="<p>هنگامی که مدلی از پیش تعلیم دیده را استفاده می‌کنید، حتما بررسی کنید که این تعلیم چگونه و روی چه دیتاسِت‌هایی صورت پذیرفته و چه محدودیت‌ها و سوگیری‌هایی را شامل می‌شود. تمامی این اطلاعات می‌بایست در صفحه توضیحات مدل نشان داده شوند.</p>",ee,Y,te,P,se;T=new ze({props:{fw:C[0]}}),i=new Ve({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),s=new Ne({props:{title:"بکارگیری مدل‌های از پیش تعلیم دیده",local:"بکارگیری-مدلهای-از-پیش-تعلیم-دیده",headingTag:"h1"}});const Te=[Qe,Ie],A=[];function je(t,y){return t[0]==="pt"?0:1}f=je(C),_=A[f]=Te[f](C),Q=new H({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">&quot;fill-mask&quot;</span>, model=<span class="hljs-string">&quot;camembert-base&quot;</span>)
results = camembert_fill_mask(<span class="hljs-string">&quot;Le camembert est &lt;mask&gt; :)&quot;</span>)`,wrap:!1}}),B=new H({props:{code:"JTVCJTBBJTIwJTIwJTdCJ3NlcXVlbmNlJyUzQSUyMCdMZSUyMGNhbWVtYmVydCUyMGVzdCUyMGQlQzMlQTlsaWNpZXV4JTIwJTNBKSclMkMlMjAnc2NvcmUnJTNBJTIwMC40OTA5MTAwNTMyNTMxNzM4MyUyQyUyMCd0b2tlbiclM0ElMjA3MjAwJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnZCVDMyVBOWxpY2lldXgnJTdEJTJDJTIwJTBBJTIwJTIwJTdCJ3NlcXVlbmNlJyUzQSUyMCdMZSUyMGNhbWVtYmVydCUyMGVzdCUyMGV4Y2VsbGVudCUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMTA1NTY5NzQyNjE5OTkxMyUyQyUyMCd0b2tlbiclM0ElMjAyMTgzJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnZXhjZWxsZW50JyU3RCUyQyUyMCUwQSUyMCUyMCU3QidzZXF1ZW5jZSclM0ElMjAnTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjBzdWNjdWxlbnQlMjAlM0EpJyUyQyUyMCdzY29yZSclM0ElMjAwLjAzNDUzMzEzMTg2NzY0NzE3JTJDJTIwJ3Rva2VuJyUzQSUyMDI2MjAyJTJDJTIwJ3Rva2VuX3N0ciclM0ElMjAnc3VjY3VsZW50JyU3RCUyQyUyMCUwQSUyMCUyMCU3QidzZXF1ZW5jZSclM0ElMjAnTGUlMjBjYW1lbWJlcnQlMjBlc3QlMjBtZWlsbGV1ciUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMDMzMDMxNDExNDY4OTgyNyUyQyUyMCd0b2tlbiclM0ElMjA1MjglMkMlMjAndG9rZW5fc3RyJyUzQSUyMCdtZWlsbGV1ciclN0QlMkMlMjAlMEElMjAlMjAlN0Inc2VxdWVuY2UnJTNBJTIwJ0xlJTIwY2FtZW1iZXJ0JTIwZXN0JTIwcGFyZmFpdCUyMCUzQSknJTJDJTIwJ3Njb3JlJyUzQSUyMDAuMDMwMDc2NTAxODkxMDE2OTYlMkMlMjAndG9rZW4nJTNBJTIwMTY1NCUyQyUyMCd0b2tlbl9zdHInJTNBJTIwJ3BhcmZhaXQnJTdEJTBBJTVE",highlighted:`[
{<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est délicieux :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.49091005325317383</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">7200</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;délicieux&#x27;</span>},
{<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est excellent :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.1055697426199913</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">2183</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;excellent&#x27;</span>},
{<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est succulent :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.03453313186764717</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">26202</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;succulent&#x27;</span>},
{<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est meilleur :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.0330314114689827</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">528</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;meilleur&#x27;</span>},
{<span class="hljs-string">&#x27;sequence&#x27;</span>: <span class="hljs-string">&#x27;Le camembert est parfait :)&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.03007650189101696</span>, <span class="hljs-string">&#x27;token&#x27;</span>: <span class="hljs-number">1654</span>, <span class="hljs-string">&#x27;token_str&#x27;</span>: <span class="hljs-string">&#x27;parfait&#x27;</span>}
]`,wrap:!1}});const ke=[Fe,Be],X=[];function Ue(t,y){return t[0]==="pt"?0:1}return v=Ue(C),Z=X[v]=ke[v](C),Y=new Ee({props:{source:"https://github.com/huggingface/course/blob/main/chapters/fa/chapter4/2.mdx"}}),{c(){l=b("meta"),n=p(),a=b("p"),c=p(),U(T.$$.fragment),j=p(),e=b("div"),U(i.$$.fragment),k=p(),U(s.$$.fragment),u=p(),_.c(),K=p(),L=b("p"),L.textContent=ue,le=p(),S=b("p"),S.textContent=be,ae=p(),I=b("div"),I.innerHTML=he,ne=p(),R=b("p"),R.innerHTML=Me,re=p(),N=b("div"),U(Q.$$.fragment),oe=p(),U(B.$$.fragment),ce=p(),q=b("p"),q.innerHTML=fe,ie=p(),F=b("div"),F.innerHTML=ye,me=p(),D=b("p"),D.textContent=ge,pe=p(),Z.c(),O=p(),G=b("blockquote"),G.innerHTML=Je,ee=p(),U(Y.$$.fragment),te=p(),P=b("p"),this.h()},l(t){const y=We("svelte-u9bgzb",document.head);l=h(y,"META",{name:!0,content:!0}),y.forEach(o),n=d(t),a=h(t,"P",{}),z(a).forEach(o),c=d(t),x(T.$$.fragment,t),j=d(t),e=h(t,"DIV",{dir:!0});var r=z(e);x(i.$$.fragment,r),k=d(r),x(s.$$.fragment,r),u=d(r),_.l(r),K=d(r),L=h(r,"P",{"data-svelte-h":!0}),V(L)!=="svelte-1d2qw3v"&&(L.textContent=ue),le=d(r),S=h(r,"P",{"data-svelte-h":!0}),V(S)!=="svelte-khsshe"&&(S.textContent=be),ae=d(r),I=h(r,"DIV",{class:!0,"data-svelte-h":!0}),V(I)!=="svelte-1duuvo4"&&(I.innerHTML=he),ne=d(r),R=h(r,"P",{"data-svelte-h":!0}),V(R)!=="svelte-1m62vjl"&&(R.innerHTML=Me),re=d(r),N=h(r,"DIV",{dir:!0});var E=z(N);x(Q.$$.fragment,E),oe=d(E),x(B.$$.fragment,E),E.forEach(o),ce=d(r),q=h(r,"P",{"data-svelte-h":!0}),V(q)!=="svelte-1jdwhbk"&&(q.innerHTML=fe),ie=d(r),F=h(r,"DIV",{class:!0,"data-svelte-h":!0}),V(F)!=="svelte-1nrgybi"&&(F.innerHTML=ye),me=d(r),D=h(r,"P",{"data-svelte-h":!0}),V(D)!=="svelte-kc4u3d"&&(D.textContent=ge),pe=d(r),Z.l(r),O=d(r),G=h(r,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),V(G)!=="svelte-1b2c3nf"&&(G.innerHTML=Je),r.forEach(o),ee=d(t),x(Y.$$.fragment,t),te=d(t),P=h(t,"P",{}),z(P).forEach(o),this.h()},h(){W(l,"name","hf:doc:metadata"),W(l,"content",Ye),W(I,"class","flex justify-center"),W(N,"dir","ltr"),W(F,"class","flex justify-center"),W(G,"class","tip"),W(e,"dir","rtl")},m(t,y){m(document.head,l),M(t,n,y),M(t,a,y),M(t,c,y),$(T,t,y),M(t,j,y),M(t,e,y),$(i,e,null),m(e,k),$(s,e,null),m(e,u),A[f].m(e,null),m(e,K),m(e,L),m(e,le),m(e,S),m(e,ae),m(e,I),m(e,ne),m(e,R),m(e,re),m(e,N),$(Q,N,null),m(N,oe),$(B,N,null),m(e,ce),m(e,q),m(e,ie),m(e,F),m(e,me),m(e,D),m(e,pe),X[v].m(e,null),m(e,O),m(e,G),M(t,ee,y),$(Y,t,y),M(t,te,y),M(t,P,y),se=!0},p(t,[y]){const r={};y&1&&(r.fw=t[0]),T.$set(r);let E=f;f=je(t),f!==E&&($e(),g(A[E],1,1,()=>{A[E]=null}),xe(),_=A[f],_||(_=A[f]=Te[f](t),_.c()),J(_,1),_.m(e,K));let de=v;v=Ue(t),v!==de&&($e(),g(X[de],1,1,()=>{X[de]=null}),xe(),Z=X[v],Z||(Z=X[v]=ke[v](t),Z.c()),J(Z,1),Z.m(e,O))},i(t){se||(J(T.$$.fragment,t),J(i.$$.fragment,t),J(s.$$.fragment,t),J(_),J(Q.$$.fragment,t),J(B.$$.fragment,t),J(Z),J(Y.$$.fragment,t),se=!0)},o(t){g(T.$$.fragment,t),g(i.$$.fragment,t),g(s.$$.fragment,t),g(_),g(Q.$$.fragment,t),g(B.$$.fragment,t),g(Z),g(Y.$$.fragment,t),se=!1},d(t){t&&(o(n),o(a),o(c),o(j),o(e),o(ee),o(te),o(P)),o(l),w(T,t),w(i),w(s),A[f].d(),w(Q),w(B),X[v].d(),w(Y,t)}}}const Ye='{"title":"بکارگیری مدل‌های از پیش تعلیم دیده","local":"بکارگیری-مدلهای-از-پیش-تعلیم-دیده","sections":[],"depth":1}';function Ae(C,l,n){let a="pt";return _e(()=>{const c=new URLSearchParams(window.location.search);n(0,a=c.get("fw")||"pt")}),[a]}class He extends ve{constructor(l){super(),Ze(this,l,Ae,Ge,Ce,{})}}export{He as component};

Xet Storage Details

Size:
18.8 kB
·
Xet hash:
eee95bc5e3adec6474165d60f7282525642515c207d703ee4d430da9681ff358

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