From c0c45dda00ee5b9194018398b017d89a310b2442 Mon Sep 17 00:00:00 2001 From: Priec Date: Wed, 6 May 2026 00:21:21 +0200 Subject: [PATCH] obrazky pridat --- prezentacia/1.tex | 4 - prezentacia/2.tex | 148 +++++ prezentacia/3.tex | 195 +++++++ prezentacia/listings-rust.sty | 75 +++ prezentacia/main.tex | 5 +- ...992B8001B176979179EDDED90.highlight.minted | 7 + ...58DE7366495DB4650CFEFAC2FCD61.index.minted | 10 + prezentacia/main/_minted/default.style.minted | 100 ++++ prezentacia/main/main.aux | 50 +- prezentacia/main/main.log | 539 ++++++++++++++---- prezentacia/main/main.nav | 37 +- prezentacia/main/main.out | 1 - prezentacia/main/main.pdf | Bin 49917 -> 83623 bytes prezentacia/main/main.snm | 4 +- prezentacia/main/main.toc | 1 - prezentacia/main/main.vrb | 9 + prezentacia/obrazky/burn_logo.png | Bin 0 -> 10925 bytes 17 files changed, 1043 insertions(+), 142 deletions(-) create mode 100644 prezentacia/2.tex create mode 100644 prezentacia/3.tex create mode 100644 prezentacia/listings-rust.sty create mode 100644 prezentacia/main/_minted/BCF8625992B8001B176979179EDDED90.highlight.minted create mode 100644 prezentacia/main/_minted/_FAD58DE7366495DB4650CFEFAC2FCD61.index.minted create mode 100644 prezentacia/main/_minted/default.style.minted create mode 100644 prezentacia/main/main.vrb create mode 100644 prezentacia/obrazky/burn_logo.png diff --git a/prezentacia/1.tex b/prezentacia/1.tex index f3b4f27..631c187 100644 --- a/prezentacia/1.tex +++ b/prezentacia/1.tex @@ -1,8 +1,4 @@ -\begin{frame}{Ahoj} -\section{nieco} -\end{frame} - \begin{frame}{Schéma NN} \centering \begin{figure}[H] diff --git a/prezentacia/2.tex b/prezentacia/2.tex new file mode 100644 index 0000000..b92f862 --- /dev/null +++ b/prezentacia/2.tex @@ -0,0 +1,148 @@ +\begin{frame}{Čo je neurónová sieť?} + \begin{itemize} + \item Matematický model inšpirovaný ľudským mozgom + \item Skladá sa z neurónov usporiadaných do vrstiev + \item Vstupná vrstva $\rightarrow$ skryté vrstvy $\rightarrow$ výstupná vrstva + \item Každé spojenie má váhu $w$ --- sieť sa učí úpravou týchto váh + \end{itemize} +\end{frame} + +\input{1.tex} + +\begin{frame}{Ako sa sieť učí?} + \begin{enumerate} + \item \textbf{Forward pass} --- dáta prechádzajú sieťou, dostaneme predikciu + \item \textbf{Loss} --- zmeriame, ako veľmi sa sieť mýli + \item \textbf{Backpropagation} --- spočítame gradienty (derivácie chyby podľa váh) + \item \textbf{SGD update} --- upravíme váhy v smere najväčšieho poklesu chyby: + \end{enumerate} + \vspace{0.5em} + \begin{equation} + w \leftarrow w - \eta \cdot \frac{\partial L}{\partial w} + \end{equation} + \begin{center} + kde $\eta$ je \textit{learning rate} + \end{center} +\end{frame} + +\begin{frame}{Aktivačné funkcie} + Bez aktivačných funkcií by bola celá sieť len lineárna transformácia. + + \vspace{0.5em} + \textbf{ReLU} --- najpoužívanejšia funkcia: + \begin{equation} + \texttt{ReLU}(x) = \max(0, x) + \end{equation} + + \textbf{Softmax} --- na výstupe pre klasifikáciu: + \begin{equation} + \texttt{softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}} + \end{equation} + Výstupom je pravdepodobnostné rozdelenie cez triedy. +\end{frame} + +\begin{frame}{Burn framework} + \begin{itemize} + \item Deep learning framework napísaný v Ruste + \item Cieľ: byť pre Rust tým, čím je PyTorch pre Python + \item Kľúčové vlastnosti: + \begin{itemize} + \item Backend-agnostický dizajn + \item Typová bezpečnosť v compile-time + \item Automatická diferenciácia (autodiff) + \item Podpora pre CPU, CUDA, WebGPU, \dots + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}{Burn --- Backend systém} + Burn oddeľuje logiku modelu od hardvéru: + + \vspace{0.5em} + \begin{center} + \texttt{Tensor} --- \texttt{B} je generický backend + \end{center} + + \vspace{0.5em} + \begin{itemize} + \item \texttt{NdArray} --- Rust, CPU, žiadne závislosti + \item \texttt{Wgpu} --- GPU cez WebGPU (cross-platform) + \item \texttt{LibTorch} --- wrapper nad C++ LibTorch (CUDA) + \item \texttt{Candle} --- Hugging Face backend + \end{itemize} + + \vspace{0.5em} + Ten istý kód beží na CPU aj GPU --- stačí zmeniť typ. +\end{frame} + +\begin{frame}[fragile]{Backend sa mení jedným riadkom} +\begin{lstlisting}[language=Rust, style=colouredRust] +// CPU, Rust, žiadne závislosti +type B = NdArray; + +// GPU cez WebGPU, cross-platform +type B = Wgpu; + +// NVIDIA GPU cez LibTorch +type B = LibTorch; +\end{lstlisting} + \vspace{0.5em} + Zvyšok kódu sa nemení --- model, tréning, inferencia, + všetko zostáva rovnaké. +\end{frame} + +\begin{frame}{Ako Burn pristupuje k tenzorom} + Tenzor v Burn nesie informáciu o type počas kompilácie: + \vspace{0.5em} + \begin{itemize} + \item \texttt{Tensor} --- vektor + \item \texttt{Tensor} --- matica + \item \texttt{Tensor} --- 3D tenzor (napr. batch obrázkov) + \end{itemize} + \vspace{0.5em} + Ak sa pokúsite násobiť maticu s vektorom nesprávnych rozmerov, + kompilátor to zastaví ešte pred spustením. +\end{frame} + +\begin{frame}[fragile]{Ako vyzerá model v Burn} +\begin{lstlisting}[language=Rust, style=colouredRust] +#[derive(Module)] +pub struct MnistModel { + linear1: Linear, + linear2: Linear, + activation: Relu, +} +\end{lstlisting}] + \vspace{0.5em} + Derive makro \texttt{Module} automaticky vygeneruje: + \begin{itemize} + \item Zber všetkých parametrov na tréning + \item Serializáciu a deserializáciu modelu + \item Presun medzi zariadeniami (CPU $\leftrightarrow$ GPU) + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Forward pass} +\begin{lstlisting}[language=Rust, style=colouredRust] +fn forward(&self, x: Tensor) -> Tensor { + let x = self.linear1.forward(x); + let x = self.activation.forward(x); + self.linear2.forward(x) +} +\end{lstlisting} + +\end{frame} + +\begin{frame}{Ako funguje autodiff v Burn} + Burn zabalí ľubovoľný backend do autodiff vrstvy: + \vspace{0.5em} + \begin{enumerate} + \item Počas forward passu sa buduje výpočtový graf + \item Každá operácia si pamätá, odkiaľ prišli dáta + \item \texttt{loss.backward()} prejde graf nazad. + \item Výsledok: gradient pre každý parameter + \end{enumerate} + \vspace{0.5em} + Typ rozlišuje fázy --- \texttt{Autodiff} na tréning a \texttt{Wgpu} na inferenciu. +\end{frame} + diff --git a/prezentacia/3.tex b/prezentacia/3.tex new file mode 100644 index 0000000..e293f15 --- /dev/null +++ b/prezentacia/3.tex @@ -0,0 +1,195 @@ + + +\begin{frame}[fragile]{Štruktúra nášho projektu} +\begin{verbatim} +. +├── Cargo.toml # závislosti (burn, clap, npyz, ...) +├── mnist.npz # dataset +└── src/ + ├── lib.rs # modul deklarácie + ├── main.rs # tréningová slučka, načítanie dát + └── model.rs # parametre siete +\end{verbatim} + + \vspace{0.5em} + Celý projekt --- 3 súbory. Žiadne skripty, žiadny Python glue. +\end{frame} + +\begin{frame}[fragile]{Definícia parametrov siete} +\begin{verbatim} +pub struct Parameters { + pub w1: Tensor, // [784, hidden] + pub b1: Tensor, // [hidden] + pub w2: Tensor, // [hidden, 10] + pub b2: Tensor, // [10] +} +\end{verbatim} + + \vspace{0.5em} + \begin{itemize} + \item Generický typ \texttt{B: Backend} --- funguje na akomkoľvek backendu + \item Rozmery tenzorov sú súčasťou typu (\texttt{Tensor}) + \item Kompilátor zachytí chyby v rozmeroch ešte \textbf{pred spustením} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Inicializácia váh} +\begin{verbatim} +let w1 = random_tensor([784, hidden_size], + 0.1, seed, device); +let b1 = Tensor::zeros([hidden_size], device); +\end{verbatim} + + \vspace{0.5em} + \begin{itemize} + \item Váhy: náhodné z $\mathcal{N}(0,\; 0.1)$ + \item Biasy: inicializované na nulu + \item \texttt{device} určuje, kde žijú dáta (CPU/GPU) + \item Seed zabezpečuje \textbf{reprodukovateľnosť} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Načítanie MNIST dát} +\begin{verbatim} +fn load_mnist_items(path: &str, examples: usize) + -> Vec<(Vec, u8)> +\end{verbatim} + + \vspace{0.5em} + \begin{itemize} + \item Otvoríme \texttt{mnist.npz} ako ZIP archív + \item Načítame obrázky + labely z \texttt{.npy} súborov + \item Normalizujeme pixely: $[0, 255] \rightarrow [0.0, 1.0]$ + \item Výstup: vektor párov \texttt{(obrázok, číslica)} + \end{itemize} + + \vspace{0.5em} + Rustový typový systém garantuje, že dáta majú správny formát. +\end{frame} + +\begin{frame}[fragile]{CLI parametre s Clap} +\begin{verbatim} +#[derive(Parser, Debug)] +struct Args { + #[arg(long, default_value_t = 50)] + batch_size: usize, + #[arg(long, default_value_t = 0.1)] + learning_rate: f64, + #[arg(long, default_value_t = 10)] + epochs: usize, +} +\end{verbatim} + + \vspace{0.5em} + Jeden derive makro --- automatický parsing, help text, validácia. + + \texttt{cargo run -- --epochs 20 --learning-rate 0.01} +\end{frame} + +\begin{frame}{Tréningová slučka --- logika} + Pre každú epochu: + \begin{enumerate} + \item Rozdeľ trénovacie dáta na \textbf{mini-batche} + \item Pre každý batch: + \begin{itemize} + \item Forward pass: $\hat{y} = \text{softmax}((\mathbf{x} \cdot W_1 + b_1)_{\text{ReLU}} \cdot W_2 + b_2)$ + \item Spočítaj cross-entropy loss + \item Backpropagation: gradienty pre $W_1, b_1, W_2, b_2$ + \item Update: $\theta \leftarrow \theta - \eta \cdot \nabla L$ + \end{itemize} + \item Vyhodnoť presnosť na dev sete + \end{enumerate} +\end{frame} + +\begin{frame}{Burn vs PyTorch --- porovnanie} + \begin{center} + \begin{tabular}{lcc} + \hline + \textbf{Vlastnosť} & \textbf{PyTorch} & \textbf{Burn} \\ + \hline + Jazyk & Python/C++ & Rust \\ + Typová bezpečnosť & runtime & compile-time \\ + Pamäťová bezpečnosť & GC/manuálna & ownership \\ + Backendy & CUDA, CPU & CUDA, CPU, WebGPU \\ + Binárka & $\sim$GB + Python & $\sim$MB standalone \\ + Nasadenie & zložité & jeden binárny súbor \\ + \hline + \end{tabular} + \end{center} +\end{frame} + +\begin{frame}{Výhoda: Compile-time kontroly} + V PyTorchi: + \begin{itemize} + \item Chyba v rozmeroch $\rightarrow$ \texttt{RuntimeError} po minútach tréningu + \item Preklep v názve vrstvy $\rightarrow$ tichý bug + \end{itemize} + + \vspace{0.5em} + V Burn/Ruste: + \begin{itemize} + \item Nesprávne rozmery $\rightarrow$ \textbf{kompilátor to nepustí} + \item Nepoužitá premenná, chýbajúci branch $\rightarrow$ warning/error + \item Žiadne \texttt{None} prekvapenia --- \texttt{Option} treba ošetriť + \end{itemize} + + \vspace{0.5em} + \textbf{Menej debugovania, viac istoty.} +\end{frame} + +\begin{frame}{Výhoda: Nasadenie do produkcie} + \begin{itemize} + \item \texttt{cargo build --release} $\rightarrow$ jeden statický binárny súbor + \item Žiadny Python runtime, žiadne virtuálne prostredia + \item Možnosť kompilácie do WebAssembly $\rightarrow$ inferencia v prehliadači + \item Ideálne pre embedded, edge zariadenia, IoT + \end{itemize} + + \vspace{0.5em} + \begin{center} + PyTorch model: Docker kontajner $\sim$2\,GB \\ + Burn model: binárka $\sim$5\,MB + \end{center} +\end{frame} + +\begin{frame}{Výhoda: Fearless concurrency} + \begin{itemize} + \item Rustový ownership systém zabraňuje data races \textbf{v compile-time} + \item Bezpečný multithreading pre data loading, augmentáciu + \item Parameter \texttt{--threads} v našom projekte + \item V Pythone: GIL (Global Interpreter Lock) blokuje paralelizmus + \end{itemize} +\end{frame> + +\begin{frame}{Kedy použiť Burn?} + \textbf{Vhodné:} + \begin{itemize} + \item Nasadenie modelov do produkcie + \item Edge/embedded inferencia + \item Keď chcete maximálny výkon a bezpečnosť + \item Keď už poznáte Rust + \end{itemize} + + \vspace{0.5em} + \textbf{Nevhodné (zatiaľ):} + \begin{itemize} + \item Rýchle prototypovanie --- Python je stále rýchlejší na experimenty + \item Ekosystém --- PyTorch má tisíce hotových modelov + \item Burn je stále mladý projekt (aktívny vývoj) + \end{itemize} +\end{frame} + +\begin{frame}{Zhrnutie} + \begin{itemize} + \item Neurónové siete = vrstvy neurónov, učenie cez gradienty + \item \textbf{Burn} prináša deep learning do Rustu + \item Backend-agnostický, typovo bezpečný, production-ready + \item Náš projekt: MNIST klasifikátor v 3 súboroch + \item Rust + Burn = bezpečnosť + výkon + jednoduchosť nasadenia + \end{itemize} + + \vspace{1em} + \begin{center} + \Large Ďakujem za pozornosť! + \end{center} +\end{frame} diff --git a/prezentacia/listings-rust.sty b/prezentacia/listings-rust.sty new file mode 100644 index 0000000..b630af1 --- /dev/null +++ b/prezentacia/listings-rust.sty @@ -0,0 +1,75 @@ +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{listings-rust}[2018/01/23 Custom Package] + +\RequirePackage{color} +\RequirePackage{listings} + +\lstdefinelanguage{Rust}{% + sensitive% +, morecomment=[l]{//}% +, morecomment=[s]{/*}{*/}% +, moredelim=[s][{\itshape\color[rgb]{0,0,0.75}}]{\#[}{]}% +, morestring=[b]{"}% +, alsodigit={}% +, alsoother={}% +, alsoletter={!}% +% +% +% [1] reserve keywords +% [2] traits +% [3] primitive types +% [4] type and value constructors +% [5] identifier +% +, morekeywords={break, continue, else, for, if, in, loop, match, return, while} % control flow keywords +, morekeywords={as, const, let, move, mut, ref, static} % in the context of variables +, morekeywords={dyn, enum, fn, impl, Self, self, struct, trait, type, union, use, where} % in the context of declarations +, morekeywords={crate, extern, mod, pub, super} % in the context of modularisation +, morekeywords={unsafe} % markers +, morekeywords={abstract, alignof, become, box, do, final, macro, offsetof, override, priv, proc, pure, sizeof, typeof, unsized, virtual, yield} % reserved identifiers +% +% grep 'pub trait [A-Za-z][A-Za-z0-9]*' -r . | sed 's/^.*pub trait \([A-Za-z][A-Za-z0-9]*\).*/\1/g' | sort -u | tr '\n' ',' | sed 's/^\(.*\),$/{\1}\n/g' | sed 's/,/, /g' +, morekeywords=[2]{Add, AddAssign, Any, AsciiExt, AsInner, AsInnerMut, AsMut, AsRawFd, AsRawHandle, AsRawSocket, AsRef, Binary, BitAnd, BitAndAssign, Bitor, BitOr, BitOrAssign, BitXor, BitXorAssign, Borrow, BorrowMut, Boxed, BoxPlace, BufRead, BuildHasher, CastInto, CharExt, Clone, CoerceUnsized, CommandExt, Copy, Debug, DecodableFloat, Default, Deref, DerefMut, DirBuilderExt, DirEntryExt, Display, Div, DivAssign, DoubleEndedIterator, DoubleEndedSearcher, Drop, EnvKey, Eq, Error, ExactSizeIterator, ExitStatusExt, Extend, FileExt, FileTypeExt, Float, Fn, FnBox, FnMut, FnOnce, Freeze, From, FromInner, FromIterator, FromRawFd, FromRawHandle, FromRawSocket, FromStr, FullOps, FusedIterator, Generator, Hash, Hasher, Index, IndexMut, InPlace, Int, Into, IntoCow, IntoInner, IntoIterator, IntoRawFd, IntoRawHandle, IntoRawSocket, IsMinusOne, IsZero, Iterator, JoinHandleExt, LargeInt, LowerExp, LowerHex, MetadataExt, Mul, MulAssign, Neg, Not, Octal, OpenOptionsExt, Ord, OsStrExt, OsStringExt, Packet, PartialEq, PartialOrd, Pattern, PermissionsExt, Place, Placer, Pointer, Product, Put, RangeArgument, RawFloat, Read, Rem, RemAssign, Seek, Shl, ShlAssign, Shr, ShrAssign, Sized, SliceConcatExt, SliceExt, SliceIndex, Stats, Step, StrExt, Sub, SubAssign, Sum, Sync, TDynBenchFn, Terminal, Termination, ToOwned, ToSocketAddrs, ToString, Try, TryFrom, TryInto, UnicodeStr, Unsize, UpperExp, UpperHex, WideInt, Write} +, morekeywords=[2]{Send} % additional traits +% +, morekeywords=[3]{bool, char, f32, f64, i8, i16, i32, i64, isize, str, u8, u16, u32, u64, unit, usize, i128, u128} % primitive types +% +, morekeywords=[4]{Err, false, None, Ok, Some, true} % prelude value constructors +% grep 'pub \(type\|struct\|enum\) [A-Za-z][A-Za-z0-9]*' -r . | sed 's/^.*pub \(type\|struct\|enum\) \([A-Za-z][A-Za-z0-9]*\).*/\2/g' | sort -u | tr '\n' ',' | sed 's/^\(.*\),$/{\1}\n/g' | sed 's/,/, /g' +, morekeywords=[3]{AccessError, Adddf3, AddI128, AddoI128, AddoU128, ADDRESS, ADDRESS64, addrinfo, ADDRINFOA, AddrParseError, Addsf3, AddU128, advice, aiocb, Alignment, AllocErr, AnonPipe, Answer, Arc, Args, ArgsInnerDebug, ArgsOs, Argument, Arguments, ArgumentV1, Ashldi3, Ashlti3, Ashrdi3, Ashrti3, AssertParamIsClone, AssertParamIsCopy, AssertParamIsEq, AssertUnwindSafe, AtomicBool, AtomicPtr, Attr, auxtype, auxv, BackPlace, BacktraceContext, Barrier, BarrierWaitResult, Bencher, BenchMode, BenchSamples, BinaryHeap, BinaryHeapPlace, blkcnt, blkcnt64, blksize, BOOL, boolean, BOOLEAN, BoolTrie, BorrowError, BorrowMutError, Bound, Box, bpf, BTreeMap, BTreeSet, Bucket, BucketState, Buf, BufReader, BufWriter, Builder, BuildHasherDefault, BY, BYTE, Bytes, CannotReallocInPlace, cc, Cell, Chain, CHAR, CharIndices, CharPredicateSearcher, Chars, CharSearcher, CharsError, CharSliceSearcher, CharTryFromError, Child, ChildPipes, ChildStderr, ChildStdin, ChildStdio, ChildStdout, Chunks, ChunksMut, ciovec, clock, clockid, Cloned, cmsgcred, cmsghdr, CodePoint, Color, ColorConfig, Command, CommandEnv, Component, Components, CONDITION, condvar, Condvar, CONSOLE, CONTEXT, Count, Cow, cpu, CRITICAL, CStr, CString, CStringArray, Cursor, Cycle, CycleIter, daddr, DebugList, DebugMap, DebugSet, DebugStruct, DebugTuple, Decimal, Decoded, DecodeUtf16, DecodeUtf16Error, DecodeUtf8, DefaultEnvKey, DefaultHasher, dev, device, Difference, Digit32, DIR, DirBuilder, dircookie, dirent, dirent64, DirEntry, Discriminant, DISPATCHER, Display, Divdf3, Divdi3, Divmoddi4, Divmodsi4, Divsf3, Divsi3, Divti3, dl, Dl, Dlmalloc, Dns, DnsAnswer, DnsQuery, dqblk, Drain, DrainFilter, Dtor, Duration, DwarfReader, DWORD, DWORDLONG, DynamicLibrary, Edge, EHAction, EHContext, Elf32, Elf64, Empty, EmptyBucket, EncodeUtf16, EncodeWide, Entry, EntryPlace, Enumerate, Env, epoll, errno, Error, ErrorKind, EscapeDebug, EscapeDefault, EscapeUnicode, event, Event, eventrwflags, eventtype, ExactChunks, ExactChunksMut, EXCEPTION, Excess, ExchangeHeapSingleton, exit, exitcode, ExitStatus, Failure, fd, fdflags, fdsflags, fdstat, ff, fflags, File, FILE, FileAttr, filedelta, FileDesc, FilePermissions, filesize, filestat, FILETIME, filetype, FileType, Filter, FilterMap, Fixdfdi, Fixdfsi, Fixdfti, Fixsfdi, Fixsfsi, Fixsfti, Fixunsdfdi, Fixunsdfsi, Fixunsdfti, Fixunssfdi, Fixunssfsi, Fixunssfti, Flag, FlatMap, Floatdidf, FLOATING, Floatsidf, Floatsisf, Floattidf, Floattisf, Floatundidf, Floatunsidf, Floatunsisf, Floatuntidf, Floatuntisf, flock, ForceResult, FormatSpec, Formatted, Formatter, Fp, FpCategory, fpos, fpos64, fpreg, fpregset, FPUControlWord, Frame, FromBytesWithNulError, FromUtf16Error, FromUtf8Error, FrontPlace, fsblkcnt, fsfilcnt, fsflags, fsid, fstore, fsword, FullBucket, FullBucketMut, FullDecoded, Fuse, GapThenFull, GeneratorState, gid, glob, glob64, GlobalDlmalloc, greg, group, GROUP, Guard, GUID, Handle, HANDLE, Handler, HashMap, HashSet, Heap, HINSTANCE, HMODULE, hostent, HRESULT, id, idtype, if, ifaddrs, IMAGEHLP, Immut, in, in6, Incoming, Infallible, Initializer, ino, ino64, inode, input, InsertResult, Inspect, Instant, int16, int32, int64, int8, integer, IntermediateBox, Internal, Intersection, intmax, IntoInnerError, IntoIter, IntoStringError, intptr, InvalidSequence, iovec, ip, IpAddr, ipc, Ipv4Addr, ipv6, Ipv6Addr, Ipv6MulticastScope, Iter, IterMut, itimerspec, itimerval, jail, JoinHandle, JoinPathsError, KDHELP64, kevent, kevent64, key, Key, Keys, KV, l4, LARGE, lastlog, launchpad, Layout, Lazy, lconv, Leaf, LeafOrInternal, Lines, LinesAny, LineWriter, linger, linkcount, LinkedList, load, locale, LocalKey, LocalKeyState, Location, lock, LockResult, loff, LONG, lookup, lookupflags, LookupHost, LPBOOL, LPBY, LPBYTE, LPCSTR, LPCVOID, LPCWSTR, LPDWORD, LPFILETIME, LPHANDLE, LPOVERLAPPED, LPPROCESS, LPPROGRESS, LPSECURITY, LPSTARTUPINFO, LPSTR, LPVOID, LPWCH, LPWIN32, LPWSADATA, LPWSAPROTOCOL, LPWSTR, Lshrdi3, Lshrti3, lwpid, M128A, mach, major, Map, mcontext, Metadata, Metric, MetricMap, mflags, minor, mmsghdr, Moddi3, mode, Modsi3, Modti3, MonitorMsg, MOUNT, mprot, mq, mqd, msflags, msghdr, msginfo, msglen, msgqnum, msqid, Muldf3, Mulodi4, Mulosi4, Muloti4, Mulsf3, Multi3, Mut, Mutex, MutexGuard, MyCollection, n16, NamePadding, NativeLibBoilerplate, nfds, nl, nlink, NodeRef, NoneError, NonNull, NonZero, nthreads, NulError, OccupiedEntry, off, off64, oflags, Once, OnceState, OpenOptions, Option, Options, OptRes, Ordering, OsStr, OsString, Output, OVERLAPPED, Owned, Packet, PanicInfo, Param, ParseBoolError, ParseCharError, ParseError, ParseFloatError, ParseIntError, ParseResult, Part, passwd, Path, PathBuf, PCONDITION, PCONSOLE, Peekable, PeekMut, Permissions, PhantomData, pid, Pipes, PlaceBack, PlaceFront, PLARGE, PoisonError, pollfd, PopResult, port, Position, Powidf2, Powisf2, Prefix, PrefixComponent, PrintFormat, proc, Process, PROCESS, processentry, protoent, PSRWLOCK, pthread, ptr, ptrdiff, PVECTORED, Queue, radvisory, RandomState, Range, RangeFrom, RangeFull, RangeInclusive, RangeMut, RangeTo, RangeToInclusive, RawBucket, RawFd, RawHandle, RawPthread, RawSocket, RawTable, RawVec, Rc, ReadDir, Receiver, recv, RecvError, RecvTimeoutError, ReentrantMutex, ReentrantMutexGuard, Ref, RefCell, RefMut, REPARSE, Repeat, Result, Rev, Reverse, riflags, rights, rlim, rlim64, rlimit, rlimit64, roflags, Root, RSplit, RSplitMut, RSplitN, RSplitNMut, RUNTIME, rusage, RwLock, RWLock, RwLockReadGuard, RwLockWriteGuard, sa, SafeHash, Scan, sched, scope, sdflags, SearchResult, SearchStep, SECURITY, SeekFrom, segment, Select, SelectionResult, sem, sembuf, send, Sender, SendError, servent, sf, Shared, shmatt, shmid, ShortReader, ShouldPanic, Shutdown, siflags, sigaction, SigAction, sigevent, sighandler, siginfo, Sign, signal, signalfd, SignalToken, sigset, sigval, Sink, SipHasher, SipHasher13, SipHasher24, size, SIZE, Skip, SkipWhile, Slice, SmallBoolTrie, sockaddr, SOCKADDR, sockcred, Socket, SOCKET, SocketAddr, SocketAddrV4, SocketAddrV6, socklen, speed, Splice, Split, SplitMut, SplitN, SplitNMut, SplitPaths, SplitWhitespace, spwd, SRWLOCK, ssize, stack, STACKFRAME64, StartResult, STARTUPINFO, stat, Stat, stat64, statfs, statfs64, StaticKey, statvfs, StatVfs, statvfs64, Stderr, StderrLock, StderrTerminal, Stdin, StdinLock, Stdio, StdioPipes, Stdout, StdoutLock, StdoutTerminal, StepBy, String, StripPrefixError, StrSearcher, subclockflags, Subdf3, SubI128, SuboI128, SuboU128, subrwflags, subscription, Subsf3, SubU128, Summary, suseconds, SYMBOL, SYMBOLIC, SymmetricDifference, SyncSender, sysinfo, System, SystemTime, SystemTimeError, Take, TakeWhile, tcb, tcflag, TcpListener, TcpStream, TempDir, TermInfo, TerminfoTerminal, termios, termios2, TestDesc, TestDescAndFn, TestEvent, TestFn, TestName, TestOpts, TestResult, Thread, threadattr, threadentry, ThreadId, tid, time, time64, timespec, TimeSpec, timestamp, timeval, timeval32, timezone, tm, tms, ToLowercase, ToUppercase, TraitObject, TryFromIntError, TryFromSliceError, TryIter, TryLockError, TryLockResult, TryRecvError, TrySendError, TypeId, U64x2, ucontext, ucred, Udivdi3, Udivmoddi4, Udivmodsi4, Udivmodti4, Udivsi3, Udivti3, UdpSocket, uid, UINT, uint16, uint32, uint64, uint8, uintmax, uintptr, ulflags, ULONG, ULONGLONG, Umoddi3, Umodsi3, Umodti3, UnicodeVersion, Union, Unique, UnixDatagram, UnixListener, UnixStream, Unpacked, UnsafeCell, UNWIND, UpgradeResult, useconds, user, userdata, USHORT, Utf16Encoder, Utf8Error, Utf8Lossy, Utf8LossyChunk, Utf8LossyChunksIter, utimbuf, utmp, utmpx, utsname, uuid, VacantEntry, Values, ValuesMut, VarError, Variables, Vars, VarsOs, Vec, VecDeque, vm, Void, WaitTimeoutResult, WaitToken, wchar, WCHAR, Weak, whence, WIN32, WinConsole, Windows, WindowsEnvKey, winsize, WORD, Wrapping, wrlen, WSADATA, WSAPROTOCOL, WSAPROTOCOLCHAIN, Wtf8, Wtf8Buf, Wtf8CodePoints, xsw, xucred, Zip, zx} +% +, morekeywords=[5]{assert!, assert_eq!, assert_ne!, cfg!, column!, compile_error!, concat!, concat_idents!, debug_assert!, debug_assert_eq!, debug_assert_ne!, env!, eprint!, eprintln!, file!, format!, format_args!, include!, include_bytes!, include_str!, line!, module_path!, option_env!, panic!, print!, println!, select!, stringify!, thread_local!, try!, unimplemented!, unreachable!, vec!, write!, writeln!} % prelude macros +}% + +\lstdefinestyle{colouredRust}% +{ basicstyle=\ttfamily% +, identifierstyle=% +, commentstyle=\color[gray]{0.4}% +, stringstyle=\color[rgb]{0, 0, 0.5}% +, keywordstyle=\bfseries% reserved keywords +, keywordstyle=[2]\color[rgb]{0.75, 0, 0}% traits +, keywordstyle=[3]\color[rgb]{0, 0.5, 0}% primitive types +, keywordstyle=[4]\color[rgb]{0, 0.5, 0}% type and value constructors +, keywordstyle=[5]\color[rgb]{0, 0, 0.75}% macros +, columns=spaceflexible% +, keepspaces=true% +, showspaces=false% +, showtabs=false% +, showstringspaces=true% +}% + +\lstdefinestyle{boxed}{ + style=colouredRust% +, numbers=left% +, firstnumber=auto% +, numberblanklines=true% +, frame=trbL% +, numberstyle=\tiny% +, frame=leftline% +, numbersep=7pt% +, framesep=5pt% +, framerule=10pt% +, xleftmargin=15pt% +, backgroundcolor=\color[gray]{0.97}% +, rulecolor=\color[gray]{0.90}% +} diff --git a/prezentacia/main.tex b/prezentacia/main.tex index fac41c9..4f5790f 100644 --- a/prezentacia/main.tex +++ b/prezentacia/main.tex @@ -68,7 +68,7 @@ \usetikzlibrary{calc, shapes, backgrounds} \usepackage{amsmath, amssymb} \usepackage{url} -\usepackage{listings} +\usepackage{listings, listings-rust} \usepackage{eurosym} \usepackage{adjustbox} \usepackage[absolute,overlay]{textpos} @@ -94,7 +94,6 @@ \date{} \setbeamertemplate{title separator}{} - \setbeamertemplate{/foot}[totalframenumber] \setbeamercolor{/foot}{fg=white} \setbeamertemplate{footline}{ @@ -119,7 +118,7 @@ \begin{document} \input{titulka} -\input{1.tex} +\input{2.tex} %\hspace{5cm} %\vspace{8cm}test znova diff --git a/prezentacia/main/_minted/BCF8625992B8001B176979179EDDED90.highlight.minted b/prezentacia/main/_minted/BCF8625992B8001B176979179EDDED90.highlight.minted new file mode 100644 index 0000000..30a290b --- /dev/null +++ b/prezentacia/main/_minted/BCF8625992B8001B176979179EDDED90.highlight.minted @@ -0,0 +1,7 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] +\PYG{k}{fn}\PYG{+w}{ }\PYG{n+nf}{forward}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n+nb+bp}{self}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{x}\PYG{p}{:}\PYG{+w}{ }\PYG{n+nc}{Tensor}\PYG{o}{\PYGZlt{}}\PYG{n}{B}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{2}\PYG{o}{\PYGZgt{}}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZhy{}\PYGZgt{}}\PYG{+w}{ }\PYG{n+nc}{Tensor}\PYG{o}{\PYGZlt{}}\PYG{n}{B}\PYG{p}{,}\PYG{+w}{ }\PYG{l+m+mi}{2}\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{p}{\PYGZob{}} +\PYG{+w}{ }\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{x}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n+nb+bp}{self}\PYG{p}{.}\PYG{n}{linear1}\PYG{p}{.}\PYG{n}{forward}\PYG{p}{(}\PYG{n}{x}\PYG{p}{);} +\PYG{+w}{ }\PYG{k+kd}{let}\PYG{+w}{ }\PYG{n}{x}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{n+nb+bp}{self}\PYG{p}{.}\PYG{n}{activation}\PYG{p}{.}\PYG{n}{forward}\PYG{p}{(}\PYG{n}{x}\PYG{p}{);} +\PYG{+w}{ }\PYG{n+nb+bp}{self}\PYG{p}{.}\PYG{n}{linear2}\PYG{p}{.}\PYG{n}{forward}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)} +\PYG{p}{\PYGZcb{}} +\end{MintedVerbatim} diff --git a/prezentacia/main/_minted/_FAD58DE7366495DB4650CFEFAC2FCD61.index.minted b/prezentacia/main/_minted/_FAD58DE7366495DB4650CFEFAC2FCD61.index.minted new file mode 100644 index 0000000..235ed79 --- /dev/null +++ b/prezentacia/main/_minted/_FAD58DE7366495DB4650CFEFAC2FCD61.index.minted @@ -0,0 +1,10 @@ +{ + "jobname": "main", + "md5": "FAD58DE7366495DB4650CFEFAC2FCD61", + "timestamp": "19800101010000", + "cachefiles": [ + "BCF8625992B8001B176979179EDDED90.highlight.minted", + "_FAD58DE7366495DB4650CFEFAC2FCD61.index.minted", + "default.style.minted" + ] +} \ No newline at end of file diff --git a/prezentacia/main/_minted/default.style.minted b/prezentacia/main/_minted/default.style.minted new file mode 100644 index 0000000..3553f35 --- /dev/null +++ b/prezentacia/main/_minted/default.style.minted @@ -0,0 +1,100 @@ +\makeatletter +\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% + \let\PYG@ul=\relax \let\PYG@tc=\relax% + \let\PYG@bc=\relax \let\PYG@ff=\relax} +\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} +\def\PYG@toks#1+{\ifx\relax#1\empty\else% + \PYG@tok{#1}\expandafter\PYG@toks\fi} +\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% + \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} +\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} + +\@namedef{PYG@tok@w}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\@namedef{PYG@tok@c}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} +\@namedef{PYG@tok@cp}{\def\PYG@tc##1{\textcolor[rgb]{0.61,0.40,0.00}{##1}}} +\@namedef{PYG@tok@k}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@kp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@kt}{\def\PYG@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\@namedef{PYG@tok@o}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@ow}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\@namedef{PYG@tok@nb}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@nf}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\@namedef{PYG@tok@nc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\@namedef{PYG@tok@nn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\@namedef{PYG@tok@ne}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.80,0.25,0.22}{##1}}} +\@namedef{PYG@tok@nv}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\@namedef{PYG@tok@no}{\def\PYG@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\@namedef{PYG@tok@nl}{\def\PYG@tc##1{\textcolor[rgb]{0.46,0.46,0.00}{##1}}} +\@namedef{PYG@tok@ni}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}} +\@namedef{PYG@tok@na}{\def\PYG@tc##1{\textcolor[rgb]{0.41,0.47,0.13}{##1}}} +\@namedef{PYG@tok@nt}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@nd}{\def\PYG@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\@namedef{PYG@tok@s}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@sd}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@si}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}} +\@namedef{PYG@tok@se}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.67,0.36,0.12}{##1}}} +\@namedef{PYG@tok@sr}{\def\PYG@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}} +\@namedef{PYG@tok@ss}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\@namedef{PYG@tok@sx}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@m}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@gh}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\@namedef{PYG@tok@gu}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\@namedef{PYG@tok@gd}{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\@namedef{PYG@tok@gi}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.52,0.00}{##1}}} +\@namedef{PYG@tok@gr}{\def\PYG@tc##1{\textcolor[rgb]{0.89,0.00,0.00}{##1}}} +\@namedef{PYG@tok@ge}{\let\PYG@it=\textit} +\@namedef{PYG@tok@gs}{\let\PYG@bf=\textbf} +\@namedef{PYG@tok@ges}{\let\PYG@bf=\textbf\let\PYG@it=\textit} +\@namedef{PYG@tok@gp}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\@namedef{PYG@tok@go}{\def\PYG@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}} +\@namedef{PYG@tok@gt}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\@namedef{PYG@tok@err}{\def\PYG@bc##1{{\setlength{\fboxsep}{\string -\fboxrule}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}} +\@namedef{PYG@tok@kc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@kd}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@kn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@kr}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@bp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\@namedef{PYG@tok@fm}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\@namedef{PYG@tok@vc}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\@namedef{PYG@tok@vg}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\@namedef{PYG@tok@vi}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\@namedef{PYG@tok@vm}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\@namedef{PYG@tok@sa}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@sb}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@sc}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@dl}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@s2}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@sh}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@s1}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\@namedef{PYG@tok@mb}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@mf}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@mh}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@mi}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@il}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@mo}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\@namedef{PYG@tok@ch}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} +\@namedef{PYG@tok@cm}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} +\@namedef{PYG@tok@cpf}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} +\@namedef{PYG@tok@c1}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} +\@namedef{PYG@tok@cs}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} + +\def\PYGZbs{\char`\\} +\def\PYGZus{\char`\_} +\def\PYGZob{\char`\{} +\def\PYGZcb{\char`\}} +\def\PYGZca{\char`\^} +\def\PYGZam{\char`\&} +\def\PYGZlt{\char`\<} +\def\PYGZgt{\char`\>} +\def\PYGZsh{\char`\#} +\def\PYGZpc{\char`\%} +\def\PYGZdl{\char`\$} +\def\PYGZhy{\char`\-} +\def\PYGZsq{\char`\'} +\def\PYGZdq{\char`\"} +\def\PYGZti{\char`\~} +% for compatibility with earlier versions +\def\PYGZat{@} +\def\PYGZlb{[} +\def\PYGZrb{]} +\makeatother diff --git a/prezentacia/main/main.aux b/prezentacia/main/main.aux index feef14d..c20fc9e 100644 --- a/prezentacia/main/main.aux +++ b/prezentacia/main/main.aux @@ -9,25 +9,39 @@ \babel@aux{slovak}{} \@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}} -\@writefile{toc}{\beamer@sectionintoc {1}{nieco}{2}{0}{1}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{1}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{1}}} -\@writefile{nav}{\headcommand {\sectionentry {1}{nieco}{2}{nieco}{0}}} -\@writefile{nav}{\headcommand {\slideentry {1}{0}{0}{2/2}{}{0}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} -\@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{3/3}{}{0}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{3}{3/3}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}} -\bibcite{james2023islpython}{\hyperlink {beamerbibjames2023islpython}{1}} -\newlabel{zdroje<1>}{{4}{4}{}{zdroje<1>}{}} -\@writefile{snm}{\beamer@slide {zdroje<1>}{4}} -\newlabel{zdroje}{{4}{4}{}{zdroje}{}} -\@writefile{snm}{\beamer@slide {zdroje}{4}} -\@writefile{nav}{\headcommand {\slideentry {1}{0}{2}{4/4}{}{0}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{4}{4/4}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {4}{4}}} -\@writefile{nav}{\headcommand {\beamer@partpages {1}{4}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{4}}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{4}}} -\@writefile{nav}{\headcommand {\beamer@documentpages {4}}} -\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {4}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{5}{5/5}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {5}{5}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{6}{6/6}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {6}{6}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{7}{7/7}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {7}{7}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{8}{8/8}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {8}{8}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{9}{9/9}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {9}{9}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{10}{10/10}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {10}{10}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{11}{11/11}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {11}{11}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{12}{12/12}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {12}{12}}} +\bibcite{james2023islpython}{\hyperlink {beamerbibjames2023islpython}{1}} +\newlabel{zdroje<1>}{{13}{13}{}{zdroje<1>}{}} +\@writefile{snm}{\beamer@slide {zdroje<1>}{13}} +\newlabel{zdroje}{{13}{13}{}{zdroje}{}} +\@writefile{snm}{\beamer@slide {zdroje}{13}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{13}{13/13}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{13}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{13}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{13}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {13}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {13}}} \gdef\svg@ink@ver@settings{{\m@ne }{inkscape}{1}} -\gdef \@abspage@last{4} +\gdef \@abspage@last{13} diff --git a/prezentacia/main/main.log b/prezentacia/main/main.log index 16ed367..da83e5b 100644 --- a/prezentacia/main/main.log +++ b/prezentacia/main/main.log @@ -2201,7 +2201,9 @@ Package: listings 2025/11/14 1.11b (Carsten Heinz) but found: 2025/11/14 1.11b (Carsten Heinz) so I'm assuming it got fixed. - +(./listings-rust.sty +Package: listings-rust 2018/01/23 Custom Package +) (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm fdist/tex/latex/eurosym/eurosym.sty Package: eurosym 1998/08/06 v1.1 European currency symbol ``Euro'' @@ -2367,35 +2369,35 @@ Package babel Info: 'slovak' activates 'slovak' shorthands. ) \openout1 = main.aux -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 119. -LaTeX Font Info: ... okay on input line 119. -LaTeX Font Info: Checking defaults for LGR/cmr/m/n on input line 119. +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 118. +LaTeX Font Info: ... okay on input line 118. +LaTeX Font Info: Checking defaults for LGR/cmr/m/n on input line 118. LaTeX Font Info: Trying to load font information for LGR+cmr on input line 1 -19. +18. (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm fdist/tex/latex/cbfonts-fd/lgrcmr.fd File: lgrcmr.fd 2017/07/29 v1.2 Greek European Computer Regular ) -LaTeX Font Info: ... okay on input line 119. +LaTeX Font Info: ... okay on input line 118. *geometry* driver: auto-detecting *geometry* detected driver: luatex @@ -2458,7 +2460,7 @@ fdist/tex/latex/latexconfig/epstopdf-sys.cfg File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv e )) -Package hyperref Info: Link coloring OFF on input line 119. +Package hyperref Info: Link coloring OFF on input line 118. (./main/main.out) (./main/main.out) \@outlinefile=\write5 @@ -2492,13 +2494,13 @@ Dictionary: translator-theorem-dictionary, Language: English Package microtype Info: Patching varwidth to enable character protrusion. \MT@vwid@leftmargin=\dimen428 \MT@vwid@rightmargin=\dimen429 -LaTeX Info: Redefining \microtypecontext on input line 119. -Package microtype Info: Applying patch `item' on input line 119. -Package microtype Info: Applying patch `toc' on input line 119. -Package microtype Info: Applying patch `eqnum' on input line 119. -Package microtype Info: Applying patch `footnote' on input line 119. -Package microtype Info: Applying patch `verbatim' on input line 119. -LaTeX Info: Redefining \microtypesetup on input line 119. +LaTeX Info: Redefining \microtypecontext on input line 118. +Package microtype Info: Applying patch `item' on input line 118. +Package microtype Info: Applying patch `toc' on input line 118. +Package microtype Info: Applying patch `eqnum' on input line 118. +Package microtype Info: Applying patch `footnote' on input line 118. +Package microtype Info: Applying patch `verbatim' on input line 118. +LaTeX Info: Redefining \microtypesetup on input line 118. Package microtype Info: Generating PDF output. Package microtype Info: Character protrusion enabled (level 2). Package microtype Info: Using default protrusion set `alltext'. @@ -2514,13 +2516,13 @@ Package microtype Info: Loading generic protrusion settings for font family (microtype) For optimal results, create family-specific settings. (microtype) See the microtype manual for details. LaTeX Font Info: Overwriting symbol font `operators' in version `normal' -(Font) OT1/lmr/m/n --> OT1/zavm/m/n on input line 119. +(Font) OT1/lmr/m/n --> OT1/zavm/m/n on input line 118. LaTeX Font Info: Overwriting symbol font `letters' in version `normal' -(Font) OML/lmm/m/it --> OML/zavm/m/it on input line 119. +(Font) OML/lmm/m/it --> OML/zavm/m/it on input line 118. LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' -(Font) OMS/lmsy/m/n --> OMS/zavm/m/n on input line 119. +(Font) OMS/lmsy/m/n --> OMS/zavm/m/n on input line 118. LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' -(Font) OMX/lmex/m/n --> OMX/iwona/m/n on input line 119. +(Font) OMX/lmex/m/n --> OMX/iwona/m/n on input line 118. Package siunitx Warning: Detected the "physics" package: @@ -2534,20 +2536,20 @@ Package siunitx Warning: Detected the "physics" package: (siunitx) to your preamble. Package translations Info: no dictionary file `translations-basic-dictionary-sl -ovak.trsl' found. on input line 119. +ovak.trsl' found. on input line 118. \symgns@font=\mathgroup6 LaTeX Font Info: Overwriting symbol font `gns@font' in version `bold' (Font) TS1/FiraSansLight(0)/m/n --> TS1/FiraSansLight(0)/b/n o -n input line 119. -Package gensymb Info: Math companion symbols declared on input line 119. -LaTeX Info: Redefining \degree on input line 119. -LaTeX Info: Redefining \celsius on input line 119. +n input line 118. +Package gensymb Info: Math companion symbols declared on input line 118. +LaTeX Info: Redefining \degree on input line 118. +LaTeX Info: Redefining \celsius on input line 118. Package gensymb Info: Using text companion symbols for \degree, \celsius and \p -erthousand on input line 119. -LaTeX Info: Redefining \ohm on input line 119. -Package gensymb Info: Using \textohm for \ohm on input line 119. -LaTeX Info: Redefining \micro on input line 119. -Package gensymb Info: Using \textmu for \micro on input line 119. +erthousand on input line 118. +LaTeX Info: Redefining \ohm on input line 118. +Package gensymb Info: Using \textohm for \ohm on input line 118. +LaTeX Info: Redefining \micro on input line 118. +Package gensymb Info: Using \textmu for \micro on input line 118. Package caption Info: Begin \AtBeginDocument code. Package caption Info: float package is loaded. Package caption Info: listings package is loaded. @@ -2570,17 +2572,17 @@ Package: lscape 2020/05/28 v3.02 Landscape Pages (DPC) Package pdflscape Info: Auto-detected driver: pdftex on input line 81. )) (./main/main.nav) Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input -line 119. +line 118. (./svg-inkscape/logo_svg-tex.pdf_tex -<./svg-inkscape/logo_svg-tex.pdf, id=18, page=1, 322.19081pt x 64.01605pt> +<./svg-inkscape/logo_svg-tex.pdf, id=14, page=1, 322.19081pt x 64.01605pt> File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input line 56. (luatex.def) Requested size: 100.28166pt x 19.92487pt. ) -Overfull \hbox (14.36996pt too wide) in paragraph at lines 119--119 +Overfull \hbox (14.36996pt too wide) in paragraph at lines 118--118 [][] [] @@ -2601,9 +2603,9 @@ Overfull \hbox (14.36996pt too wide) in paragraph at lines 34--34 [1 {/nix/store/anbw89c7fwjbzc2jakj9knvnvzk9zr0x-texlive-2025-r78234-final-env/share -/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]) (./1.tex +/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]) (./2.tex Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input -line 4. +line 8. (./svg-inkscape/logo_svg-tex.pdf_tex File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) @@ -2612,12 +2614,12 @@ Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input line 56. (luatex.def) Requested size: 100.28166pt x 19.92487pt. ) -Overfull \hbox (14.36996pt too wide) in paragraph at lines 4--4 +Overfull \hbox (14.36996pt too wide) in paragraph at lines 8--8 [][] [] LaTeX Font Info: Trying to load font information for OT1+zavm on input line -4. +8. (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm fdist/tex/latex/arev/ot1zavm.fd @@ -2646,26 +2648,26 @@ Package microtype Info: Character `textemdash ' is missing (microtype) in font `OT1/zavm/m/n/6'. (microtype) Ignoring protrusion settings for this character. LaTeX Font Info: Font shape `OML/zavm/m/it' will be -(Font) scaled to size 9.30756pt on input line 4. +(Font) scaled to size 9.30756pt on input line 8. LaTeX Font Info: Font shape `OML/zavm/m/it' will be -(Font) scaled to size 6.80005pt on input line 4. +(Font) scaled to size 6.80005pt on input line 8. LaTeX Font Info: Font shape `OML/zavm/m/it' will be -(Font) scaled to size 5.10004pt on input line 4. +(Font) scaled to size 5.10004pt on input line 8. LaTeX Font Info: Trying to load font information for OMS+zavm on input line -4. +8. (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm fdist/tex/latex/arev/omszavm.fd File: omszavm.fd 2006/05/30 Fontinst v1.929 font definitions for OMS/zavm. ) LaTeX Font Info: Trying to load font information for OMX+iwona on input line - 4. + 8. (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm fdist/tex/latex/iwona/omxiwona.fd File: omxiwona.fd 2008/07/22 v0.995 font definition file for OMX/iwona (MW) ) -LaTeX Font Info: Trying to load font information for U+msa on input line 4. +LaTeX Font Info: Trying to load font information for U+msa on input line 8. (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm fdist/tex/latex/amsfonts/umsa.fd @@ -2675,7 +2677,7 @@ File: umsa.fd 2013/01/14 v3.01 AMS symbols A fdist/tex/latex/microtype/mt-msa.cfg File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS) ) -LaTeX Font Info: Trying to load font information for U+msb on input line 4. +LaTeX Font Info: Trying to load font information for U+msb on input line 8. (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm fdist/tex/latex/amsfonts/umsb.fd @@ -2686,12 +2688,12 @@ fdist/tex/latex/microtype/mt-msb.cfg File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS) ) LaTeX Font Info: Trying to load font information for TS1+FiraSansLight(0) on - input line 4. -LaTeX Font Info: No file TS1FiraSansLight(0).fd. on input line 4. + input line 8. +LaTeX Font Info: No file TS1FiraSansLight(0).fd. on input line 8. LaTeX Font Warning: Font shape `TS1/FiraSansLight(0)/m/n' undefined -(Font) using `TS1/cmr/m/n' instead on input line 4. +(Font) using `TS1/cmr/m/n' instead on input line 8. (/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texm @@ -2704,7 +2706,7 @@ Package microtype Info: Loading generic protrusion settings for font family (microtype) For optimal results, create family-specific settings. (microtype) See the microtype manual for details. Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input -line 4. +line 8. (./svg-inkscape/logo_svg-tex.pdf_tex File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) @@ -2718,17 +2720,18 @@ Overfull \hbox (14.36996pt too wide) has occurred while \output is active [2 -<./svg-inkscape/logo_svg-tex.pdf>] +<./svg-inkscape/logo_svg-tex.pdf>] (./1.tex Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input -line 63. - (./svg-inkscape/logo_svg-tex.pdf_tex +line 59. + +(./svg-inkscape/logo_svg-tex.pdf_tex File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input line 56. (luatex.def) Requested size: 100.28166pt x 19.92487pt. ) -Overfull \hbox (14.36996pt too wide) in paragraph at lines 63--63 +Overfull \hbox (14.36996pt too wide) in paragraph at lines 59--59 [][] [] @@ -2739,13 +2742,13 @@ Package microtype Info: Character `textemdash ' is missing (microtype) in font `OT1/zavm/m/n/5'. (microtype) Ignoring protrusion settings for this character. LaTeX Font Info: Font shape `OML/zavm/m/it' will be -(Font) scaled to size 4.25003pt on input line 63. +(Font) scaled to size 4.25003pt on input line 59. -Overfull \vbox (3.26212pt too high) detected at line 63 +Overfull \vbox (0.4939pt too high) detected at line 59 [] Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input -line 63. +line 59. (./svg-inkscape/logo_svg-tex.pdf_tex File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) @@ -2761,7 +2764,7 @@ Overfull \hbox (14.36996pt too wide) has occurred while \output is active ]) Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input -line 138. +line 26. (./svg-inkscape/logo_svg-tex.pdf_tex File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) @@ -2769,12 +2772,12 @@ Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input line 56. (luatex.def) Requested size: 100.28166pt x 19.92487pt. ) -Overfull \hbox (14.36996pt too wide) in paragraph at lines 138--138 +Overfull \hbox (14.36996pt too wide) in paragraph at lines 26--26 [][] [] Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input -line 138. +line 26. (./svg-inkscape/logo_svg-tex.pdf_tex File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) @@ -2788,6 +2791,328 @@ Overfull \hbox (14.36996pt too wide) has occurred while \output is active [4 +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 42. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 42--42 +[][] + [] + +Package microtype Info: Loading generic protrusion settings for font family +(microtype) `FiraMono' (encoding: TU). +(microtype) For optimal results, create family-specific settings. +(microtype) See the microtype manual for details. + +Overfull \vbox (4.27557pt too high) detected at line 42 + [] + +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 42. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[5 + +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 56. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 56--56 +[][] + [] + +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 56. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[6 + +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 76. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 76--76 +[][] + [] + +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 76. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[7 + +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 78. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 78--78 +[][] + [] + + +\openout4 = main.vrb +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 92. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 92--92 +[][] + [] + +(./main/main.vrb) +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 92. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[8 + +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 105. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 105--105 +[][] + [] + +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 105. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[9 + +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 107. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 107--107 +[][] + [] + + +\openout4 = main.vrb +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 123. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 123--123 +[][] + [] + +(./main/main.vrb) +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 123. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[10 + +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 125. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 125--125 +[][] + [] + + +\openout4 = main.vrb +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 134. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 134--134 +[][] + [] + +(./main/main.vrb +Overfull \hbox (33.03572pt too wide) in paragraph at lines 3--4 +[][][][][][][][][][][][][][][][][][][][][][][][][][][][][] + [] + +) +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 134. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[11 + +] +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 147. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 147--147 +[][] + [] + +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 147. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[12 + +]) +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 137. + (./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) in paragraph at lines 137--137 +[][] + [] + +Package svg Info: Last page of `./svg-inkscape/logo_svg-tex.pdf' is 1 on input +line 137. +(./svg-inkscape/logo_svg-tex.pdf_tex +File: ./svg-inkscape/logo_svg-tex.pdf Graphic file (type pdf) + +Package luatex.def Info: ./svg-inkscape/logo_svg-tex.pdf , page1 used on input +line 56. +(luatex.def) Requested size: 100.28166pt x 19.92487pt. +) +Overfull \hbox (14.36996pt too wide) has occurred while \output is active +[][] + [] + +[13 + ] \tf@nav=\write6 @@ -2814,38 +3139,48 @@ L3 programming layer <2026-01-19> LaTeX Font Warning: Some font shapes were not available, defaults substituted. Package rerunfilecheck Info: File `main.out' has not changed. -(rerunfilecheck) Checksum: 07D30795F564D89E8B33F6D85383A068;40. +(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. ) Here is how much of LuaTeX's memory you used: - 65630 strings out of 476078 - 125031,2373549 words of node,token memory allocated - 6082 words of node memory still in use: - 66 hlist, 16 vlist, 8 rule, 26 disc, 6 local_par, 117 glue, 66 kern, 23 penal -ty, 3 margin_kern, 199 glyph, 432 attribute, 88 glue_spec, 217 attribute_list, 8 - write, 62 pdf_literal, 3 pdf_start_link, 3 pdf_end_link, 3 pdf_dest, 3 pdf_acti -on, 58 pdf_colorstack nodes - avail lists: 1:8,2:3331,3:1967,4:392,5:176,6:41,7:1470,8:7,9:808,10:12,11:74, -12:1 - 86437 multiletter control sequences out of 65536+600000 - 128 fonts using 27365839 bytes - 128i,23n,130p,1864b,1072s stack positions out of 10000i,1000n,20000p,200000b,200000s + 67052 strings out of 476078 + 125031,2848258 words of node,token memory allocated + 5423 words of node memory still in use: + 54 hlist, 16 vlist, 8 rule, 26 disc, 7 local_par, 106 glue, 64 kern, 24 penal +ty, 5 margin_kern, 198 glyph, 332 attribute, 88 glue_spec, 167 attribute_list, 8 + write, 30 pdf_literal, 3 pdf_dest, 52 pdf_colorstack nodes + avail lists: 1:8,2:3202,3:1880,4:385,5:290,6:47,7:1427,8:20,9:997,10:13,11:79 +,12:1 + 87622 multiletter control sequences out of 65536+600000 + 132 fonts using 28094191 bytes + 128i,23n,130p,7883b,1832s stack positions out of 10000i,1000n,20000p,200000b,200000s {/nix/store/56vq9r21wl8 -m731rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texmfdist/fonts/enc/dvips/ar -ev/arevot1.enc}{/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234- -final-env-texmfdist/fonts/enc/dvips/arev/arevoml.enc} -Output written on main.pdf (4 pages, 49917 bytes). +fira/FiraMono-Medium.otf>{/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-20 +25-r78234-final-env-texmfdist/fonts/enc/dvips/iwona/ex-iwona.enc}{/nix/store/56vq9r21wl8m731rsri7nh3l4ipih7jj-texlive-2025-r78234- +final-env-texmfdist/fonts/enc/dvips/arev/arevot1.enc}{/nix/store/56vq9r21wl8m731 +rsri7nh3l4ipih7jj-texlive-2025-r78234-final-env-texmfdist/fonts/enc/dvips/arev/a +revoml.enc} +Output written on main.pdf (13 pages, 83623 bytes). -PDF statistics: 120 PDF objects out of 1000 (max. 8388607) - 69 compressed objects within 1 object stream - 13 named destinations out of 1000 (max. 131072) - 24 words of extra memory for PDF output out of 10000 (max. 100000000) +PDF statistics: 190 PDF objects out of 1000 (max. 8388607) + 111 compressed objects within 2 object streams + 30 named destinations out of 1000 (max. 131072) + 16 words of extra memory for PDF output out of 10000 (max. 100000000) diff --git a/prezentacia/main/main.nav b/prezentacia/main/main.nav index f1ccdb9..53acdab 100644 --- a/prezentacia/main/main.nav +++ b/prezentacia/main/main.nav @@ -1,16 +1,31 @@ \headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} \headcommand {\beamer@framepages {1}{1}} -\headcommand {\beamer@sectionpages {1}{1}} -\headcommand {\beamer@subsectionpages {1}{1}} -\headcommand {\sectionentry {1}{nieco}{2}{nieco}{0}} -\headcommand {\slideentry {1}{0}{0}{2/2}{}{0}} +\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}} \headcommand {\beamer@framepages {2}{2}} -\headcommand {\slideentry {1}{0}{1}{3/3}{}{0}} +\headcommand {\slideentry {0}{0}{3}{3/3}{}{0}} \headcommand {\beamer@framepages {3}{3}} -\headcommand {\slideentry {1}{0}{2}{4/4}{}{0}} +\headcommand {\slideentry {0}{0}{4}{4/4}{}{0}} \headcommand {\beamer@framepages {4}{4}} -\headcommand {\beamer@partpages {1}{4}} -\headcommand {\beamer@subsectionpages {1}{4}} -\headcommand {\beamer@sectionpages {1}{4}} -\headcommand {\beamer@documentpages {4}} -\headcommand {\gdef \inserttotalframenumber {4}} +\headcommand {\slideentry {0}{0}{5}{5/5}{}{0}} +\headcommand {\beamer@framepages {5}{5}} +\headcommand {\slideentry {0}{0}{6}{6/6}{}{0}} +\headcommand {\beamer@framepages {6}{6}} +\headcommand {\slideentry {0}{0}{7}{7/7}{}{0}} +\headcommand {\beamer@framepages {7}{7}} +\headcommand {\slideentry {0}{0}{8}{8/8}{}{0}} +\headcommand {\beamer@framepages {8}{8}} +\headcommand {\slideentry {0}{0}{9}{9/9}{}{0}} +\headcommand {\beamer@framepages {9}{9}} +\headcommand {\slideentry {0}{0}{10}{10/10}{}{0}} +\headcommand {\beamer@framepages {10}{10}} +\headcommand {\slideentry {0}{0}{11}{11/11}{}{0}} +\headcommand {\beamer@framepages {11}{11}} +\headcommand {\slideentry {0}{0}{12}{12/12}{}{0}} +\headcommand {\beamer@framepages {12}{12}} +\headcommand {\slideentry {0}{0}{13}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\beamer@partpages {1}{13}} +\headcommand {\beamer@subsectionpages {1}{13}} +\headcommand {\beamer@sectionpages {1}{13}} +\headcommand {\beamer@documentpages {13}} +\headcommand {\gdef \inserttotalframenumber {13}} diff --git a/prezentacia/main/main.out b/prezentacia/main/main.out index 9d6708a..e69de29 100644 --- a/prezentacia/main/main.out +++ b/prezentacia/main/main.out @@ -1 +0,0 @@ -\BOOKMARK [2][]{Outline0.1}{nieco}{}% 1 diff --git a/prezentacia/main/main.pdf b/prezentacia/main/main.pdf index 2ecac9936d399157be9468f19cbc11d09c88973b..a23d70461074bc27f635c2fdd03592ac25391999 100644 GIT binary patch delta 65857 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
Eh35TA0=kW-4-Z0m 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 diff --git a/prezentacia/main/main.snm b/prezentacia/main/main.snm index bb80edf..f11aae9 100644 --- a/prezentacia/main/main.snm +++ b/prezentacia/main/main.snm @@ -1,2 +1,2 @@ -\beamer@slide {zdroje<1>}{4} -\beamer@slide {zdroje}{4} +\beamer@slide {zdroje<1>}{13} +\beamer@slide {zdroje}{13} diff --git a/prezentacia/main/main.toc b/prezentacia/main/main.toc index 4a3ee17..4515760 100644 --- a/prezentacia/main/main.toc +++ b/prezentacia/main/main.toc @@ -1,2 +1 @@ \babel@toc {slovak}{}\relax -\beamer@sectionintoc {1}{nieco}{2}{0}{1} diff --git a/prezentacia/main/main.vrb b/prezentacia/main/main.vrb new file mode 100644 index 0000000..506c5e1 --- /dev/null +++ b/prezentacia/main/main.vrb @@ -0,0 +1,9 @@ +\frametitle{Forward pass} +\begin{lstlisting}[language=Rust, style=colouredRust] +fn forward(&self, x: Tensor) -> Tensor { + let x = self.linear1.forward(x); + let x = self.activation.forward(x); + self.linear2.forward(x) +} +\end{lstlisting} + diff --git a/prezentacia/obrazky/burn_logo.png b/prezentacia/obrazky/burn_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d0fd2ada38d79d9d638a6f881fa02818eeb36bd5 GIT binary patch literal 10925 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 P00000NkvXXu0mjfppdkR literal 0 HcmV?d00001