import{s as $a,a as Aa,o as Za,n as ba}from"../chunks/scheduler.cd324960.js";import{S as _a,i as Wa,e as M,s as a,c as y,h as ka,a as p,d as t,b as n,f as ce,g as J,j as i,k as o,l as Na,m as e,n as r,t as T,o as j,p as U,q as oe,r as Ce}from"../chunks/index.d5c3adcc.js";import{T as Cs}from"../chunks/Tip.889bec11.js";import{C as xa,H as Z,E as Ba}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.14d935fa.js";import{C as w}from"../chunks/CodeBlock.77426a60.js";function Qa(f){let u,m=`Одна из записей в GTZAN повреждена, поэтому она была удалена из набора данных. Поэтому мы имеем 999 примеров
вместо 1000.`;return{c(){u=M("p"),u.textContent=m},l(c){u=p(c,"P",{"data-svelte-h":!0}),i(u)!=="svelte-775hp5"&&(u.textContent=m)},m(c,I){e(c,u,I)},p:ba,d(c){c&&t(u)}}}function Ea(f){let u,m=`Обратите внимание, как мы передали частоту дискретизации наших аудиоданных нашему экстрактору признаков. Это хорошая практика, так как
экстрактор признаков выполняет проверку под капотом, чтобы убедиться, что частота дискретизации наших аудиоданных соответствует частоте
дискретизации, ожидаемой моделью. Если частота дискретизации аудиоданных не совпадает с частотой дискретизации нашей модели, то необходимо
увеличить или уменьшить частоту дискретизации аудиоданных до нужной.`;return{c(){u=M("p"),u.textContent=m},l(c){u=p(c,"P",{"data-svelte-h":!0}),i(u)!=="svelte-5u7qtl"&&(u.textContent=m)},m(c,I){e(c,u,I)},p:ba,d(c){c&&t(u)}}}function va(f){let u;return{c(){u=oe("Если при выполнении приведенного выше кода оперативная память устройства будет исчерпана, можно настроить параметры пакетной обработки,\n    чтобы уменьшить пиковое потребление оперативной памяти. В частности, можно модифицировать следующие два аргумента:\n    * `batch_size`: по умолчанию 1000, но выше было установлено значение 100. Попробуйте еще раз уменьшить в 2 раза до 50\n    * `writer_batch_size`: по умолчанию равен 1000. Попробуйте уменьшить его до 500, а если это не сработает, то уменьшите его еще раз в 2 раза до 250")},l(m){u=Ce(m,"Если при выполнении приведенного выше кода оперативная память устройства будет исчерпана, можно настроить параметры пакетной обработки,\n    чтобы уменьшить пиковое потребление оперативной памяти. В частности, можно модифицировать следующие два аргумента:\n    * `batch_size`: по умолчанию 1000, но выше было установлено значение 100. Попробуйте еще раз уменьшить в 2 раза до 50\n    * `writer_batch_size`: по умолчанию равен 1000. Попробуйте уменьшить его до 500, а если это не сработает, то уменьшите его еще раз в 2 раза до 250")},m(m,c){e(m,u,c)},d(m){m&&t(u)}}}function Ga(f){let u;return{c(){u=oe("Здесь мы установили значение `push_to_hub=True`, чтобы включить автоматическую загрузку настроенных контрольных точек во время обучения.\n    Если вы не хотите, чтобы ваши контрольные точки загружались на Hugging Face Hub, вы можете установить значение `False`.")},l(m){u=Ce(m,"Здесь мы установили значение `push_to_hub=True`, чтобы включить автоматическую загрузку настроенных контрольных точек во время обучения.\n    Если вы не хотите, чтобы ваши контрольные точки загружались на Hugging Face Hub, вы можете установить значение `False`.")},m(m,c){e(m,u,c)},d(m){m&&t(u)}}}function Ra(f){let u;return{c(){u=oe('В зависимости от используемого графического процессора, при запуске обучения возможно возникновение ошибки CUDA `"out-of-memory"`.\n    В этом случае можно уменьшать `batch_size` постепенно в 2 раза, а для компенсации использовать [`gradient_accumulation_steps`](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments.gradient_accumulation_steps)')},l(m){u=Ce(m,'В зависимости от используемого графического процессора, при запуске обучения возможно возникновение ошибки CUDA `"out-of-memory"`.\n    В этом случае можно уменьшать `batch_size` постепенно в 2 раза, а для компенсации использовать [`gradient_accumulation_steps`](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments.gradient_accumulation_steps)')},m(m,c){e(m,u,c)},d(m){m&&t(u)}}}function Ya(f){let u,m,c,I,_,ds,W,fs,k,de=`В этом разделе мы представим пошаговое руководство по дообучению модели трансформера, использующей только кодеровщик,
для классификации музыки. Для демонстрации мы будем использовать облегченную модель и достаточно небольшой набор данных, что означает,
что код может быть запущен на любом GPU потребительского класса, включая GPU T4 16GB, предоставляемый в рамках бесплатного уровня Google Colab.
В разделе приведены различные советы, которые можно попробовать при использовании GPU меньшего размера и возникновении проблем с нехваткой памяти.`,Is,N,hs,x,fe=`Для обучения нашей модели мы будем использовать набор данных <a href="https://huggingface.co/datasets/marsyas/gtzan" rel="nofollow">GTZAN</a>, который представляет собой
популярный набор данных из 1000 песен для классификации музыкальных жанров. Каждая песня представляет собой 30-секундный клип из одного из 10
музыкальных жанров - от диско до металла. Мы можем получить аудиофайлы и соответствующие им метки из Hugging Face Hub с помощью функции
<code>load_dataset()</code> из 🤗 Datasets:`,gs,B,As,Q,Ie="<strong>Output:</strong>",bs,E,$s,h,Zs,v,he=`GTZAN не предоставляет предопределенного валидационного набора, поэтому нам придется создать его самостоятельно.
Набор данных сбалансирован по жанрам, поэтому мы можем использовать метод <code>train_test_split()</code> для быстрого
создания разбиения в пропорции 90/10 следующим образом:`,_s,G,Ws,R,ge="<strong>Output:</strong>",ks,Y,Ns,z,Ae="Отлично, теперь, когда у нас есть обучающий и тестовый наборы, давайте посмотрим на один из аудиофайлов:",xs,F,Bs,V,be="<strong>Output:</strong>",Qs,X,Es,H,$e=`Как мы видели в <a href="../chapter1/audio_data">Разделе 1</a>, аудиофайлы представлены в виде одномерных массивов NumPy,
где значение массива представляет собой амплитуду на заданном временном интервале. Для этих композиций частота дискретизации
составляет 22 050 Гц, то есть в секунду дискретизируется 22 050 значений амплитуды. Это необходимо учитывать при использовании
предварительно обученной модели с другой частотой дискретизации, самостоятельно преобразуя частоты дискретизации для обеспечения
их соответствия. Мы также видим, что жанр представлен в виде целого числа, или <em>class label</em>, то есть в том формате, в котором модель
будет делать свои предсказания. Воспользуемся методом <code>int2str()</code> функции <code>genre</code> для преобразования этих целых чисел в человекочитаемые имена:`,vs,D,Gs,S,Ze="<strong>Output:</strong>",Rs,q,Ys,L,_e=`Эта метка выглядит корректно, поскольку совпадает с именем аудиофайла. Теперь рассмотрим еще несколько примеров на примере Gradio для создания простого
интерфейса с API <code>Blocks</code>:`,zs,P,Fs,C,We,Vs,O,ke=`Из этих образцов мы, конечно, можем услышать разницу между жанрами, но может ли это сделать трансформер? Давайте обучим модель,
чтобы выяснить это! Для начала нам нужно найти подходящую для этой задачи предварительно обученную модель. Посмотрим, как это можно сделать.`,Xs,K,Hs,ll,Ne=`Для начала выберем подходящую предварительно обученную модель для классификации звука. В этой области предварительное обучение обычно проводится
на больших объемах немаркированных аудиоданных, используя такие наборы данных, как <a href="https://huggingface.co/datasets/librispeech_asr" rel="nofollow">LibriSpeech</a>
и <a href="https://huggingface.co/datasets/facebook/voxpopuli" rel="nofollow">Voxpopuli</a>. Лучший способ найти эти модели на Hugging Face Hub - использовать фильтр
“Audio Classification”, как описано в предыдущем разделе. Хотя такие модели, как Wav2Vec2 и HuBERT, очень популярны, мы будем использовать модель
под названием <em>DistilHuBERT</em>. Это гораздо более компактная (или <em>дистиллированная</em>) версия модели <a href="https://huggingface.co/docs/transformers/model_doc/hubert" rel="nofollow">HuBERT</a>,
которая обучается примерно на 73% быстрее, сохраняя при этом большую часть производительности.`,Ds,d,xe,Ss,sl,qs,tl,Ls,el,Be=`Подобно токенизации в NLP, аудио- и речевые модели требуют, чтобы входные данные были закодированы в формате, который модель может обрабатывать.
В 🤗 Transformers преобразование звука во входной формат осуществляется с помощью <em>feature extractor</em> модели. Подобно токенизаторам, 🤗 Transformers
предоставляет удобный класс <code>AutoFeatureExtractor</code>, который может автоматически выбирать нужный экстрактор признаков для заданной модели. Для того
чтобы увидеть, как мы можем обрабатывать наши аудиофайлы, давайте начнем с инстанцирования экстрактора признаков для DistilHuBERT из предварительно
обученной контрольной точки:`,Ps,al,Os,nl,Qe=`Поскольку частота дискретизации модели и набора данных различна, перед передачей аудиофайла в программу извлечения признаков его необходимо
передискретизировать до 16 000 Гц. Для этого сначала нужно получить частоту дискретизации модели от экстрактора признаков:`,Ks,Ml,lt,pl,Ee="<strong>Output:</strong>",st,il,tt,yl,ve="Далее мы проводим повторную выборку набора данных, используя метод <code>cast_column()</code> и функцию <code>Audio</code> из 🤗 Datasets:",et,Jl,at,rl,Ge=`Теперь мы можем проверить первый сэмпл train-split нашего набора данных, чтобы убедиться, что он действительно находится
на частоте 16 000 Гц. При загрузке каждого сэмпла Datasets производит повторную дискретизацию аудиофайла “на лету”:`,nt,Tl,Mt,jl,Re="<strong>Output:</strong>",pt,Ul,it,ul,Ye=`Отлично! Мы видим, что частота дискретизации была понижена до 16 кГц. Значения массива также отличаются, так как теперь на каждые 1,5 значения
амплитуды приходится примерно одно значение, которое мы имели раньше.`,yt,wl,ze=`Отличительной особенностью моделей типа Wav2Vec2 и HuBERT является то, что они принимают на вход массив float, соответствующий исходной форме
речевого сигнала. В отличие от других моделей, например Whisper, в которых мы предварительно обрабатываем исходную форму звукового сигнала
до формата спектрограммы.`,Jt,ml,Fe=`Мы уже упоминали, что аудиоданные представлены в виде одномерного массива, поэтому они уже имеют правильный формат для чтения моделью
(набор непрерывных входов с дискретными временными шагами). Чтож, что именно делает экстрактор признаков?`,rt,cl,Ve=`Итак, аудиоданные имеют правильный формат, но мы не наложили никаких ограничений на значения, которые они могут принимать. Для оптимальной работы
нашей модели необходимо, чтобы все входные данные находились в одном и том же динамическом диапазоне. Это позволит получить одинаковый диапазон активаций
и градиентов для наших образцов, что поможет обеспечить стабильность и сходимость в процессе обучения.`,Tt,ol,Xe=`Для этого мы <em>нормализуем</em> наши аудиоданные, приводя каждую выборку к нулевому среднему и единичной дисперсии - этот процесс называется
<em>масштабированием признаков</em>. Именно эту нормализацию и выполняет наш экстрактор признаков!`,jt,Cl,He=`Мы можем посмотреть, как работает экстрактор признаков, применив его к нашему первому аудиосэмплу. Сначала вычислим среднее значение и дисперсию
наших исходных аудиоданных:`,Ut,dl,ut,fl,De="<strong>Output:</strong>",wt,Il,mt,hl,Se=`Видно, что среднее значение уже близко к нулю, но дисперсия ближе к 0,05. Если бы дисперсия для выборки была больше, это могло бы
вызвать проблемы с нашей моделью, так как динамический диапазон аудиоданных был бы очень мал и, следовательно, трудноразделим. Применим экстрактор
признаков и посмотрим, что получится на выходе:`,ct,gl,ot,Al,qe="<strong>Output:</strong>",Ct,bl,dt,$l,Le=`Отлично! Наш экстрактор признаков возвращает словарь, состоящий из двух массивов: <code>input_values</code> and <code>attention_mask</code>. <code>input_values</code>
это предварительно обработанные входные аудиоданные, которые мы передадим в модель HuBERT. <a href="https://huggingface.co/docs/transformers/glossary#attention-mask" rel="nofollow"><code>attention_mask</code></a>
используется, когда мы обрабатываем <em>batch</em> аудиовходов одновременно - она используется для того, чтобы сообщить модели, где
у нас есть входы разной длины.`,ft,Zl,Pe=`Мы видим, что среднее значение теперь очень сильно приближается к нулю, а дисперсия - к единице! Именно в таком виде мы хотим получить
наши аудиосэмплы перед подачей их в модель HuBERT.`,It,g,ht,_l,Oe=`Отлично, теперь мы знаем, как обрабатывать наши ресэмплированные аудиофайлы, осталось определить функцию, которую мы можем применить ко всем
примерам в наборе данных. Поскольку мы ожидаем, что длина аудиоклипов будет составлять 30 секунд, мы также будем обрезать все более длинные клипы,
используя аргументы <code>max_length</code> и <code>truncation</code> в экстракторе признаков следующим образом:`,gt,Wl,At,kl,Ke=`Определив эту функцию, мы можем применить ее к набору данных с помощью метода <a href="https://huggingface.co/docs/datasets/v2.14.0/en/package_reference/main_classes#datasets.Dataset.map" rel="nofollow"><code>map()</code></a>.
Метод <code>.map()</code> поддерживает работу с пакетами сэмплов, что мы и сделаем, установив <code>batched=True</code>. По умолчанию размер
пакета составляет 1000, но мы уменьшим его до 100, чтобы пиковая оперативная память оставалась в разумных пределах для бесплатного уровня Google Colab:`,bt,Nl,$t,xl,la="<strong>Output:</strong>",Zt,Bl,_t,A,Wt,Ql,sa=`Для упрощения обучения мы удалили из набора данных столбцы <code>audio</code> и <code>file</code>. Столбец <code>input_values</code> содержит закодированные аудиофайлы,
<code>attention_mask</code> - двоичную маску из значений 0/1, указывающую на то, куда мы добавили входной аудиосигнал, а столбец <code>genre</code> - соответствующие
метки (или цели). Для того чтобы <code>Trainer</code> мог обрабатывать метки классов, необходимо переименовать колонку <code>genre</code> в <code>label</code>:`,kt,El,Nt,vl,ta=`Наконец, нам необходимо получить отображения меток из набора данных. Это отображение позволит нам перейти от целочисленных идентификаторов (например, <code>7</code>)
к человекочитаемым меткам классов (например, <code>&quot;поп&quot;</code>) и обратно. Таким образом, мы можем преобразовать целочисленное предсказание id нашей модели в человекочитаемый формат,
что позволит нам использовать модель в любом последующем приложении. Для этого можно использовать метод <code>int2str()</code> следующим образом:`,xt,Gl,Bt,Rl,Qt,Yl,ea="Итак, у нас есть набор данных, готовый к обучению! Давайте рассмотрим, как можно обучить модель на этом наборе данных.",Et,zl,vt,Fl,aa=`Для дообучения модели мы воспользуемся классом <code>Trainer</code> из раздела 🤗 Transformers. Как мы уже видели в других
главах, <code>Trainer</code> - это высокоуровневый API, предназначенный для работы с наиболее распространенными сценариями обучения.
В данном случае мы будем использовать <code>Trainer</code> для дообучения модели на GTZAN. Для этого сначала нужно загрузить модель для данной задачи.
Для этого мы можем использовать класс <code>AutoModelForAudioClassification</code>, который автоматически добавит соответствующую классификационную голову
в нашу предварительно обученную модель DistilHuBERT. Давайте перейдем к инстанцированию модели:`,Gt,Vl,Rt,Xl,na=`Мы настоятельно рекомендуем во время тренировок загружать контрольные точки моделей непосредственно на <a href="https://huggingface.co/" rel="nofollow">Hugging Face Hub</a>.
Hugging Face Hub предоставляет:`,Yt,Hl,Ma="<li>Встроенный контроль версий: вы можете быть уверены, что ни одна контрольная точка модели не будет потеряна в процессе обучения.</li> <li>Журналы Tensorboard: отслеживание важных показателей в процессе обучения.</li> <li>Карты моделей: документирование того, что делает модель, и предполагаемых вариантов ее использования.</li> <li>Сообщество: простой способ обмена информацией и сотрудничества с сообществом! 🤗</li>",zt,Dl,pa=`Связать ноутбук с Hugging Face Hub очень просто - для этого достаточно ввести аутентификационный токен при появлении соответствующего запроса.
Найдите свой токен аутентификации <a href="https://huggingface.co/settings/tokens" rel="nofollow">здесь</a>:`,Ft,Sl,Vt,ql,ia="<strong>Output:</strong>",Xt,Ll,Ht,Pl,ya=`Следующим шагом является определение аргументов обучения, включая размер пакета, шаги накопления градиента, количество
эпох обучения и скорость обучения:`,Dt,Ol,St,b,qt,Kl,Ja=`Последнее, что нам необходимо сделать, это определить метрики. Поскольку набор данных сбалансирован, в качестве метрики мы будем использовать
accuracy и загружать ее с помощью библиотеки 🤗 Evaluate:`,Lt,ls,Pt,ss,ra="Теперь у нас есть все необходимые компоненты! Давайте инстанцируем <code>Trainer</code> и обучим модель:",Ot,ts,Kt,$,le,es,Ta="<strong>Output:</strong>",se,as,te,ns,ja=`Обучение займет примерно 1 час в зависимости от вашего GPU или выделенного для Google Colab. Наша лучшая доля верных ответов
составляет 83% - неплохо для 10 эпох с 899 примерами обучающих данных! Конечно, мы могли бы улучшить этот результат,
тренируясь на большем количестве эпох, используя методы регуляризации, такие как <em>dropout</em>, или разбивая каждый аудиопример
на сегменты по 30 и 15 секунд, чтобы использовать более эффективную стратегию предварительной обработки данных.`,ee,Ms,Ua=`Большой вопрос, как это соотносится с другими системами классификации музыки 🤔
Для этого мы можем просмотреть <a href="https://huggingface.co/spaces/autoevaluate/leaderboards?dataset=marsyas%2Fgtzan&amp;only_verified=0&amp;task=audio-classification&amp;config=all&amp;split=train&amp;metric=accuracy" rel="nofollow">autoevaluate leaderboard</a>,
таблицу лидеров, которая классифицирует модели по языку и набору данных, а затем ранжирует их по accuracy.`,ae,ps,ua=`Мы можем автоматически отправить нашу контрольную точку в таблицу лидеров при передаче результатов обучения в
Hugging Face Hub - для этого достаточно задать соответствующие аргументы ключевых слов (kwargs). Вы можете изменить эти значения
в соответствии с набором данных, языком и названием модели:`,ne,is,Me,ys,wa="Теперь результаты обучения можно загрузить в Hugging Face Hub. Для этого выполните команду <code>.push_to_hub</code>:",pe,Js,ie,rs,ma=`При этом журналы обучения и веса моделей будут сохранены под именем <code>&quot;your-username/distilhubert-finetuned-gtzan&quot;</code>. Для примера
посмотрите загрузку по адресу <a href="https://huggingface.co/sanchit-gandhi/distilhubert-finetuned-gtzan" rel="nofollow"><code>&quot;sanchit-gandhi/distilhubert-finetuned-gtzan&quot;</code></a>.`,ye,Ts,Je,js,ca=`Теперь вы можете поделиться этой моделью со всеми желающими, воспользовавшись ссылкой на Hub. Они могут загрузить его с идентификатором <code>&quot;your-username/distilhubert-finetuned-gtzan&quot;</code>
непосредственно в <code>pipeline()</code>. Например, для загрузки точно настроенной контрольной точки <a href="https://huggingface.co/sanchit-gandhi/distilhubert-finetuned-gtzan" rel="nofollow"><code>&quot;sanchit-gandhi/distilhubert-finetuned-gtzan&quot;</code></a>:`,re,Us,Te,us,je,ws,oa=`В этом разделе мы рассмотрели пошаговое руководство по тонкой настройке модели DistilHuBERT для классификации музыки. Хотя мы
сосредоточились на задаче классификации музыки и на наборе данных GTZAN, представленные здесь шаги применимы в более общем случае
к любой задаче классификации звука - тот же сценарий может быть использован для задач классификации звука разговорного языка,
таких как выделение ключевых слов или идентификация языка. Вам просто нужно поменять набор данных на тот, который соответствует
интересующей вас задаче! Если вы заинтересованы в тонкой настройке других моделей Hugging Face Hub для классификации звука,
мы рекомендуем вам ознакомиться с другими <a href="https://github.com/huggingface/transformers/tree/main/examples/pytorch/audio-classification" rel="nofollow">примерами</a>
в 🤗 репозитории Transformers.`,Ue,ms,Ca=`В следующем разделе мы возьмем модель, которую вы только что отладили, и создадим демонстрационный образец классификации музыки, который
вы сможете опубликовать на Hugging Face Hub.`,ue,cs,we,os,me;return _=new xa({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),W=new Z({props:{title:"Дообучение модели для классификации музыки",local:"дообучение-модели-для-классификации-музыки",headingTag:"h1"}}),N=new Z({props:{title:"Набор данных",local:"набор-данных",headingTag:"h2"}}),B=new w({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBZ3R6YW4lMjAlM0QlMjBsb2FkX2RhdGFzZXQoJTIybWFyc3lhcyUyRmd0emFuJTIyJTJDJTIwJTIyYWxsJTIyKSUwQWd0emFu",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset

gtzan = load_dataset(<span class="hljs-string">&quot;marsyas/gtzan&quot;</span>, <span class="hljs-string">&quot;all&quot;</span>)
gtzan`,wrap:!1}}),E=new w({props:{code:"RGF0YXNldCglN0IlMEElMjAlMjAlMjAlMjBmZWF0dXJlcyUzQSUyMCU1QidmaWxlJyUyQyUyMCdhdWRpbyclMkMlMjAnZ2VucmUnJTVEJTJDJTBBJTIwJTIwJTIwJTIwbnVtX3Jvd3MlM0ElMjA5OTklMEElN0Qp",highlighted:`<span class="hljs-title function_ invoke__">Dataset</span>({
    <span class="hljs-attr">features</span>: [<span class="hljs-string">&#x27;file&#x27;</span>, <span class="hljs-string">&#x27;audio&#x27;</span>, <span class="hljs-string">&#x27;genre&#x27;</span>],
    <span class="hljs-attr">num_rows</span>: <span class="hljs-number">999</span>
})`,wrap:!1}}),h=new Cs({props:{warning:!0,$$slots:{default:[Qa]},$$scope:{ctx:f}}}),G=new w({props:{code:"Z3R6YW4lMjAlM0QlMjBndHphbi50cmFpbl90ZXN0X3NwbGl0KHNlZWQlM0Q0MiUyQyUyMHNodWZmbGUlM0RUcnVlJTJDJTIwdGVzdF9zaXplJTNEMC4xKSUwQWd0emFu",highlighted:`gtzan = gtzan.train_test_split(seed=<span class="hljs-number">42</span>, shuffle=<span class="hljs-literal">True</span>, test_size=<span class="hljs-number">0.1</span>)
gtzan`,wrap:!1}}),Y=new w({props:{code:"RGF0YXNldERpY3QoJTdCJTBBJTIwJTIwJTIwJTIwdHJhaW4lM0ElMjBEYXRhc2V0KCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVzJTNBJTIwJTVCJ2ZpbGUnJTJDJTIwJ2F1ZGlvJyUyQyUyMCdnZW5yZSclNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBudW1fcm93cyUzQSUyMDg5OSUwQSUyMCUyMCUyMCUyMCU3RCklMEElMjAlMjAlMjAlMjB0ZXN0JTNBJTIwRGF0YXNldCglN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmZWF0dXJlcyUzQSUyMCU1QidmaWxlJyUyQyUyMCdhdWRpbyclMkMlMjAnZ2VucmUnJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbnVtX3Jvd3MlM0ElMjAxMDAlMEElMjAlMjAlMjAlMjAlN0QpJTBBJTdEKQ==",highlighted:`DatasetDict({
    train: <span class="hljs-built_in">Dataset</span>({
        features: [<span class="hljs-string">&#x27;file&#x27;</span>, <span class="hljs-string">&#x27;audio&#x27;</span>, <span class="hljs-string">&#x27;genre&#x27;</span>],
        num_rows: <span class="hljs-number">899</span>
    })
    test: <span class="hljs-built_in">Dataset</span>({
        features: [<span class="hljs-string">&#x27;file&#x27;</span>, <span class="hljs-string">&#x27;audio&#x27;</span>, <span class="hljs-string">&#x27;genre&#x27;</span>],
        num_rows: <span class="hljs-number">100</span>
    })
})`,wrap:!1}}),F=new w({props:{code:"Z3R6YW4lNUIlMjJ0cmFpbiUyMiU1RCU1QjAlNUQ=",highlighted:'gtzan[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-number">0</span>]',wrap:!1}}),X=new w({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJTIyZmlsZSUyMiUzQSUyMCUyMn4lMkYuY2FjaGUlMkZodWdnaW5nZmFjZSUyRmRhdGFzZXRzJTJGZG93bmxvYWRzJTJGZXh0cmFjdGVkJTJGZmEwNmNlNDYxMzBkMzQ2NzY4MzEwMGFjYTk0NWQ2ZGVhZmI2NDIzMTU3NjVhNzg0NDU2ZTFkODFjOTQ3MTVhOCUyRmdlbnJlcyUyRnBvcCUyRnBvcC4wMDA5OC53YXYlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJhdWRpbyUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnBhdGglMjIlM0ElMjAlMjJ+JTJGLmNhY2hlJTJGaHVnZ2luZ2ZhY2UlMkZkYXRhc2V0cyUyRmRvd25sb2FkcyUyRmV4dHJhY3RlZCUyRmZhMDZjZTQ2MTMwZDM0Njc2ODMxMDBhY2E5NDVkNmRlYWZiNjQyMzE1NzY1YTc4NDQ1NmUxZDgxYzk0NzE1YTglMkZnZW5yZXMlMkZwb3AlMkZwb3AuMDAwOTgud2F2JTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyYXJyYXklMjIlM0ElMjBhcnJheSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAwLjEwNzIwODI1JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMC4xNjEyMjQzNyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMDAuMjg1ODU4MTUlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuLi4lMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAtMC4yMjkyNDgwNSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC0wLjIwNjI5ODgzJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLTAuMTEzMzQyMjklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkdHlwZSUzRGZsb2F0MzIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyc2FtcGxpbmdfcmF0ZSUyMiUzQSUyMDIyMDUwJTJDJTBBJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIyZ2VucmUlMjIlM0ElMjA3JTJDJTBBJTdE",highlighted:`{
    <span class="hljs-string">&quot;file&quot;</span>: <span class="hljs-string">&quot;~/.cache/huggingface/datasets/downloads/extracted/fa06ce46130d3467683100aca945d6deafb642315765a784456e1d81c94715a8/genres/pop/pop.00098.wav&quot;</span>,
    <span class="hljs-string">&quot;audio&quot;</span>: {
        <span class="hljs-string">&quot;path&quot;</span>: <span class="hljs-string">&quot;~/.cache/huggingface/datasets/downloads/extracted/fa06ce46130d3467683100aca945d6deafb642315765a784456e1d81c94715a8/genres/pop/pop.00098.wav&quot;</span>,
        <span class="hljs-string">&quot;array&quot;</span>: array(
            [
                <span class="hljs-number">0.10720825</span>,
                <span class="hljs-number">0.16122437</span>,
                <span class="hljs-number">0.28585815</span>,
                ...,
                <span class="hljs-number">-0.22924805</span>,
                <span class="hljs-number">-0.20629883</span>,
                <span class="hljs-number">-0.11334229</span>,
            ],
            d<span class="hljs-keyword">type</span>=float32,
        ),
        <span class="hljs-string">&quot;sampling_rate&quot;</span>: <span class="hljs-number">22050</span>,
    },
    <span class="hljs-string">&quot;genre&quot;</span>: <span class="hljs-number">7</span>,
}`,wrap:!1}}),D=new w({props:{code:"aWQybGFiZWxfZm4lMjAlM0QlMjBndHphbiU1QiUyMnRyYWluJTIyJTVELmZlYXR1cmVzJTVCJTIyZ2VucmUlMjIlNUQuaW50MnN0ciUwQWlkMmxhYmVsX2ZuKGd0emFuJTVCJTIydHJhaW4lMjIlNUQlNUIwJTVEJTVCJTIyZ2VucmUlMjIlNUQp",highlighted:`id2label_fn = gtzan[<span class="hljs-string">&quot;train&quot;</span>].features[<span class="hljs-string">&quot;genre&quot;</span>].int2str
id2label_fn(gtzan[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-number">0</span>][<span class="hljs-string">&quot;genre&quot;</span>])`,wrap:!1}}),q=new w({props:{code:"J3BvcCc=",highlighted:'<span class="hljs-symbol">&#x27;pop</span>&#x27;',wrap:!1}}),P=new w({props:{code:"aW1wb3J0JTIwZ3JhZGlvJTIwYXMlMjBnciUwQSUwQSUwQWRlZiUyMGdlbmVyYXRlX2F1ZGlvKCklM0ElMEElMjAlMjAlMjAlMjBleGFtcGxlJTIwJTNEJTIwZ3R6YW4lNUIlMjJ0cmFpbiUyMiU1RC5zaHVmZmxlKCklNUIwJTVEJTBBJTIwJTIwJTIwJTIwYXVkaW8lMjAlM0QlMjBleGFtcGxlJTVCJTIyYXVkaW8lMjIlNUQlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAoJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXVkaW8lNUIlMjJzYW1wbGluZ19yYXRlJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXVkaW8lNUIlMjJhcnJheSUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMCklMkMlMjBpZDJsYWJlbF9mbihleGFtcGxlJTVCJTIyZ2VucmUlMjIlNUQpJTBBJTBBJTBBd2l0aCUyMGdyLkJsb2NrcygpJTIwYXMlMjBkZW1vJTNBJTBBJTIwJTIwJTIwJTIwd2l0aCUyMGdyLkNvbHVtbigpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZm9yJTIwXyUyMGluJTIwcmFuZ2UoNCklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBhdWRpbyUyQyUyMGxhYmVsJTIwJTNEJTIwZ2VuZXJhdGVfYXVkaW8oKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG91dHB1dCUyMCUzRCUyMGdyLkF1ZGlvKGF1ZGlvJTJDJTIwbGFiZWwlM0RsYWJlbCklMEElMEFkZW1vLmxhdW5jaChkZWJ1ZyUzRFRydWUp",highlighted:`<span class="hljs-keyword">import</span> gradio <span class="hljs-keyword">as</span> gr


<span class="hljs-keyword">def</span> <span class="hljs-title function_">generate_audio</span>():
    example = gtzan[<span class="hljs-string">&quot;train&quot;</span>].shuffle()[<span class="hljs-number">0</span>]
    audio = example[<span class="hljs-string">&quot;audio&quot;</span>]
    <span class="hljs-keyword">return</span> (
        audio[<span class="hljs-string">&quot;sampling_rate&quot;</span>],
        audio[<span class="hljs-string">&quot;array&quot;</span>],
    ), id2label_fn(example[<span class="hljs-string">&quot;genre&quot;</span>])


<span class="hljs-keyword">with</span> gr.Blocks() <span class="hljs-keyword">as</span> demo:
    <span class="hljs-keyword">with</span> gr.Column():
        <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-number">4</span>):
            audio, label = generate_audio()
            output = gr.Audio(audio, label=label)

demo.launch(debug=<span class="hljs-literal">True</span>)`,wrap:!1}}),K=new Z({props:{title:"Выбор предварительно обученной модели для классификации звука",local:"выбор-предварительно-обученной-модели-для-классификации-звука",headingTag:"h2"}}),sl=new Z({props:{title:"От аудио к машинному обучению",local:"от-аудио-к-машинному-обучению",headingTag:"h2"}}),tl=new Z({props:{title:"Предварительная обработка данных",local:"предварительная-обработка-данных",headingTag:"h2"}}),al=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9GZWF0dXJlRXh0cmFjdG9yJTBBJTBBbW9kZWxfaWQlMjAlM0QlMjAlMjJudHUtc3BtbCUyRmRpc3RpbGh1YmVydCUyMiUwQWZlYXR1cmVfZXh0cmFjdG9yJTIwJTNEJTIwQXV0b0ZlYXR1cmVFeHRyYWN0b3IuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMG1vZGVsX2lkJTJDJTIwZG9fbm9ybWFsaXplJTNEVHJ1ZSUyQyUyMHJldHVybl9hdHRlbnRpb25fbWFzayUzRFRydWUlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoFeatureExtractor

model_id = <span class="hljs-string">&quot;ntu-spml/distilhubert&quot;</span>
feature_extractor = AutoFeatureExtractor.from_pretrained(
    model_id, do_normalize=<span class="hljs-literal">True</span>, return_attention_mask=<span class="hljs-literal">True</span>
)`,wrap:!1}}),Ml=new w({props:{code:"c2FtcGxpbmdfcmF0ZSUyMCUzRCUyMGZlYXR1cmVfZXh0cmFjdG9yLnNhbXBsaW5nX3JhdGUlMEFzYW1wbGluZ19yYXRl",highlighted:`sampling_rate = feature_extractor.sampling_rate
sampling_rate`,wrap:!1}}),il=new w({props:{code:"MTYwMDA=",highlighted:"16000",wrap:!1}}),Jl=new w({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwQXVkaW8lMEElMEFndHphbiUyMCUzRCUyMGd0emFuLmNhc3RfY29sdW1uKCUyMmF1ZGlvJTIyJTJDJTIwQXVkaW8oc2FtcGxpbmdfcmF0ZSUzRHNhbXBsaW5nX3JhdGUpKQ==",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> Audio

gtzan = gtzan.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=sampling_rate))`,wrap:!1}}),Tl=new w({props:{code:"Z3R6YW4lNUIlMjJ0cmFpbiUyMiU1RCU1QjAlNUQ=",highlighted:'gtzan[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-number">0</span>]',wrap:!1}}),Ul=new w({props:{code:"JTdCJTBBJTIwJTIwJTIwJTIwJTIyZmlsZSUyMiUzQSUyMCUyMn4lMkYuY2FjaGUlMkZodWdnaW5nZmFjZSUyRmRhdGFzZXRzJTJGZG93bmxvYWRzJTJGZXh0cmFjdGVkJTJGZmEwNmNlNDYxMzBkMzQ2NzY4MzEwMGFjYTk0NWQ2ZGVhZmI2NDIzMTU3NjVhNzg0NDU2ZTFkODFjOTQ3MTVhOCUyRmdlbnJlcyUyRnBvcCUyRnBvcC4wMDA5OC53YXYlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjJhdWRpbyUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnBhdGglMjIlM0ElMjAlMjJ+JTJGLmNhY2hlJTJGaHVnZ2luZ2ZhY2UlMkZkYXRhc2V0cyUyRmRvd25sb2FkcyUyRmV4dHJhY3RlZCUyRmZhMDZjZTQ2MTMwZDM0Njc2ODMxMDBhY2E5NDVkNmRlYWZiNjQyMzE1NzY1YTc4NDQ1NmUxZDgxYzk0NzE1YTglMkZnZW5yZXMlMkZwb3AlMkZwb3AuMDAwOTgud2F2JTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyYXJyYXklMjIlM0ElMjBhcnJheSglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAwLjA4NzM1MDklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAwLjIwMTgzMzg0JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMC40NzkwODY3JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLi4uJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLTAuMTg3NDMxNzglMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAtMC4yMzI5NDQwMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC0wLjEzNTE3NDI3JTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTVEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZHR5cGUlM0RmbG9hdDMyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwKSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnNhbXBsaW5nX3JhdGUlMjIlM0ElMjAxNjAwMCUyQyUwQSUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMmdlbnJlJTIyJTNBJTIwNyUyQyUwQSU3RA==",highlighted:`{
    <span class="hljs-string">&quot;file&quot;</span>: <span class="hljs-string">&quot;~/.cache/huggingface/datasets/downloads/extracted/fa06ce46130d3467683100aca945d6deafb642315765a784456e1d81c94715a8/genres/pop/pop.00098.wav&quot;</span>,
    <span class="hljs-string">&quot;audio&quot;</span>: {
        <span class="hljs-string">&quot;path&quot;</span>: <span class="hljs-string">&quot;~/.cache/huggingface/datasets/downloads/extracted/fa06ce46130d3467683100aca945d6deafb642315765a784456e1d81c94715a8/genres/pop/pop.00098.wav&quot;</span>,
        <span class="hljs-string">&quot;array&quot;</span>: array(
            [
                <span class="hljs-number">0.0873509</span>,
                <span class="hljs-number">0.20183384</span>,
                <span class="hljs-number">0.4790867</span>,
                ...,
                <span class="hljs-number">-0.18743178</span>,
                <span class="hljs-number">-0.23294401</span>,
                <span class="hljs-number">-0.13517427</span>,
            ],
            d<span class="hljs-keyword">type</span>=float32,
        ),
        <span class="hljs-string">&quot;sampling_rate&quot;</span>: <span class="hljs-number">16000</span>,
    },
    <span class="hljs-string">&quot;genre&quot;</span>: <span class="hljs-number">7</span>,
}`,wrap:!1}}),dl=new w({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBc2FtcGxlJTIwJTNEJTIwZ3R6YW4lNUIlMjJ0cmFpbiUyMiU1RCU1QjAlNUQlNUIlMjJhdWRpbyUyMiU1RCUwQSUwQXByaW50KGYlMjJNZWFuJTNBJTIwJTdCbnAubWVhbihzYW1wbGUlNUInYXJyYXknJTVEKSUzQS4zJTdEJTJDJTIwVmFyaWFuY2UlM0ElMjAlN0JucC52YXIoc2FtcGxlJTVCJ2FycmF5JyU1RCklM0EuMyU3RCUyMik=",highlighted:`<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np

sample = gtzan[<span class="hljs-string">&quot;train&quot;</span>][<span class="hljs-number">0</span>][<span class="hljs-string">&quot;audio&quot;</span>]

<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Mean: <span class="hljs-subst">{np.mean(sample[<span class="hljs-string">&#x27;array&#x27;</span>]):<span class="hljs-number">.3</span>}</span>, Variance: <span class="hljs-subst">{np.var(sample[<span class="hljs-string">&#x27;array&#x27;</span>]):<span class="hljs-number">.3</span>}</span>&quot;</span>)`,wrap:!1}}),Il=new w({props:{code:"TWVhbiUzQSUyMDAuMDAwMTg1JTJDJTIwVmFyaWFuY2UlM0ElMjAwLjA0OTM=",highlighted:'<span class="hljs-attribute">Mean</span>: <span class="hljs-number">0</span>.<span class="hljs-number">000185</span>, Variance: <span class="hljs-number">0</span>.<span class="hljs-number">0493</span>',wrap:!1}}),gl=new w({props:{code:"aW5wdXRzJTIwJTNEJTIwZmVhdHVyZV9leHRyYWN0b3Ioc2FtcGxlJTVCJTIyYXJyYXklMjIlNUQlMkMlMjBzYW1wbGluZ19yYXRlJTNEc2FtcGxlJTVCJTIyc2FtcGxpbmdfcmF0ZSUyMiU1RCklMEElMEFwcmludChmJTIyaW5wdXRzJTIwa2V5cyUzQSUyMCU3Qmxpc3QoaW5wdXRzLmtleXMoKSklN0QlMjIpJTBBJTBBcHJpbnQoJTBBJTIwJTIwJTIwJTIwZiUyMk1lYW4lM0ElMjAlN0JucC5tZWFuKGlucHV0cyU1QidpbnB1dF92YWx1ZXMnJTVEKSUzQS4zJTdEJTJDJTIwVmFyaWFuY2UlM0ElMjAlN0JucC52YXIoaW5wdXRzJTVCJ2lucHV0X3ZhbHVlcyclNUQpJTNBLjMlN0QlMjIlMEEp",highlighted:`inputs = feature_extractor(sample[<span class="hljs-string">&quot;array&quot;</span>], sampling_rate=sample[<span class="hljs-string">&quot;sampling_rate&quot;</span>])

<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;inputs keys: <span class="hljs-subst">{<span class="hljs-built_in">list</span>(inputs.keys())}</span>&quot;</span>)

<span class="hljs-built_in">print</span>(
    <span class="hljs-string">f&quot;Mean: <span class="hljs-subst">{np.mean(inputs[<span class="hljs-string">&#x27;input_values&#x27;</span>]):<span class="hljs-number">.3</span>}</span>, Variance: <span class="hljs-subst">{np.var(inputs[<span class="hljs-string">&#x27;input_values&#x27;</span>]):<span class="hljs-number">.3</span>}</span>&quot;</span>
)`,wrap:!1}}),bl=new w({props:{code:"aW5wdXRzJTIwa2V5cyUzQSUyMCU1QidpbnB1dF92YWx1ZXMnJTJDJTIwJ2F0dGVudGlvbl9tYXNrJyU1RCUwQU1lYW4lM0ElMjAtNC41M2UtMDklMkMlMjBWYXJpYW5jZSUzQSUyMDEuMA==",highlighted:`<span class="hljs-attribute">inputs</span> keys:<span class="hljs-meta"> [&#x27;input_values&#x27;, &#x27;attention_mask&#x27;]</span>
<span class="hljs-attribute">Mean</span>: -<span class="hljs-number">4</span>.<span class="hljs-number">53</span>e-<span class="hljs-number">09</span>, Variance: <span class="hljs-number">1</span>.<span class="hljs-number">0</span>`,wrap:!1}}),g=new Cs({props:{warning:!0,$$slots:{default:[Ea]},$$scope:{ctx:f}}}),Wl=new w({props:{code:"bWF4X2R1cmF0aW9uJTIwJTNEJTIwMzAuMCUwQSUwQSUwQWRlZiUyMHByZXByb2Nlc3NfZnVuY3Rpb24oZXhhbXBsZXMpJTNBJTBBJTIwJTIwJTIwJTIwYXVkaW9fYXJyYXlzJTIwJTNEJTIwJTVCeCU1QiUyMmFycmF5JTIyJTVEJTIwZm9yJTIweCUyMGluJTIwZXhhbXBsZXMlNUIlMjJhdWRpbyUyMiU1RCU1RCUwQSUyMCUyMCUyMCUyMGlucHV0cyUyMCUzRCUyMGZlYXR1cmVfZXh0cmFjdG9yKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGF1ZGlvX2FycmF5cyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHNhbXBsaW5nX3JhdGUlM0RmZWF0dXJlX2V4dHJhY3Rvci5zYW1wbGluZ19yYXRlJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbWF4X2xlbmd0aCUzRGludChmZWF0dXJlX2V4dHJhY3Rvci5zYW1wbGluZ19yYXRlJTIwKiUyMG1heF9kdXJhdGlvbiklMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0cnVuY2F0aW9uJTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybl9hdHRlbnRpb25fbWFzayUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjApJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwaW5wdXRz",highlighted:`max_duration = <span class="hljs-number">30.0</span>


<span class="hljs-keyword">def</span> <span class="hljs-title function_">preprocess_function</span>(<span class="hljs-params">examples</span>):
    audio_arrays = [x[<span class="hljs-string">&quot;array&quot;</span>] <span class="hljs-keyword">for</span> x <span class="hljs-keyword">in</span> examples[<span class="hljs-string">&quot;audio&quot;</span>]]
    inputs = feature_extractor(
        audio_arrays,
        sampling_rate=feature_extractor.sampling_rate,
        max_length=<span class="hljs-built_in">int</span>(feature_extractor.sampling_rate * max_duration),
        truncation=<span class="hljs-literal">True</span>,
        return_attention_mask=<span class="hljs-literal">True</span>,
    )
    <span class="hljs-keyword">return</span> inputs`,wrap:!1}}),Nl=new w({props:{code:"Z3R6YW5fZW5jb2RlZCUyMCUzRCUyMGd0emFuLm1hcCglMEElMjAlMjAlMjAlMjBwcmVwcm9jZXNzX2Z1bmN0aW9uJTJDJTBBJTIwJTIwJTIwJTIwcmVtb3ZlX2NvbHVtbnMlM0QlNUIlMjJhdWRpbyUyMiUyQyUyMCUyMmZpbGUlMjIlNUQlMkMlMEElMjAlMjAlMjAlMjBiYXRjaGVkJTNEVHJ1ZSUyQyUwQSUyMCUyMCUyMCUyMGJhdGNoX3NpemUlM0QxMDAlMkMlMEElMjAlMjAlMjAlMjBudW1fcHJvYyUzRDElMkMlMEEpJTBBZ3R6YW5fZW5jb2RlZA==",highlighted:`gtzan_encoded = gtzan.<span class="hljs-built_in">map</span>(
    preprocess_function,
    remove_columns=[<span class="hljs-string">&quot;audio&quot;</span>, <span class="hljs-string">&quot;file&quot;</span>],
    batched=<span class="hljs-literal">True</span>,
    batch_size=<span class="hljs-number">100</span>,
    num_proc=<span class="hljs-number">1</span>,
)
gtzan_encoded`,wrap:!1}}),Bl=new w({props:{code:"RGF0YXNldERpY3QoJTdCJTBBJTIwJTIwJTIwJTIwdHJhaW4lM0ElMjBEYXRhc2V0KCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVzJTNBJTIwJTVCJ2dlbnJlJyUyQyUyMCdpbnB1dF92YWx1ZXMnJTJDJ2F0dGVudGlvbl9tYXNrJyU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9yb3dzJTNBJTIwODk5JTBBJTIwJTIwJTIwJTIwJTdEKSUwQSUyMCUyMCUyMCUyMHRlc3QlM0ElMjBEYXRhc2V0KCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZlYXR1cmVzJTNBJTIwJTVCJ2dlbnJlJyUyQyUyMCdpbnB1dF92YWx1ZXMnJTJDJ2F0dGVudGlvbl9tYXNrJyU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMG51bV9yb3dzJTNBJTIwMTAwJTBBJTIwJTIwJTIwJTIwJTdEKSUwQSU3RCk=",highlighted:`DatasetDict({
    train: <span class="hljs-built_in">Dataset</span>({
        features: [<span class="hljs-string">&#x27;genre&#x27;</span>, <span class="hljs-string">&#x27;input_values&#x27;</span>,<span class="hljs-string">&#x27;attention_mask&#x27;</span>],
        num_rows: <span class="hljs-number">899</span>
    })
    test: <span class="hljs-built_in">Dataset</span>({
        features: [<span class="hljs-string">&#x27;genre&#x27;</span>, <span class="hljs-string">&#x27;input_values&#x27;</span>,<span class="hljs-string">&#x27;attention_mask&#x27;</span>],
        num_rows: <span class="hljs-number">100</span>
    })
})`,wrap:!1}}),A=new Cs({props:{warning:!0,$$slots:{default:[va]},$$scope:{ctx:f}}}),El=new w({props:{code:"Z3R6YW5fZW5jb2RlZCUyMCUzRCUyMGd0emFuX2VuY29kZWQucmVuYW1lX2NvbHVtbiglMjJnZW5yZSUyMiUyQyUyMCUyMmxhYmVsJTIyKQ==",highlighted:'gtzan_encoded = gtzan_encoded.rename_column(<span class="hljs-string">&quot;genre&quot;</span>, <span class="hljs-string">&quot;label&quot;</span>)',wrap:!1}}),Gl=new w({props:{code:"aWQybGFiZWwlMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjBzdHIoaSklM0ElMjBpZDJsYWJlbF9mbihpKSUwQSUyMCUyMCUyMCUyMGZvciUyMGklMjBpbiUyMHJhbmdlKGxlbihndHphbl9lbmNvZGVkJTVCJTIydHJhaW4lMjIlNUQuZmVhdHVyZXMlNUIlMjJsYWJlbCUyMiU1RC5uYW1lcykpJTBBJTdEJTBBbGFiZWwyaWQlMjAlM0QlMjAlN0J2JTNBJTIwayUyMGZvciUyMGslMkMlMjB2JTIwaW4lMjBpZDJsYWJlbC5pdGVtcygpJTdEJTBBJTBBaWQybGFiZWwlNUIlMjI3JTIyJTVE",highlighted:`id2label = {
    <span class="hljs-built_in">str</span>(i): id2label_fn(i)
    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(gtzan_encoded[<span class="hljs-string">&quot;train&quot;</span>].features[<span class="hljs-string">&quot;label&quot;</span>].names))
}
label2id = {v: k <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> id2label.items()}

id2label[<span class="hljs-string">&quot;7&quot;</span>]`,wrap:!1}}),Rl=new w({props:{code:"J3BvcCc=",highlighted:'<span class="hljs-symbol">&#x27;pop</span>&#x27;',wrap:!1}}),zl=new Z({props:{title:"Дообучение модели",local:"дообучение-модели",headingTag:"h2"}}),Vl=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvckF1ZGlvQ2xhc3NpZmljYXRpb24lMEElMEFudW1fbGFiZWxzJTIwJTNEJTIwbGVuKGlkMmxhYmVsKSUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yQXVkaW9DbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwbW9kZWxfaWQlMkMlMEElMjAlMjAlMjAlMjBudW1fbGFiZWxzJTNEbnVtX2xhYmVscyUyQyUwQSUyMCUyMCUyMCUyMGxhYmVsMmlkJTNEbGFiZWwyaWQlMkMlMEElMjAlMjAlMjAlMjBpZDJsYWJlbCUzRGlkMmxhYmVsJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForAudioClassification

num_labels = <span class="hljs-built_in">len</span>(id2label)

model = AutoModelForAudioClassification.from_pretrained(
    model_id,
    num_labels=num_labels,
    label2id=label2id,
    id2label=id2label,
)`,wrap:!1}}),Sl=new w({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

notebook_login()`,wrap:!1}}),Ll=new w({props:{code:"TG9naW4lMjBzdWNjZXNzZnVsJTBBWW91ciUyMHRva2VuJTIwaGFzJTIwYmVlbiUyMHNhdmVkJTIwdG8lMjAlMkZyb290JTJGLmh1Z2dpbmdmYWNlJTJGdG9rZW4=",highlighted:`Login successful
Your token has been saved to /root/.huggingface/token`,wrap:!1}}),Ol=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRyYWluaW5nQXJndW1lbnRzJTBBJTBBbW9kZWxfbmFtZSUyMCUzRCUyMG1vZGVsX2lkLnNwbGl0KCUyMiUyRiUyMiklNUItMSU1RCUwQWJhdGNoX3NpemUlMjAlM0QlMjA4JTBBZ3JhZGllbnRfYWNjdW11bGF0aW9uX3N0ZXBzJTIwJTNEJTIwMSUwQW51bV90cmFpbl9lcG9jaHMlMjAlM0QlMjAxMCUwQSUwQXRyYWluaW5nX2FyZ3MlMjAlM0QlMjBUcmFpbmluZ0FyZ3VtZW50cyglMEElMjAlMjAlMjAlMjBmJTIyJTdCbW9kZWxfbmFtZSU3RC1maW5ldHVuZWQtZ3R6YW4lMjIlMkMlMEElMjAlMjAlMjAlMjBldmFsdWF0aW9uX3N0cmF0ZWd5JTNEJTIyZXBvY2glMjIlMkMlMEElMjAlMjAlMjAlMjBzYXZlX3N0cmF0ZWd5JTNEJTIyZXBvY2glMjIlMkMlMEElMjAlMjAlMjAlMjBsZWFybmluZ19yYXRlJTNENWUtNSUyQyUwQSUyMCUyMCUyMCUyMHBlcl9kZXZpY2VfdHJhaW5fYmF0Y2hfc2l6ZSUzRGJhdGNoX3NpemUlMkMlMEElMjAlMjAlMjAlMjBncmFkaWVudF9hY2N1bXVsYXRpb25fc3RlcHMlM0RncmFkaWVudF9hY2N1bXVsYXRpb25fc3RlcHMlMkMlMEElMjAlMjAlMjAlMjBwZXJfZGV2aWNlX2V2YWxfYmF0Y2hfc2l6ZSUzRGJhdGNoX3NpemUlMkMlMEElMjAlMjAlMjAlMjBudW1fdHJhaW5fZXBvY2hzJTNEbnVtX3RyYWluX2Vwb2NocyUyQyUwQSUyMCUyMCUyMCUyMHdhcm11cF9yYXRpbyUzRDAuMSUyQyUwQSUyMCUyMCUyMCUyMGxvZ2dpbmdfc3RlcHMlM0Q1JTJDJTBBJTIwJTIwJTIwJTIwbG9hZF9iZXN0X21vZGVsX2F0X2VuZCUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBtZXRyaWNfZm9yX2Jlc3RfbW9kZWwlM0QlMjJhY2N1cmFjeSUyMiUyQyUwQSUyMCUyMCUyMCUyMGZwMTYlM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwcHVzaF90b19odWIlM0RUcnVlJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TrainingArguments

model_name = model_id.split(<span class="hljs-string">&quot;/&quot;</span>)[-<span class="hljs-number">1</span>]
batch_size = <span class="hljs-number">8</span>
gradient_accumulation_steps = <span class="hljs-number">1</span>
num_train_epochs = <span class="hljs-number">10</span>

training_args = TrainingArguments(
    <span class="hljs-string">f&quot;<span class="hljs-subst">{model_name}</span>-finetuned-gtzan&quot;</span>,
    evaluation_strategy=<span class="hljs-string">&quot;epoch&quot;</span>,
    save_strategy=<span class="hljs-string">&quot;epoch&quot;</span>,
    learning_rate=<span class="hljs-number">5e-5</span>,
    per_device_train_batch_size=batch_size,
    gradient_accumulation_steps=gradient_accumulation_steps,
    per_device_eval_batch_size=batch_size,
    num_train_epochs=num_train_epochs,
    warmup_ratio=<span class="hljs-number">0.1</span>,
    logging_steps=<span class="hljs-number">5</span>,
    load_best_model_at_end=<span class="hljs-literal">True</span>,
    metric_for_best_model=<span class="hljs-string">&quot;accuracy&quot;</span>,
    fp16=<span class="hljs-literal">True</span>,
    push_to_hub=<span class="hljs-literal">True</span>,
)`,wrap:!1}}),b=new Cs({props:{warning:!0,$$slots:{default:[Ga]},$$scope:{ctx:f}}}),ls=new w({props:{code:"aW1wb3J0JTIwZXZhbHVhdGUlMEFpbXBvcnQlMjBudW1weSUyMGFzJTIwbnAlMEElMEFtZXRyaWMlMjAlM0QlMjBldmFsdWF0ZS5sb2FkKCUyMmFjY3VyYWN5JTIyKSUwQSUwQSUwQWRlZiUyMGNvbXB1dGVfbWV0cmljcyhldmFsX3ByZWQpJTNBJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyQ29tcHV0ZXMlMjBhY2N1cmFjeSUyMG9uJTIwYSUyMGJhdGNoJTIwb2YlMjBwcmVkaWN0aW9ucyUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMHByZWRpY3Rpb25zJTIwJTNEJTIwbnAuYXJnbWF4KGV2YWxfcHJlZC5wcmVkaWN0aW9ucyUyQyUyMGF4aXMlM0QxKSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMG1ldHJpYy5jb21wdXRlKHByZWRpY3Rpb25zJTNEcHJlZGljdGlvbnMlMkMlMjByZWZlcmVuY2VzJTNEZXZhbF9wcmVkLmxhYmVsX2lkcyk=",highlighted:`<span class="hljs-keyword">import</span> evaluate
<span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np

metric = evaluate.load(<span class="hljs-string">&quot;accuracy&quot;</span>)


<span class="hljs-keyword">def</span> <span class="hljs-title function_">compute_metrics</span>(<span class="hljs-params">eval_pred</span>):
    <span class="hljs-string">&quot;&quot;&quot;Computes accuracy on a batch of predictions&quot;&quot;&quot;</span>
    predictions = np.argmax(eval_pred.predictions, axis=<span class="hljs-number">1</span>)
    <span class="hljs-keyword">return</span> metric.compute(predictions=predictions, references=eval_pred.label_ids)`,wrap:!1}}),ts=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRyYWluZXIlMEElMEF0cmFpbmVyJTIwJTNEJTIwVHJhaW5lciglMEElMjAlMjAlMjAlMjBtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMHRyYWluaW5nX2FyZ3MlMkMlMEElMjAlMjAlMjAlMjB0cmFpbl9kYXRhc2V0JTNEZ3R6YW5fZW5jb2RlZCU1QiUyMnRyYWluJTIyJTVEJTJDJTBBJTIwJTIwJTIwJTIwZXZhbF9kYXRhc2V0JTNEZ3R6YW5fZW5jb2RlZCU1QiUyMnRlc3QlMjIlNUQlMkMlMEElMjAlMjAlMjAlMjB0b2tlbml6ZXIlM0RmZWF0dXJlX2V4dHJhY3RvciUyQyUwQSUyMCUyMCUyMCUyMGNvbXB1dGVfbWV0cmljcyUzRGNvbXB1dGVfbWV0cmljcyUyQyUwQSklMEElMEF0cmFpbmVyLnRyYWluKCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> Trainer

trainer = Trainer(
    model,
    training_args,
    train_dataset=gtzan_encoded[<span class="hljs-string">&quot;train&quot;</span>],
    eval_dataset=gtzan_encoded[<span class="hljs-string">&quot;test&quot;</span>],
    tokenizer=feature_extractor,
    compute_metrics=compute_metrics,
)

trainer.train()`,wrap:!1}}),$=new Cs({props:{warning:!0,$$slots:{default:[Ra]},$$scope:{ctx:f}}}),as=new w({props:{code:"JTdDJTIwVHJhaW5pbmclMjBMb3NzJTIwJTdDJTIwRXBvY2glMjAlN0MlMjBTdGVwJTIwJTdDJTIwVmFsaWRhdGlvbiUyMExvc3MlMjAlN0MlMjBBY2N1cmFjeSUyMCU3QyUwQSU3QyUzQS0tLS0tLS0tLS0tLS0lM0ElN0MlM0EtLS0tLSUzQSU3QyUzQS0tLS0lM0ElN0MlM0EtLS0tLS0tLS0tLS0tLS0lM0ElN0MlM0EtLS0tLS0tLSUzQSU3QyUwQSU3QyUyMDEuNzI5NyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDEuMCUyMCUyMCUyMCU3QyUyMDExMyUyMCUyMCU3QyUyMDEuODAxMSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDAuNDQlMjAlMjAlMjAlMjAlMjAlN0MlMEElN0MlMjAxLjI0JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTIwMi4wJTIwJTIwJTIwJTdDJTIwMjI2JTIwJTIwJTdDJTIwMS4zMDQ1JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTIwMC42NCUyMCUyMCUyMCUyMCUyMCU3QyUwQSU3QyUyMDAuOTgwNSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDMuMCUyMCUyMCUyMCU3QyUyMDMzOSUyMCUyMCU3QyUyMDAuOTg4OCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDAuNyUyMCUyMCUyMCUyMCUyMCUyMCU3QyUwQSU3QyUyMDAuNjg1MyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDQuMCUyMCUyMCUyMCU3QyUyMDQ1MiUyMCUyMCU3QyUyMDAuNzUwOCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDAuNzklMjAlMjAlMjAlMjAlMjAlN0MlMEElN0MlMjAwLjQ1MDIlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0MlMjA1LjAlMjAlMjAlMjAlN0MlMjA1NjUlMjAlMjAlN0MlMjAwLjYyMjQlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0MlMjAwLjgxJTIwJTIwJTIwJTIwJTIwJTdDJTBBJTdDJTIwMC4zMDE1JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTIwNi4wJTIwJTIwJTIwJTdDJTIwNjc4JTIwJTIwJTdDJTIwMC41NDExJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTIwMC44MyUyMCUyMCUyMCUyMCUyMCU3QyUwQSU3QyUyMDAuMjI0NCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDcuMCUyMCUyMCUyMCU3QyUyMDc5MSUyMCUyMCU3QyUyMDAuNjI5MyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDAuNzglMjAlMjAlMjAlMjAlMjAlN0MlMEElN0MlMjAwLjMxMDglMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0MlMjA4LjAlMjAlMjAlMjAlN0MlMjA5MDQlMjAlMjAlN0MlMjAwLjU4NTclMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0MlMjAwLjgxJTIwJTIwJTIwJTIwJTIwJTdDJTBBJTdDJTIwMC4xNjQ0JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdDJTIwOS4wJTIwJTIwJTIwJTdDJTIwMTAxNyUyMCU3QyUyMDAuNTM1NSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDAuODMlMjAlMjAlMjAlMjAlMjAlN0MlMEElN0MlMjAwLjExOTglMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0MlMjAxMC4wJTIwJTIwJTdDJTIwMTEzMCUyMCU3QyUyMDAuNTcxNiUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QyUyMDAuODIlMjAlMjAlMjAlMjAlMjAlN0M=",highlighted:`|<span class="hljs-string"> Training Loss </span>|<span class="hljs-string"> Epoch </span>|<span class="hljs-string"> Step </span>|<span class="hljs-string"> Validation Loss </span>|<span class="hljs-string"> Accuracy </span>|
|<span class="hljs-string">:-------------:</span>|<span class="hljs-string">:-----:</span>|<span class="hljs-string">:----:</span>|<span class="hljs-string">:---------------:</span>|<span class="hljs-string">:--------:</span>|
|<span class="hljs-string"> 1.7297        </span>|<span class="hljs-string"> 1.0   </span>|<span class="hljs-string"> 113  </span>|<span class="hljs-string"> 1.8011          </span>|<span class="hljs-string"> 0.44     </span>|
|<span class="hljs-string"> 1.24          </span>|<span class="hljs-string"> 2.0   </span>|<span class="hljs-string"> 226  </span>|<span class="hljs-string"> 1.3045          </span>|<span class="hljs-string"> 0.64     </span>|
|<span class="hljs-string"> 0.9805        </span>|<span class="hljs-string"> 3.0   </span>|<span class="hljs-string"> 339  </span>|<span class="hljs-string"> 0.9888          </span>|<span class="hljs-string"> 0.7      </span>|
|<span class="hljs-string"> 0.6853        </span>|<span class="hljs-string"> 4.0   </span>|<span class="hljs-string"> 452  </span>|<span class="hljs-string"> 0.7508          </span>|<span class="hljs-string"> 0.79     </span>|
|<span class="hljs-string"> 0.4502        </span>|<span class="hljs-string"> 5.0   </span>|<span class="hljs-string"> 565  </span>|<span class="hljs-string"> 0.6224          </span>|<span class="hljs-string"> 0.81     </span>|
|<span class="hljs-string"> 0.3015        </span>|<span class="hljs-string"> 6.0   </span>|<span class="hljs-string"> 678  </span>|<span class="hljs-string"> 0.5411          </span>|<span class="hljs-string"> 0.83     </span>|
|<span class="hljs-string"> 0.2244        </span>|<span class="hljs-string"> 7.0   </span>|<span class="hljs-string"> 791  </span>|<span class="hljs-string"> 0.6293          </span>|<span class="hljs-string"> 0.78     </span>|
|<span class="hljs-string"> 0.3108        </span>|<span class="hljs-string"> 8.0   </span>|<span class="hljs-string"> 904  </span>|<span class="hljs-string"> 0.5857          </span>|<span class="hljs-string"> 0.81     </span>|
|<span class="hljs-string"> 0.1644        </span>|<span class="hljs-string"> 9.0   </span>|<span class="hljs-string"> 1017 </span>|<span class="hljs-string"> 0.5355          </span>|<span class="hljs-string"> 0.83     </span>|
|<span class="hljs-string"> 0.1198        </span>|<span class="hljs-string"> 10.0  </span>|<span class="hljs-string"> 1130 </span>|<span class="hljs-string"> 0.5716          </span>|<span class="hljs-string"> 0.82     </span>|`,wrap:!1}}),is=new w({props:{code:"a3dhcmdzJTIwJTNEJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyZGF0YXNldF90YWdzJTIyJTNBJTIwJTIybWFyc3lhcyUyRmd0emFuJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyZGF0YXNldCUyMiUzQSUyMCUyMkdUWkFOJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIybW9kZWxfbmFtZSUyMiUzQSUyMGYlMjIlN0Jtb2RlbF9uYW1lJTdELWZpbmV0dW5lZC1ndHphbiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMmZpbmV0dW5lZF9mcm9tJTIyJTNBJTIwbW9kZWxfaWQlMkMlMEElMjAlMjAlMjAlMjAlMjJ0YXNrcyUyMiUzQSUyMCUyMmF1ZGlvLWNsYXNzaWZpY2F0aW9uJTIyJTJDJTBBJTdE",highlighted:`kwargs = {
    <span class="hljs-string">&quot;dataset_tags&quot;</span>: <span class="hljs-string">&quot;marsyas/gtzan&quot;</span>,
    <span class="hljs-string">&quot;dataset&quot;</span>: <span class="hljs-string">&quot;GTZAN&quot;</span>,
    <span class="hljs-string">&quot;model_name&quot;</span>: <span class="hljs-string">f&quot;<span class="hljs-subst">{model_name}</span>-finetuned-gtzan&quot;</span>,
    <span class="hljs-string">&quot;finetuned_from&quot;</span>: model_id,
    <span class="hljs-string">&quot;tasks&quot;</span>: <span class="hljs-string">&quot;audio-classification&quot;</span>,
}`,wrap:!1}}),Js=new w({props:{code:"dHJhaW5lci5wdXNoX3RvX2h1YigqKmt3YXJncyk=",highlighted:"trainer.push_to_hub(**kwargs)",wrap:!1}}),Ts=new Z({props:{title:"Поделиться моделью",local:"поделиться-моделью",headingTag:"h2"}}),Us=new w({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBcGlwZSUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMmF1ZGlvLWNsYXNzaWZpY2F0aW9uJTIyJTJDJTIwbW9kZWwlM0QlMjJzYW5jaGl0LWdhbmRoaSUyRmRpc3RpbGh1YmVydC1maW5ldHVuZWQtZ3R6YW4lMjIlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

pipe = pipeline(
    <span class="hljs-string">&quot;audio-classification&quot;</span>, model=<span class="hljs-string">&quot;sanchit-gandhi/distilhubert-finetuned-gtzan&quot;</span>
)`,wrap:!1}}),us=new Z({props:{title:"Заключение",local:"заключение",headingTag:"h2"}}),cs=new Ba({props:{source:"https://github.com/huggingface/audio-transformers-course/blob/main/chapters/ru/chapter4/fine-tuning.mdx"}}),{c(){u=M("meta"),m=a(),c=M("p"),I=a(),y(_.$$.fragment),ds=a(),y(W.$$.fragment),fs=a(),k=M("p"),k.textContent=de,Is=a(),y(N.$$.fragment),hs=a(),x=M("p"),x.innerHTML=fe,gs=a(),y(B.$$.fragment),As=a(),Q=M("p"),Q.innerHTML=Ie,bs=a(),y(E.$$.fragment),$s=a(),y(h.$$.fragment),Zs=a(),v=M("p"),v.innerHTML=he,_s=a(),y(G.$$.fragment),Ws=a(),R=M("p"),R.innerHTML=ge,ks=a(),y(Y.$$.fragment),Ns=a(),z=M("p"),z.textContent=Ae,xs=a(),y(F.$$.fragment),Bs=a(),V=M("p"),V.innerHTML=be,Qs=a(),y(X.$$.fragment),Es=a(),H=M("p"),H.innerHTML=$e,vs=a(),y(D.$$.fragment),Gs=a(),S=M("p"),S.innerHTML=Ze,Rs=a(),y(q.$$.fragment),Ys=a(),L=M("p"),L.innerHTML=_e,zs=a(),y(P.$$.fragment),Fs=a(),C=M("iframe"),Vs=a(),O=M("p"),O.textContent=ke,Xs=a(),y(K.$$.fragment),Hs=a(),ll=M("p"),ll.innerHTML=Ne,Ds=a(),d=M("iframe"),Ss=a(),y(sl.$$.fragment),qs=a(),y(tl.$$.fragment),Ls=a(),el=M("p"),el.innerHTML=Be,Ps=a(),y(al.$$.fragment),Os=a(),nl=M("p"),nl.textContent=Qe,Ks=a(),y(Ml.$$.fragment),lt=a(),pl=M("p"),pl.innerHTML=Ee,st=a(),y(il.$$.fragment),tt=a(),yl=M("p"),yl.innerHTML=ve,et=a(),y(Jl.$$.fragment),at=a(),rl=M("p"),rl.textContent=Ge,nt=a(),y(Tl.$$.fragment),Mt=a(),jl=M("p"),jl.innerHTML=Re,pt=a(),y(Ul.$$.fragment),it=a(),ul=M("p"),ul.textContent=Ye,yt=a(),wl=M("p"),wl.textContent=ze,Jt=a(),ml=M("p"),ml.textContent=Fe,rt=a(),cl=M("p"),cl.textContent=Ve,Tt=a(),ol=M("p"),ol.innerHTML=Xe,jt=a(),Cl=M("p"),Cl.textContent=He,Ut=a(),y(dl.$$.fragment),ut=a(),fl=M("p"),fl.innerHTML=De,wt=a(),y(Il.$$.fragment),mt=a(),hl=M("p"),hl.textContent=Se,ct=a(),y(gl.$$.fragment),ot=a(),Al=M("p"),Al.innerHTML=qe,Ct=a(),y(bl.$$.fragment),dt=a(),$l=M("p"),$l.innerHTML=Le,ft=a(),Zl=M("p"),Zl.textContent=Pe,It=a(),y(g.$$.fragment),ht=a(),_l=M("p"),_l.innerHTML=Oe,gt=a(),y(Wl.$$.fragment),At=a(),kl=M("p"),kl.innerHTML=Ke,bt=a(),y(Nl.$$.fragment),$t=a(),xl=M("p"),xl.innerHTML=la,Zt=a(),y(Bl.$$.fragment),_t=a(),y(A.$$.fragment),Wt=a(),Ql=M("p"),Ql.innerHTML=sa,kt=a(),y(El.$$.fragment),Nt=a(),vl=M("p"),vl.innerHTML=ta,xt=a(),y(Gl.$$.fragment),Bt=a(),y(Rl.$$.fragment),Qt=a(),Yl=M("p"),Yl.textContent=ea,Et=a(),y(zl.$$.fragment),vt=a(),Fl=M("p"),Fl.innerHTML=aa,Gt=a(),y(Vl.$$.fragment),Rt=a(),Xl=M("p"),Xl.innerHTML=na,Yt=a(),Hl=M("ul"),Hl.innerHTML=Ma,zt=a(),Dl=M("p"),Dl.innerHTML=pa,Ft=a(),y(Sl.$$.fragment),Vt=a(),ql=M("p"),ql.innerHTML=ia,Xt=a(),y(Ll.$$.fragment),Ht=a(),Pl=M("p"),Pl.textContent=ya,Dt=a(),y(Ol.$$.fragment),St=a(),y(b.$$.fragment),qt=a(),Kl=M("p"),Kl.textContent=Ja,Lt=a(),y(ls.$$.fragment),Pt=a(),ss=M("p"),ss.innerHTML=ra,Ot=a(),y(ts.$$.fragment),Kt=a(),y($.$$.fragment),le=a(),es=M("p"),es.innerHTML=Ta,se=a(),y(as.$$.fragment),te=a(),ns=M("p"),ns.innerHTML=ja,ee=a(),Ms=M("p"),Ms.innerHTML=Ua,ae=a(),ps=M("p"),ps.textContent=ua,ne=a(),y(is.$$.fragment),Me=a(),ys=M("p"),ys.innerHTML=wa,pe=a(),y(Js.$$.fragment),ie=a(),rs=M("p"),rs.innerHTML=ma,ye=a(),y(Ts.$$.fragment),Je=a(),js=M("p"),js.innerHTML=ca,re=a(),y(Us.$$.fragment),Te=a(),y(us.$$.fragment),je=a(),ws=M("p"),ws.innerHTML=oa,Ue=a(),ms=M("p"),ms.textContent=Ca,ue=a(),y(cs.$$.fragment),we=a(),os=M("p"),this.h()},l(l){const s=ka("svelte-u9bgzb",document.head);u=p(s,"META",{name:!0,content:!0}),s.forEach(t),m=n(l),c=p(l,"P",{}),ce(c).forEach(t),I=n(l),J(_.$$.fragment,l),ds=n(l),J(W.$$.fragment,l),fs=n(l),k=p(l,"P",{"data-svelte-h":!0}),i(k)!=="svelte-1wn76oa"&&(k.textContent=de),Is=n(l),J(N.$$.fragment,l),hs=n(l),x=p(l,"P",{"data-svelte-h":!0}),i(x)!=="svelte-1o2x5ik"&&(x.innerHTML=fe),gs=n(l),J(B.$$.fragment,l),As=n(l),Q=p(l,"P",{"data-svelte-h":!0}),i(Q)!=="svelte-1mvdyro"&&(Q.innerHTML=Ie),bs=n(l),J(E.$$.fragment,l),$s=n(l),J(h.$$.fragment,l),Zs=n(l),v=p(l,"P",{"data-svelte-h":!0}),i(v)!=="svelte-1pvazgx"&&(v.innerHTML=he),_s=n(l),J(G.$$.fragment,l),Ws=n(l),R=p(l,"P",{"data-svelte-h":!0}),i(R)!=="svelte-1mvdyro"&&(R.innerHTML=ge),ks=n(l),J(Y.$$.fragment,l),Ns=n(l),z=p(l,"P",{"data-svelte-h":!0}),i(z)!=="svelte-lucyoo"&&(z.textContent=Ae),xs=n(l),J(F.$$.fragment,l),Bs=n(l),V=p(l,"P",{"data-svelte-h":!0}),i(V)!=="svelte-1mvdyro"&&(V.innerHTML=be),Qs=n(l),J(X.$$.fragment,l),Es=n(l),H=p(l,"P",{"data-svelte-h":!0}),i(H)!=="svelte-1x2mzu"&&(H.innerHTML=$e),vs=n(l),J(D.$$.fragment,l),Gs=n(l),S=p(l,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1mvdyro"&&(S.innerHTML=Ze),Rs=n(l),J(q.$$.fragment,l),Ys=n(l),L=p(l,"P",{"data-svelte-h":!0}),i(L)!=="svelte-vze5ek"&&(L.innerHTML=_e),zs=n(l),J(P.$$.fragment,l),Fs=n(l),C=p(l,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),ce(C).forEach(t),Vs=n(l),O=p(l,"P",{"data-svelte-h":!0}),i(O)!=="svelte-1yru15l"&&(O.textContent=ke),Xs=n(l),J(K.$$.fragment,l),Hs=n(l),ll=p(l,"P",{"data-svelte-h":!0}),i(ll)!=="svelte-1a2uy54"&&(ll.innerHTML=Ne),Ds=n(l),d=p(l,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),ce(d).forEach(t),Ss=n(l),J(sl.$$.fragment,l),qs=n(l),J(tl.$$.fragment,l),Ls=n(l),el=p(l,"P",{"data-svelte-h":!0}),i(el)!=="svelte-o69lfv"&&(el.innerHTML=Be),Ps=n(l),J(al.$$.fragment,l),Os=n(l),nl=p(l,"P",{"data-svelte-h":!0}),i(nl)!=="svelte-1nerkzy"&&(nl.textContent=Qe),Ks=n(l),J(Ml.$$.fragment,l),lt=n(l),pl=p(l,"P",{"data-svelte-h":!0}),i(pl)!=="svelte-1mvdyro"&&(pl.innerHTML=Ee),st=n(l),J(il.$$.fragment,l),tt=n(l),yl=p(l,"P",{"data-svelte-h":!0}),i(yl)!=="svelte-144v3gc"&&(yl.innerHTML=ve),et=n(l),J(Jl.$$.fragment,l),at=n(l),rl=p(l,"P",{"data-svelte-h":!0}),i(rl)!=="svelte-ild5sp"&&(rl.textContent=Ge),nt=n(l),J(Tl.$$.fragment,l),Mt=n(l),jl=p(l,"P",{"data-svelte-h":!0}),i(jl)!=="svelte-1mvdyro"&&(jl.innerHTML=Re),pt=n(l),J(Ul.$$.fragment,l),it=n(l),ul=p(l,"P",{"data-svelte-h":!0}),i(ul)!=="svelte-1espqj5"&&(ul.textContent=Ye),yt=n(l),wl=p(l,"P",{"data-svelte-h":!0}),i(wl)!=="svelte-1533kvk"&&(wl.textContent=ze),Jt=n(l),ml=p(l,"P",{"data-svelte-h":!0}),i(ml)!=="svelte-1nkdnts"&&(ml.textContent=Fe),rt=n(l),cl=p(l,"P",{"data-svelte-h":!0}),i(cl)!=="svelte-1ilvnli"&&(cl.textContent=Ve),Tt=n(l),ol=p(l,"P",{"data-svelte-h":!0}),i(ol)!=="svelte-bjrgv"&&(ol.innerHTML=Xe),jt=n(l),Cl=p(l,"P",{"data-svelte-h":!0}),i(Cl)!=="svelte-1cang2c"&&(Cl.textContent=He),Ut=n(l),J(dl.$$.fragment,l),ut=n(l),fl=p(l,"P",{"data-svelte-h":!0}),i(fl)!=="svelte-1mvdyro"&&(fl.innerHTML=De),wt=n(l),J(Il.$$.fragment,l),mt=n(l),hl=p(l,"P",{"data-svelte-h":!0}),i(hl)!=="svelte-bdmd7b"&&(hl.textContent=Se),ct=n(l),J(gl.$$.fragment,l),ot=n(l),Al=p(l,"P",{"data-svelte-h":!0}),i(Al)!=="svelte-1mvdyro"&&(Al.innerHTML=qe),Ct=n(l),J(bl.$$.fragment,l),dt=n(l),$l=p(l,"P",{"data-svelte-h":!0}),i($l)!=="svelte-dtx73j"&&($l.innerHTML=Le),ft=n(l),Zl=p(l,"P",{"data-svelte-h":!0}),i(Zl)!=="svelte-u78uom"&&(Zl.textContent=Pe),It=n(l),J(g.$$.fragment,l),ht=n(l),_l=p(l,"P",{"data-svelte-h":!0}),i(_l)!=="svelte-jgv1ot"&&(_l.innerHTML=Oe),gt=n(l),J(Wl.$$.fragment,l),At=n(l),kl=p(l,"P",{"data-svelte-h":!0}),i(kl)!=="svelte-1osq08i"&&(kl.innerHTML=Ke),bt=n(l),J(Nl.$$.fragment,l),$t=n(l),xl=p(l,"P",{"data-svelte-h":!0}),i(xl)!=="svelte-1mvdyro"&&(xl.innerHTML=la),Zt=n(l),J(Bl.$$.fragment,l),_t=n(l),J(A.$$.fragment,l),Wt=n(l),Ql=p(l,"P",{"data-svelte-h":!0}),i(Ql)!=="svelte-u8vr1o"&&(Ql.innerHTML=sa),kt=n(l),J(El.$$.fragment,l),Nt=n(l),vl=p(l,"P",{"data-svelte-h":!0}),i(vl)!=="svelte-kjj8ln"&&(vl.innerHTML=ta),xt=n(l),J(Gl.$$.fragment,l),Bt=n(l),J(Rl.$$.fragment,l),Qt=n(l),Yl=p(l,"P",{"data-svelte-h":!0}),i(Yl)!=="svelte-1cjirp7"&&(Yl.textContent=ea),Et=n(l),J(zl.$$.fragment,l),vt=n(l),Fl=p(l,"P",{"data-svelte-h":!0}),i(Fl)!=="svelte-1pzfvz0"&&(Fl.innerHTML=aa),Gt=n(l),J(Vl.$$.fragment,l),Rt=n(l),Xl=p(l,"P",{"data-svelte-h":!0}),i(Xl)!=="svelte-1nmut3e"&&(Xl.innerHTML=na),Yt=n(l),Hl=p(l,"UL",{"data-svelte-h":!0}),i(Hl)!=="svelte-uneh2j"&&(Hl.innerHTML=Ma),zt=n(l),Dl=p(l,"P",{"data-svelte-h":!0}),i(Dl)!=="svelte-1qq1ju9"&&(Dl.innerHTML=pa),Ft=n(l),J(Sl.$$.fragment,l),Vt=n(l),ql=p(l,"P",{"data-svelte-h":!0}),i(ql)!=="svelte-1mvdyro"&&(ql.innerHTML=ia),Xt=n(l),J(Ll.$$.fragment,l),Ht=n(l),Pl=p(l,"P",{"data-svelte-h":!0}),i(Pl)!=="svelte-1a45kub"&&(Pl.textContent=ya),Dt=n(l),J(Ol.$$.fragment,l),St=n(l),J(b.$$.fragment,l),qt=n(l),Kl=p(l,"P",{"data-svelte-h":!0}),i(Kl)!=="svelte-14zk2p8"&&(Kl.textContent=Ja),Lt=n(l),J(ls.$$.fragment,l),Pt=n(l),ss=p(l,"P",{"data-svelte-h":!0}),i(ss)!=="svelte-1e9dprm"&&(ss.innerHTML=ra),Ot=n(l),J(ts.$$.fragment,l),Kt=n(l),J($.$$.fragment,l),le=n(l),es=p(l,"P",{"data-svelte-h":!0}),i(es)!=="svelte-1mvdyro"&&(es.innerHTML=Ta),se=n(l),J(as.$$.fragment,l),te=n(l),ns=p(l,"P",{"data-svelte-h":!0}),i(ns)!=="svelte-cpfaw0"&&(ns.innerHTML=ja),ee=n(l),Ms=p(l,"P",{"data-svelte-h":!0}),i(Ms)!=="svelte-1rsw2y7"&&(Ms.innerHTML=Ua),ae=n(l),ps=p(l,"P",{"data-svelte-h":!0}),i(ps)!=="svelte-1c0oob5"&&(ps.textContent=ua),ne=n(l),J(is.$$.fragment,l),Me=n(l),ys=p(l,"P",{"data-svelte-h":!0}),i(ys)!=="svelte-8rdxg2"&&(ys.innerHTML=wa),pe=n(l),J(Js.$$.fragment,l),ie=n(l),rs=p(l,"P",{"data-svelte-h":!0}),i(rs)!=="svelte-d6ovka"&&(rs.innerHTML=ma),ye=n(l),J(Ts.$$.fragment,l),Je=n(l),js=p(l,"P",{"data-svelte-h":!0}),i(js)!=="svelte-1no1mlt"&&(js.innerHTML=ca),re=n(l),J(Us.$$.fragment,l),Te=n(l),J(us.$$.fragment,l),je=n(l),ws=p(l,"P",{"data-svelte-h":!0}),i(ws)!=="svelte-h7sf2d"&&(ws.innerHTML=oa),Ue=n(l),ms=p(l,"P",{"data-svelte-h":!0}),i(ms)!=="svelte-17a7zxh"&&(ms.textContent=Ca),ue=n(l),J(cs.$$.fragment,l),we=n(l),os=p(l,"P",{}),ce(os).forEach(t),this.h()},h(){o(u,"name","hf:doc:metadata"),o(u,"content",za),Aa(C.src,We="https://course-demos-gtzan-samples.hf.space")||o(C,"src",We),o(C,"frameborder","0"),o(C,"height","450"),o(C,"title","Gradio app"),o(C,"class","container p-0 flex-grow space-iframe"),o(C,"allow","accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking"),o(C,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"),Aa(d.src,xe="https://autoevaluate-leaderboards.hf.space")||o(d,"src",xe),o(d,"frameborder","0"),o(d,"height","450"),o(d,"title","Gradio app"),o(d,"class","container p-0 flex-grow space-iframe"),o(d,"allow","accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking"),o(d,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads")},m(l,s){Na(document.head,u),e(l,m,s),e(l,c,s),e(l,I,s),r(_,l,s),e(l,ds,s),r(W,l,s),e(l,fs,s),e(l,k,s),e(l,Is,s),r(N,l,s),e(l,hs,s),e(l,x,s),e(l,gs,s),r(B,l,s),e(l,As,s),e(l,Q,s),e(l,bs,s),r(E,l,s),e(l,$s,s),r(h,l,s),e(l,Zs,s),e(l,v,s),e(l,_s,s),r(G,l,s),e(l,Ws,s),e(l,R,s),e(l,ks,s),r(Y,l,s),e(l,Ns,s),e(l,z,s),e(l,xs,s),r(F,l,s),e(l,Bs,s),e(l,V,s),e(l,Qs,s),r(X,l,s),e(l,Es,s),e(l,H,s),e(l,vs,s),r(D,l,s),e(l,Gs,s),e(l,S,s),e(l,Rs,s),r(q,l,s),e(l,Ys,s),e(l,L,s),e(l,zs,s),r(P,l,s),e(l,Fs,s),e(l,C,s),e(l,Vs,s),e(l,O,s),e(l,Xs,s),r(K,l,s),e(l,Hs,s),e(l,ll,s),e(l,Ds,s),e(l,d,s),e(l,Ss,s),r(sl,l,s),e(l,qs,s),r(tl,l,s),e(l,Ls,s),e(l,el,s),e(l,Ps,s),r(al,l,s),e(l,Os,s),e(l,nl,s),e(l,Ks,s),r(Ml,l,s),e(l,lt,s),e(l,pl,s),e(l,st,s),r(il,l,s),e(l,tt,s),e(l,yl,s),e(l,et,s),r(Jl,l,s),e(l,at,s),e(l,rl,s),e(l,nt,s),r(Tl,l,s),e(l,Mt,s),e(l,jl,s),e(l,pt,s),r(Ul,l,s),e(l,it,s),e(l,ul,s),e(l,yt,s),e(l,wl,s),e(l,Jt,s),e(l,ml,s),e(l,rt,s),e(l,cl,s),e(l,Tt,s),e(l,ol,s),e(l,jt,s),e(l,Cl,s),e(l,Ut,s),r(dl,l,s),e(l,ut,s),e(l,fl,s),e(l,wt,s),r(Il,l,s),e(l,mt,s),e(l,hl,s),e(l,ct,s),r(gl,l,s),e(l,ot,s),e(l,Al,s),e(l,Ct,s),r(bl,l,s),e(l,dt,s),e(l,$l,s),e(l,ft,s),e(l,Zl,s),e(l,It,s),r(g,l,s),e(l,ht,s),e(l,_l,s),e(l,gt,s),r(Wl,l,s),e(l,At,s),e(l,kl,s),e(l,bt,s),r(Nl,l,s),e(l,$t,s),e(l,xl,s),e(l,Zt,s),r(Bl,l,s),e(l,_t,s),r(A,l,s),e(l,Wt,s),e(l,Ql,s),e(l,kt,s),r(El,l,s),e(l,Nt,s),e(l,vl,s),e(l,xt,s),r(Gl,l,s),e(l,Bt,s),r(Rl,l,s),e(l,Qt,s),e(l,Yl,s),e(l,Et,s),r(zl,l,s),e(l,vt,s),e(l,Fl,s),e(l,Gt,s),r(Vl,l,s),e(l,Rt,s),e(l,Xl,s),e(l,Yt,s),e(l,Hl,s),e(l,zt,s),e(l,Dl,s),e(l,Ft,s),r(Sl,l,s),e(l,Vt,s),e(l,ql,s),e(l,Xt,s),r(Ll,l,s),e(l,Ht,s),e(l,Pl,s),e(l,Dt,s),r(Ol,l,s),e(l,St,s),r(b,l,s),e(l,qt,s),e(l,Kl,s),e(l,Lt,s),r(ls,l,s),e(l,Pt,s),e(l,ss,s),e(l,Ot,s),r(ts,l,s),e(l,Kt,s),r($,l,s),e(l,le,s),e(l,es,s),e(l,se,s),r(as,l,s),e(l,te,s),e(l,ns,s),e(l,ee,s),e(l,Ms,s),e(l,ae,s),e(l,ps,s),e(l,ne,s),r(is,l,s),e(l,Me,s),e(l,ys,s),e(l,pe,s),r(Js,l,s),e(l,ie,s),e(l,rs,s),e(l,ye,s),r(Ts,l,s),e(l,Je,s),e(l,js,s),e(l,re,s),r(Us,l,s),e(l,Te,s),r(us,l,s),e(l,je,s),e(l,ws,s),e(l,Ue,s),e(l,ms,s),e(l,ue,s),r(cs,l,s),e(l,we,s),e(l,os,s),me=!0},p(l,[s]){const da={};s&2&&(da.$$scope={dirty:s,ctx:l}),h.$set(da);const fa={};s&2&&(fa.$$scope={dirty:s,ctx:l}),g.$set(fa);const Ia={};s&2&&(Ia.$$scope={dirty:s,ctx:l}),A.$set(Ia);const ha={};s&2&&(ha.$$scope={dirty:s,ctx:l}),b.$set(ha);const ga={};s&2&&(ga.$$scope={dirty:s,ctx:l}),$.$set(ga)},i(l){me||(T(_.$$.fragment,l),T(W.$$.fragment,l),T(N.$$.fragment,l),T(B.$$.fragment,l),T(E.$$.fragment,l),T(h.$$.fragment,l),T(G.$$.fragment,l),T(Y.$$.fragment,l),T(F.$$.fragment,l),T(X.$$.fragment,l),T(D.$$.fragment,l),T(q.$$.fragment,l),T(P.$$.fragment,l),T(K.$$.fragment,l),T(sl.$$.fragment,l),T(tl.$$.fragment,l),T(al.$$.fragment,l),T(Ml.$$.fragment,l),T(il.$$.fragment,l),T(Jl.$$.fragment,l),T(Tl.$$.fragment,l),T(Ul.$$.fragment,l),T(dl.$$.fragment,l),T(Il.$$.fragment,l),T(gl.$$.fragment,l),T(bl.$$.fragment,l),T(g.$$.fragment,l),T(Wl.$$.fragment,l),T(Nl.$$.fragment,l),T(Bl.$$.fragment,l),T(A.$$.fragment,l),T(El.$$.fragment,l),T(Gl.$$.fragment,l),T(Rl.$$.fragment,l),T(zl.$$.fragment,l),T(Vl.$$.fragment,l),T(Sl.$$.fragment,l),T(Ll.$$.fragment,l),T(Ol.$$.fragment,l),T(b.$$.fragment,l),T(ls.$$.fragment,l),T(ts.$$.fragment,l),T($.$$.fragment,l),T(as.$$.fragment,l),T(is.$$.fragment,l),T(Js.$$.fragment,l),T(Ts.$$.fragment,l),T(Us.$$.fragment,l),T(us.$$.fragment,l),T(cs.$$.fragment,l),me=!0)},o(l){j(_.$$.fragment,l),j(W.$$.fragment,l),j(N.$$.fragment,l),j(B.$$.fragment,l),j(E.$$.fragment,l),j(h.$$.fragment,l),j(G.$$.fragment,l),j(Y.$$.fragment,l),j(F.$$.fragment,l),j(X.$$.fragment,l),j(D.$$.fragment,l),j(q.$$.fragment,l),j(P.$$.fragment,l),j(K.$$.fragment,l),j(sl.$$.fragment,l),j(tl.$$.fragment,l),j(al.$$.fragment,l),j(Ml.$$.fragment,l),j(il.$$.fragment,l),j(Jl.$$.fragment,l),j(Tl.$$.fragment,l),j(Ul.$$.fragment,l),j(dl.$$.fragment,l),j(Il.$$.fragment,l),j(gl.$$.fragment,l),j(bl.$$.fragment,l),j(g.$$.fragment,l),j(Wl.$$.fragment,l),j(Nl.$$.fragment,l),j(Bl.$$.fragment,l),j(A.$$.fragment,l),j(El.$$.fragment,l),j(Gl.$$.fragment,l),j(Rl.$$.fragment,l),j(zl.$$.fragment,l),j(Vl.$$.fragment,l),j(Sl.$$.fragment,l),j(Ll.$$.fragment,l),j(Ol.$$.fragment,l),j(b.$$.fragment,l),j(ls.$$.fragment,l),j(ts.$$.fragment,l),j($.$$.fragment,l),j(as.$$.fragment,l),j(is.$$.fragment,l),j(Js.$$.fragment,l),j(Ts.$$.fragment,l),j(Us.$$.fragment,l),j(us.$$.fragment,l),j(cs.$$.fragment,l),me=!1},d(l){l&&(t(m),t(c),t(I),t(ds),t(fs),t(k),t(Is),t(hs),t(x),t(gs),t(As),t(Q),t(bs),t($s),t(Zs),t(v),t(_s),t(Ws),t(R),t(ks),t(Ns),t(z),t(xs),t(Bs),t(V),t(Qs),t(Es),t(H),t(vs),t(Gs),t(S),t(Rs),t(Ys),t(L),t(zs),t(Fs),t(C),t(Vs),t(O),t(Xs),t(Hs),t(ll),t(Ds),t(d),t(Ss),t(qs),t(Ls),t(el),t(Ps),t(Os),t(nl),t(Ks),t(lt),t(pl),t(st),t(tt),t(yl),t(et),t(at),t(rl),t(nt),t(Mt),t(jl),t(pt),t(it),t(ul),t(yt),t(wl),t(Jt),t(ml),t(rt),t(cl),t(Tt),t(ol),t(jt),t(Cl),t(Ut),t(ut),t(fl),t(wt),t(mt),t(hl),t(ct),t(ot),t(Al),t(Ct),t(dt),t($l),t(ft),t(Zl),t(It),t(ht),t(_l),t(gt),t(At),t(kl),t(bt),t($t),t(xl),t(Zt),t(_t),t(Wt),t(Ql),t(kt),t(Nt),t(vl),t(xt),t(Bt),t(Qt),t(Yl),t(Et),t(vt),t(Fl),t(Gt),t(Rt),t(Xl),t(Yt),t(Hl),t(zt),t(Dl),t(Ft),t(Vt),t(ql),t(Xt),t(Ht),t(Pl),t(Dt),t(St),t(qt),t(Kl),t(Lt),t(Pt),t(ss),t(Ot),t(Kt),t(le),t(es),t(se),t(te),t(ns),t(ee),t(Ms),t(ae),t(ps),t(ne),t(Me),t(ys),t(pe),t(ie),t(rs),t(ye),t(Je),t(js),t(re),t(Te),t(je),t(ws),t(Ue),t(ms),t(ue),t(we),t(os)),t(u),U(_,l),U(W,l),U(N,l),U(B,l),U(E,l),U(h,l),U(G,l),U(Y,l),U(F,l),U(X,l),U(D,l),U(q,l),U(P,l),U(K,l),U(sl,l),U(tl,l),U(al,l),U(Ml,l),U(il,l),U(Jl,l),U(Tl,l),U(Ul,l),U(dl,l),U(Il,l),U(gl,l),U(bl,l),U(g,l),U(Wl,l),U(Nl,l),U(Bl,l),U(A,l),U(El,l),U(Gl,l),U(Rl,l),U(zl,l),U(Vl,l),U(Sl,l),U(Ll,l),U(Ol,l),U(b,l),U(ls,l),U(ts,l),U($,l),U(as,l),U(is,l),U(Js,l),U(Ts,l),U(Us,l),U(us,l),U(cs,l)}}}const za='{"title":"Дообучение модели для классификации музыки","local":"дообучение-модели-для-классификации-музыки","sections":[{"title":"Набор данных","local":"набор-данных","sections":[],"depth":2},{"title":"Выбор предварительно обученной модели для классификации звука","local":"выбор-предварительно-обученной-модели-для-классификации-звука","sections":[],"depth":2},{"title":"От аудио к машинному обучению","local":"от-аудио-к-машинному-обучению","sections":[],"depth":2},{"title":"Предварительная обработка данных","local":"предварительная-обработка-данных","sections":[],"depth":2},{"title":"Дообучение модели","local":"дообучение-модели","sections":[],"depth":2},{"title":"Поделиться моделью","local":"поделиться-моделью","sections":[],"depth":2},{"title":"Заключение","local":"заключение","sections":[],"depth":2}],"depth":1}';function Fa(f){return Za(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class qa extends _a{constructor(u){super(),Wa(this,u,Fa,Ya,$a,{})}}export{qa as component};
