Dopisano fragmety kodu do opisu skryptu generate

This commit is contained in:
CezaryPukownik 2020-06-16 15:01:29 +02:00
parent bbad6263b5
commit 1d4308fde8
7 changed files with 127 additions and 55 deletions

View File

@ -85,33 +85,36 @@
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {3.1\relax .\enspace }Koncepcja}{35}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.2\relax .\enspace }Wstępne przygotowanie danych do treningu}{36}\protected@file@percent }
\newlabel{section:midi}{{3.2}{36}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1\relax .\enspace }Muzyczne ,,słowo''}{36}\protected@file@percent }
\newlabel{section:midi_words}{{3.2.1}{36}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2\relax .\enspace }Konwersja MIDI na sekwencje słów muzycznych}{36}\protected@file@percent }
\citation{survay}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3\relax .\enspace }Inne aspekty przygotowania danych}{39}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4\relax .\enspace }Podział danych na dane wejściowe i wyjściowe}{40}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5\relax .\enspace }Inne aspekty przygotowania zbioru uczącego}{42}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.3\relax .\enspace }Definicja modelu}{44}\protected@file@percent }
\newlabel{section:model}{{3.3}{44}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1\relax .\enspace }Model w trybie uczenia}{44}\protected@file@percent }
\newlabel{fig:training-model}{{3.1}{45}}
\newlabel{fig:training-model}{{3.1}{46}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2\relax .\enspace }Model w trybie wnioskowania}{46}\protected@file@percent }
\newlabel{section:inference-model}{{3.3.2}{46}}
\newlabel{fig:inference-decoder}{{3.2}{47}}
\citation{onehot}
\@writefile{toc}{\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{48}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{48}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{49}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{49}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.2\relax .\enspace }Słownik}{49}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.3\relax .\enspace }Elementy specjalne}{50}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.4\relax .\enspace }Zakodowanie sekwencji}{50}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.5\relax .\enspace }Ekperyment}{51}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{51}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{51}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{52}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{52}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.3\relax .\enspace }Wydobycie danych}{52}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.6\relax .\enspace }Trenowanie modelu}{53}\protected@file@percent }
\newlabel{fig:losses}{{3.3}{54}}
\@writefile{toc}{\contentsline {section}{\numberline {3.7\relax .\enspace }Generowanie muzyki przy pomocy wytrenowanych modeli}{54}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{55}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{55}\protected@file@percent }
\newlabel{fig:losses}{{3.3}{55}}
\@writefile{toc}{\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{56}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{56}\protected@file@percent }
\@writefile{toc}{\contentsline {chapter}{Rozdzia\PlPrIeC {\l }\ 4\relax .\enspace Podsumowanie}{57}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}

View File

@ -1,12 +1,12 @@
# Fdb version 3
["makeindex document.idx"] 1592309706 "document.idx" "document.ind" "document" 1592309893
"document.idx" 1592309891 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex"
["makeindex document.idx"] 1592309706 "document.idx" "document.ind" "document" 1592311737
"document.idx" 1592311706 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex"
(generated)
"document.ind"
"document.ilg"
["pdflatex"] 1592309891 "/home/altarin/praca-magisterska/docs/document.tex" "/home/altarin/praca-magisterska/docs/document.pdf" "document" 1592309893
"/home/altarin/praca-magisterska/docs/document.aux" 1592309893 10854 acd6f735e25a417b7d2be7f1654ba457 ""
"/home/altarin/praca-magisterska/docs/document.tex" 1592309890 83152 0fbbf82631bd7cd249f37c9088da1d01 ""
["pdflatex"] 1592311706 "/home/altarin/praca-magisterska/docs/document.tex" "/home/altarin/praca-magisterska/docs/document.pdf" "document" 1592311737
"/home/altarin/praca-magisterska/docs/document.aux" 1592311708 10968 b9ce593ce2b0d41f0995bf3ec1a23fef ""
"/home/altarin/praca-magisterska/docs/document.tex" 1592311736 85266 80bb2437b200613429831b310deb8a96 ""
"/usr/share/texmf-dist/fonts/enc/dvips/pl/plit.enc" 1572595918 1946 62ba825cda1ff16dbaa60d53ac60525a ""
"/usr/share/texmf-dist/fonts/enc/dvips/pl/plme.enc" 1572595918 3126 59f33ff3e396436ebc36f4e7b444d5c4 ""
"/usr/share/texmf-dist/fonts/enc/dvips/pl/plmi.enc" 1572595918 2005 f094775651a1386335c158fb632529f1 ""
@ -198,10 +198,10 @@
"/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1589405448 334148 1b9d30ff8c861d6082e3e9bfccd8d7eb ""
"/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1589405429 8044939 b23304717ecc5ce8d46ad93c0d4cb929 ""
"chapter-style.sty" 1585406727 376 a4a2fb4e6d39af51a43bb1e06c2593ad ""
"document.aux" 1592309893 10854 acd6f735e25a417b7d2be7f1654ba457 "pdflatex"
"document.aux" 1592311708 10968 b9ce593ce2b0d41f0995bf3ec1a23fef "pdflatex"
"document.ind" 1592309706 0 d41d8cd98f00b204e9800998ecf8427e "makeindex document.idx"
"document.tex" 1592309890 83152 0fbbf82631bd7cd249f37c9088da1d01 ""
"document.toc" 1592309893 4377 8535452eb813c50233826dd58cc1ab49 "pdflatex"
"document.tex" 1592311736 85266 80bb2437b200613429831b310deb8a96 ""
"document.toc" 1592311708 4377 79773f5f3b957c073dc21afc2e647be2 "pdflatex"
"images/autoencoder.png" 1590399556 23857 07547cd5bcc55280ad497e04dca51a4f ""
"images/gradient_descent_1_long.png" 1590334914 10075 03e26f48b0713f31b10c11831a32dc53 ""
"images/gradient_descent_2_long.png" 1590334941 8705 b70a4b02180426a4a74386cd3b33d85e ""
@ -222,10 +222,10 @@
"images/waveform_axis.png" 1592238099 15586 787fa8332b5d81033490d9d317c21a25 ""
"pythonhighlight.sty" 1591814444 4822 44a39a68d852c9742af161f7166b2a03 ""
(generated)
"document.log"
"document.pdf"
"document.toc"
"/home/altarin/praca-magisterska/docs/document.log"
"document.aux"
"document.toc"
"/home/altarin/praca-magisterska/docs/document.pdf"
"document.log"
"document.idx"
"/home/altarin/praca-magisterska/docs/document.pdf"

View File

@ -1,4 +1,4 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Arch Linux) (preloaded format=pdflatex 2020.5.13) 16 JUN 2020 14:18
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Arch Linux) (preloaded format=pdflatex 2020.5.13) 16 JUN 2020 14:48
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
@ -686,71 +686,93 @@ Rozdzia\PlPrIeC {\l } 3.
[35] [36]
LaTeX Font Warning: Font shape `OT4/cmtt/bx/n' in size <10> not available
(Font) Font shape `OT4/cmtt/m/n' tried instead on input line 758.
(Font) Font shape `OT4/cmtt/m/n' tried instead on input line 760.
[37] [38] [39] [40] [41] [42] [43] [44]
[37]
Underfull \vbox (badness 7081) has occurred while \output is active []
[38] [39] [40] [41]
Underfull \vbox (badness 2080) has occurred while \output is active []
[42] [43] [44]
<images/training-model-graph.png, id=195, 968.61874pt x 406.51875pt>
File: images/training-model-graph.png Graphic file (type png)
<use images/training-model-graph.png>
Package pdftex.def Info: images/training-model-graph.png used on input line 1094.
Package pdftex.def Info: images/training-model-graph.png used on input line 1097.
(pdftex.def) Requested size: 398.33858pt x 167.1762pt.
[45 </home/altarin/praca-magisterska/docs/images/training-model-graph.png>]
Overfull \hbox (2.09326pt too wide) in paragraph at lines 1113--1114
[45]
Overfull \hbox (2.09326pt too wide) in paragraph at lines 1116--1117
[][][][][]\OT4/cmr/m/n/12 , za-wie-ra-j¡-ce se-kwen-cje ele-men-tów wyj-±cio-wych, któ-
[]
[46]
[46 </home/altarin/praca-magisterska/docs/images/training-model-graph.png>]
<images/inference-decoder-graph.png, id=203, 1179.40625pt x 296.10625pt>
File: images/inference-decoder-graph.png Graphic file (type png)
<use images/inference-decoder-graph.png>
Package pdftex.def Info: images/inference-decoder-graph.png used on input line 1148.
Package pdftex.def Info: images/inference-decoder-graph.png used on input line 1151.
(pdftex.def) Requested size: 398.33858pt x 100.0106pt.
[47 </home/altarin/praca-magisterska/docs/images/inference-decoder-graph.png>]
Overfull \hbox (11.16063pt too wide) in paragraph at lines 1192--1193
Overfull \hbox (11.16063pt too wide) in paragraph at lines 1195--1196
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[]
Overfull \hbox (4.86064pt too wide) in paragraph at lines 1195--1196
Overfull \hbox (4.86064pt too wide) in paragraph at lines 1198--1199
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[]
[48] [49] [50]
Overfull \hbox (42.66057pt too wide) in paragraph at lines 1321--1322
Underfull \vbox (badness 10000) has occurred while \output is active []
[48] [49] [50]
Overfull \hbox (42.66057pt too wide) in paragraph at lines 1324--1325
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[]
[51] [52]
<images/training_losses.png, id=225, 722.7pt x 722.7pt>
Underfull \vbox (badness 4713) has occurred while \output is active []
[51] [52] [53]
<images/training_losses.png, id=228, 722.7pt x 722.7pt>
File: images/training_losses.png Graphic file (type png)
<use images/training_losses.png>
Package pdftex.def Info: images/training_losses.png used on input line 1448.
Package pdftex.def Info: images/training_losses.png used on input line 1453.
(pdftex.def) Requested size: 398.33858pt x 398.33534pt.
[53]
Overfull \hbox (3.0656pt too wide) in paragraph at lines 1455--1456
Overfull \hbox (3.0656pt too wide) in paragraph at lines 1460--1461
[]\OT4/cmr/m/n/12 Gdy zde-fi-nio-wa-ne mo-de-le zo-sta-n¡ wy-tre-no-wa-ne mo-»e-my wy-ko-rzy-sta¢ skrypt
[]
[54 </home/altarin/praca-magisterska/docs/images/training_losses.png>] [55] [56
[54] [55 </home/altarin/praca-magisterska/docs/images/training_losses.png>]
Overfull \hbox (4.86064pt too wide) in paragraph at lines 1478--1479
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[]
]
Overfull \vbox (16.08192pt too high) detected at line 1475
Overfull \hbox (1.56473pt too wide) in paragraph at lines 1492--1494
[][][][][][][][]\OT4/cmr/m/n/12 , któ-re wspie-ra-j¡ for-mat se-kwen-cji sªów mu-zycz-nych omó-
[]
[56]
Overfull \vbox (16.08192pt too high) detected at line 1522
[]
Rozdzia\PlPrIeC {\l } 4.
[57] [58
[57
] [58
] (/home/altarin/praca-magisterska/docs/document.ind) [59] (/home/altarin/praca-magisterska/docs/document.aux) )
Here is how much of TeX's memory you used:
17011 strings out of 492167
313197 string characters out of 6131558
676476 words of memory out of 5000000
21017 multiletter control sequences out of 15000+600000
17040 strings out of 492167
313598 string characters out of 6131558
668511 words of memory out of 5000000
21046 multiletter control sequences out of 15000+600000
27095 words of font info for 80 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
60i,12n,54p,1575b,1929s stack positions out of 5000i,500n,10000p,200000b,80000s
60i,12n,54p,1575b,1969s stack positions out of 5000i,500n,10000p,200000b,80000s
{/usr/share/texmf-dist/fonts/enc/dvips/pl/plit.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/pltt.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plrm.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plms.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plmi.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plme.enc}{/usr/share/texmf-dist/fonts/enc/dvips/pl/plsc.enc}</usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plbsy10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plbx10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plbx12.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plbx8.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plcsc10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plex10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plmi12.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plmi6.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plmi8.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plmib10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plr10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plr12.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plr7.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plr8.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plsltt10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plsy10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plsy8.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plti10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/plti12.pfb></usr/share/texmf-dist/fonts/type1/public/pl/pltt10.pfb></usr/share/texmf-dist/fonts/type1/public/pl/pltt12.pfb>
Output written on /home/altarin/praca-magisterska/docs/document.pdf (59 pages, 805532 bytes).
Output written on /home/altarin/praca-magisterska/docs/document.pdf (59 pages, 809211 bytes).
PDF statistics:
332 PDF objects out of 1000 (max. 8388607)
212 compressed objects within 3 object streams

Binary file not shown.

Binary file not shown.

View File

@ -729,8 +729,10 @@ note_on channel=0 note=60 velocity=0 time=0
Kluczowe było zauważenie podobieństwa między językiem naturalnym oraz muzyką. Zarówno zdanie jak i partia muzyczna składa się z sekwencji elementów rozmieszczonych w czasie. Elementy te są zależne od długoterminowego kontekstu, oraz od tego jaki element był ustawiony wcześniej. Dla języka naturalnego są to słowa, dla muzyki są to nuty i akordy. Dodatkowo pomyślałem, że różne instrumenty można porównać do różnych języków świata. Wtedy aby stworzyć melodię, np. basu, tak aby pasowała pod partię gitary, należy ,,przetłumaczy'' język gitary na język basu. Do tłumaczeń języka naturalnego wykorzystuje się modele sequence-to-sequence, dlatego postanowiłem w modelu generowania muzyki wykorzystać właśnie tą architekturę. Dodatkowo modele sequence-to-sequence mają tę cechę, że liczba elementów sekwencji wejściowej może być inna niż liczba elementów sekwencji wyjściowej. Idealnie sprawdzi się w przypadku muzyki, ponieważ o długości trwania ścieżki muzycznej nie świadczy liczba nut tylko suma ich wartości.
\section{Wstępne przygotowanie danych do treningu}
\label{section:midi}
\subsection{Muzyczne ,,słowo''}
\label{section:midi_words}
Na potrzeby dostosowania danych muzycznych do koncepcji słów w zdaniu zakodowałem pojedyncze słowo muzyczne jako
@ -1031,6 +1033,7 @@ else:
Funkcja sprawdza liczbę pojedynczych nut i akordów w ścieżce oraz zagęszczenie nut w takcie. Jeśli jest więcej niż 90\% pojedynczych nut w ścieżce oraz jest średnio więcej nut w takcie niż dwie wtedy uznaję, że partia instrumentalna utworu jest melodią.
\section{Definicja modelu}
\label{section:model}
Wszystkie modele sieci neuonowych zastosowane w tej pracy, zostały napisane z wykorzystaniem środowiska Keras. Keras jest to środowisko wyższego poziomu, służące do tworzenia modelu głębokiego uczenia.
@ -1330,7 +1333,7 @@ Warto zwrócić uwagę, że przed opisaną transformacją sekwencje były różn
W tej części pokażę jak wykorzystać oprogramowanie, które stworzyłem aby wygenerować muzykę na przykładzie. Omówię cały proces, następnie zademonstruję wyniki.
\subsection{Oprogramowanie}
Stworzone przeze mnie oprogramowanie, składa się z 5 skryptów pythona.
Stworzone przeze mnie oprogramowanie, napisane w języku Python, składa się z 2 bibiotek oraz 3 skryptów.
\begin{itemize}
\item \pyth{midi_procesing.py} - zawiera funkcję potrzebne do pracy w plikami midi.
@ -1340,6 +1343,8 @@ Stworzone przeze mnie oprogramowanie, składa się z 5 skryptów pythona.
\item \pyth{generate.py} - wykorzystuje wytrenowane modele aby wygenerować ostatecznie plik midi.
\end{itemize}
Fragmenty bilbiotek \pyth{midi_procesing.py} i \pyth{model.py} zostały szczegółowo omówione w rozdziałach ~\ref{section:midi} i ~\ref{section:model}. Natomiast skrypty \pyth{extract.py}, \pyth{train.py} i \pyth{generate.py} zostały napisane aby ułatwić proces generowania oraz zapewniają powtarzalność i skalowalność prowadzonych ekperymentów.
\subsection{Zbiór danych}
W omawianym przykładzie wykorzystałem zbiór wybranych utworów midi zespołu The Offstring. Został on skompletowany ze źródeł dostępnych na stronie internetowej https://www.midiworld.com/. Składa się z 7 utworów.
@ -1455,7 +1460,7 @@ Na potrzeby badań trenowałem i generowałem klipy muzyczne dla epok 1, 10, 25,
Gdy zdefiniowane modele zostaną wytrenowane możemy wykorzystać skrypt \pyth{generate.py}, wtedy generująca sieć neuonowa zostanie zasilona losowym wekorem aby wygenerować partię. W tym przykładzie gitary a wygenerowana partia posłuży jako dane wejściowe na pozostałych modeli. Ostatecznie otrzymane sekwencje zostaną skompilowane do pliku MIDI. W tym momencie zostają wykorzystane informacje o programach dla każdego z intrmentów, a tempo utworu domyślnie ustawione jest na 120 BPM. Możemy również zdecydować, czy zasilenie dekodera modelu generującego odbędzie się za pomocą losowej sekwencji elementów ze słownika (\textit{from\textunderscore seq}), czy losowy wektor zasili bezpośrednio stany wewnętrzne dekodera $h$ i $c$ (\textit{from\textunderscore state}).
\begin{python}
>>> python generate.py offstring --i 10 --m from_state
>>> python generate.py offspring --i 10 --m from_state
Using TensorFlow backend.
Loading models...
@ -1463,7 +1468,49 @@ Generating music...
Done.
\end{python}
Parametr \pyth{--i} służy do okreslenia liczby wygenerowanych utworów a parametr \pyth{--m} pozwala zdefiniować metodę generowania, omówioną wyżej. W tym momencie pomyślnie zostały wygenerowane fragmenty muzyczne przy pomocy głębokiego uczenia.
Parametr \pyth{--i} służy do okreslenia liczby wygenerowanych utworów a parametr \pyth{--m} pozwala zdefiniować metodę generowania, omówioną wyżej.
Przekazywanie wygenerowanych patrii to odpowiednich modeli wykonywane jest przy pomocy poniższego fragmenu kodu.
\begin{python}
notes = dict()
for instrument, (model, program, generator) in band.items():
if generator == None:
notes[instrument] = model.develop(mode=MODE)
else:
input_data = seq_to_numpy(notes[generator],
model.transformer.x_max_seq_length,
model.transformer.x_vocab_size,
model.transformer.x_transform_dict)
notes[instrument] = model.predict(input_data)[:-1]
\end{python}
Słownik \pyth{band} przechowuje dane dotyczące całego zespołu modeli. Zmienna \pyth{intrument} jest nazwą intrumentu, \pyth{model} przechowuje obiekt modelu \\
sequance-to-sequance, \pyth{program} jest liczbą naturalną odpowiającą programowi MIDI z kolekcji GM a \pyth{generator} to nazwa intrumentu na podstawie którego powinna zostać wygenerowana kolejna partia intrumentalna.
Kompilacja do MIDI zachodzi z wykorzystaniem klas biblioteki \\
\pyth{midi_processing.py}, które wspierają format sekwencji słów muzycznych omówionych w rozdziale ~\ref{section:midi_words}.
\begin{python}
generated_midi = MultiTrack()
for instrument, (model, program, generator) in band.items():
if instrument == 'Drums':
is_drums = True
else:
is_drums = False
stream = Stream(first_tick=0, notes=notes[instrument])
track = SingleTrack(name=instrument,
program=program,
is_drum=is_drums,
stream=stream)
generated_midi.tracks.append(track)
generated_midi.save(save_path)
\end{python}
W ten sposób pomyślnie zostały wygenerowane fragmenty muzyczne przy pomocy głębokiego uczenia.
\section{Wyniki}

View File

@ -33,18 +33,18 @@
\contentsline {section}{\numberline {3.3\relax .\enspace }Definicja modelu}{44}%
\contentsline {subsection}{\numberline {3.3.1\relax .\enspace }Model w trybie uczenia}{44}%
\contentsline {subsection}{\numberline {3.3.2\relax .\enspace }Model w trybie wnioskowania}{46}%
\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{48}%
\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{48}%
\contentsline {section}{\numberline {3.4\relax .\enspace }Transformacja danych dla modelu}{49}%
\contentsline {subsection}{\numberline {3.4.1\relax .\enspace }Enkodowanie one-hot}{49}%
\contentsline {subsection}{\numberline {3.4.2\relax .\enspace }Słownik}{49}%
\contentsline {subsection}{\numberline {3.4.3\relax .\enspace }Elementy specjalne}{50}%
\contentsline {subsection}{\numberline {3.4.4\relax .\enspace }Zakodowanie sekwencji}{50}%
\contentsline {section}{\numberline {3.5\relax .\enspace }Ekperyment}{51}%
\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{51}%
\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{51}%
\contentsline {subsection}{\numberline {3.5.1\relax .\enspace }Oprogramowanie}{52}%
\contentsline {subsection}{\numberline {3.5.2\relax .\enspace }Zbiór danych}{52}%
\contentsline {subsection}{\numberline {3.5.3\relax .\enspace }Wydobycie danych}{52}%
\contentsline {section}{\numberline {3.6\relax .\enspace }Trenowanie modelu}{53}%
\contentsline {section}{\numberline {3.7\relax .\enspace }Generowanie muzyki przy pomocy wytrenowanych modeli}{54}%
\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{55}%
\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{55}%
\contentsline {section}{\numberline {3.8\relax .\enspace }Wyniki}{56}%
\contentsline {section}{\numberline {3.9\relax .\enspace }Wnioski}{56}%
\contentsline {chapter}{Rozdzia\PlPrIeC {\l }\ 4\relax .\enspace Podsumowanie}{57}%
\contentsline {chapter}{Bibliografia}{59}%