neděle 16. června 2024

Na co je knihovna PyTorch? Je pytorch taky pro CPU?

Knihovna PyTorch je populární open-source knihovna pro strojové učení a hluboké učení. Nabízí širokou škálu nástrojů a funkcí pro práci s tenzory (matematické objekty podobné maticím, které mohou být efektivně zpracovávány na GPU), automatizaci diferenciace (což je klíčové pro trénování neuronových sítí metodou zpětného šíření chyb), a možnosti vytváření a trénování různých typů neuronových sítí.

Hlavní vlastnosti a použití PyTorch:

  1. Dynamický graf výpočtů: PyTorch používá dynamický graf výpočtů, což znamená, že graf výpočtů se vytváří a optimalizuje v reálném čase při provádění kódu. To poskytuje větší flexibilitu a jednodušší ladění proti statickým grafům, které se používají například v knihovně TensorFlow.

  2. Podpora pro GPU akceleraci: PyTorch umožňuje efektivní využití GPU pro rychlejší výpočty, což je zvláště užitečné pro trénování velkých modelů hlubokého učení.

  3. Modulární návrh: Knihovna je navržena modulárně, což umožňuje snadné a flexibilní vytváření různých typů neuronových sítí, včetně konvolučních sítí (CNN), rekurentních sítí (RNN) a transformátorových modelů.

  4. Rozsáhlá komunitní podpora: Díky své popularitě má PyTorch velkou komunitu uživatelů, což znamená dostupnost mnoha knihoven a nástrojů třetích stran, tutoriálů a příkladů pro různé aplikace strojového učení.

Použití PyTorch zahrnuje:

  • Trénování a evaluace modelů strojového učení: Vytváření a trénování modelů pro klasifikaci, detekci objektů, segmentaci obrázků, a další úlohy.

  • Výzkum v oblasti hlubokého učení: Experimentování s novými architekturami sítí, optimalizací učení a rozvojem nových technik pro zpracování obrazu, textu a zvuku.

  • Vývoj aplikací s umělou inteligencí: Integrace neuronových sítí do aplikací pro automatické zpracování dat, predikci a adaptivního rozhodování.

PyTorch je často volbou pro výzkumné pracovníky a vývojáře díky své flexibilitě, jednoduchosti použití a výkonu, který nabízí při trénování pokročilých modelů strojového učení.

 

ChatGPT

sobota 15. června 2024

Co je T5 v kontextu strojového učení?

T5 je velký model zpracování přirozeného jazyka (Natural Language Processing - NLP), který byl vyvinut společností Google Research. Jeho název "T5" je zkratkou pro "Text-To-Text Transfer Transformer". Tento model je trénován na široké škále úloh zpracování textu, kde je vstup a výstup reprezentován jako textové sekvence.

V kontextu textu, který jste poskytl, je "T5 text encoder" jedním z modelů, které byly převedeny do OpenVINO IR formátu a je použit pro kódování textu. Tento kódovaný text může být následně využit v dalších částech systému, například pro generování hudby v projektu MusicGen.

T5 model je obvykle trénován na úlohách, jako je překládání textu, sumarizace, odpovídání na otázky a další úkoly spojené se zpracováním přirozeného jazyka. Jeho přítomnost v tomto projektu naznačuje, že textový vstup je důležitou součástí procesu generování hudby.

IR formát

OpenVINO IR formát je zkratkou pro "Open Visual Inference and Neural network Optimization Intermediate Representation". Jedná se o formát, který slouží k optimalizaci a efektivnímu provádění strojového učení a inferencí na různých hardwarových platformách, včetně CPU, GPU a FPGA.

Zkratka IR znamená "Intermediate Representation", což je obecný termín pro formát, který slouží jako mezistupeň mezi trénováním a prováděním (inference) modelu strojového učení. V kontextu OpenVINO, IR reprezentuje modely, které byly optimalizovány a převedeny do formátu, který je přenositelný a efektivní pro různé hardwarové platformy. Tímto způsobem mohou být modely strojového učení rychleji a efektivněji spouštěny na zařízeních s různými architekturami, což je klíčové pro jejich nasazení v produkčních prostředích.

Inference v kontextu strojového učení a umělé inteligence

Inference v kontextu strojového učení a umělé inteligence se odkazuje na proces aplikace natrénovaného modelu na nová data s cílem získat predikce nebo odpovědi. Jedná se o hlavní fázi využití modelu po jeho trénování.

Když je model strojového učení trénován, učí se na trénovacích datech a upravuje své váhy tak, aby dosáhl co nejlepších výsledků na těchto datech. Po dokončení trénování se model použije na nová, dosud neviděná data. Proces, ve kterém model používá tato nová data k výpočtu výstupů (predikcí) se nazývá inference.

Inference je tedy aplikace natrénovaného modelu na reálná data k dosažení cenných výsledků, jako jsou klasifikace, predikce, detekce, generace atd. Tento proces je klíčový pro praktické využití strojového učení v aplikacích od autonomního řízení po zpracování přirozeného jazyka a další oblasti umělé inteligence.

pondělí 3. června 2024

Instalace OpenVino na Linux Mint 21.3, Audacity 3.6 alpha (currently issue!), for tty, lang=cs

We are waiting for OpenVino to be fixed after Audacity 3.6 alpha has been released.

The clone git copies the latest version!!!

The shell or terminal command are commented with Czech lang.

We are waiting to the compatibility fix in OpenVino for linux, to continue 06-03-2024 (3.6.2024). 

 

If U are Mint 21.3 (which is derived from Ubuntu 22) see my version of install_dependencies.sh:

https://pastebin.com/BPjN7vcP

 

# INSTALACE A KOMPILACE OPENVINO (Červen 2024) A AUDACITY 3.6 pro Linux Mint 21.3
# Co je třeba: 1) OpenVino toolkit
#              2) OpenVino Tokenizer
#              3) OpenVino pro linux
#              4) editovat OpenVino Toolkit install_dependencies/install_dependencies.sh, který je v toolkitu - Ubuntu 20 odpovídá linuxmint21.3
# https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.0/linux
# https://storage.openvinotoolkit.org/repositories/openvino_tokenizers/packages/2024.0.0.0/
# https://github.com/intel/openvino-plugins-ai-audacity/issues/223
# https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.0/linux
# Instrukce jsem převzal z readme: https://github.com/intel/openvino-plugins-ai-audacity/blob/43de3af6087480ab2030404aba3f122fafa9bd73/doc/build_doc/linux/README.md

mv ~/Stažené/audacity-linux-*_64.AppImage ~/AppImage/
chmod 755 audacity
./audacity-linux-3.5.1-x64.AppImage
mv ~/Stažené/audacity-linux-*.AppImage ~/AppImage/
cd ~/AppImage
nano ~/.local/share/applications/audacity.desktop

cat << EOF > ~/.local/share/applications/audacity.desktop
[Desktop Entry]
Version=1.0
Name=Audacity
Comment=Free, open source, cross-platform audio software
Exec=/home/user/AppImage/audacity-linux-3.2.1-x86_64.AppImage
Icon=audacity
Terminal=false
Type=Application
Categories=AudioVideo;Audio;Recorder;Multimedia;
EOF

# Příprava na instalaci OpenVino a jeho pluginů
# Audacity budu připravovat v ~/Audacity
# Vše pro OpenVino bude ve složce ~/OpenVino

sudo apt update
sudo apt-get install -y build-essential cmake git python3-pip
sudo pip3 install conan
sudo apt-get install libgtk2.0-dev libasound2-dev libjack-jackd2-dev uuid-dev

# OpenVino částečně používá opencl
sudo apt install ocl-icd-opencl-dev

sudo wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-get install gnupg
echo "deb https://apt.repos.intel.com/openvino/2024 ubuntu22 main" | sudo tee /etc/apt/sources.list.d/intel-openvino-2024.list
cat /etc/apt/sources.list.d/intel-openvino-2024.list

apt-cache search openvino
sudo apt install openvino-2024.1.0
sudo apt install openvino
cd OpenVino
tar xvf l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64.tgz
cd l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64
sudo -E ./install_openvino_dependencies.sh
read -p "For mint user different open vino dep install.sh"
xed .bash_h*
tar xzvf openvino_tokenizers_ubuntu22_2024.0.0.0_x86_64.tgz
unzip libtorch-cxx11-abi-shared-with-deps-2.1.1+cpu.zip
export LIBTORCH_ROOTDIR=/home/user/OpenVino/libtorch

cd audacity-build
make -j`nproc`

cd OpenVino
# Stáhnout aktuální verzi pro Audacity 3.6
git clone https://github.com/intel/openvino-plugins-ai-audacity.git
cd ../Audacity/audacity
read -p "Press a key to continue"

tar xvf l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64.tgz
cd ~/OpenVino/l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64/install_dependencies
cd ..

# whisper přijde stáhnout do složky OpenVino
cd ~/OpenVino
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
git checkout v1.5.4

# source /home/user/OpenVino/l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64/setupvars.sh
source $(readlink -f set*)
export LIBTORCH_ROOTDIR=/home/user/OpenVino/libtorch
cd ..
# Create build folder
mkdir whisper-build
cd whisper-build
# Run CMake, specifying that you want to enable OpenVINO support.
cmake ../whisper.cpp/ -DWHISPER_OPENVINO=ON
# Build it:
make -j 4
# Install built whisper collateral into a local 'installed' directory:
cmake --install . --config Release --prefix ./installed
cd /home/user/OpenVino/whisper-build
export WHISPERCPP_ROOTDIR=/home/user/OpenVino/whisper-build/installed
export LD_LIBRARY_PATH=${WHISPERCPP_ROOTDIR}/lib:$LD_LIBRARY_PATH
git clone https://github.com/audacity/audacity.git
mkdir ~/Audacity/audacity-build
ls ~/Audacity/audacity
read -p "Press a key to continue"
cd ~/Audacity/audacity-build
cmake -G "Unix Makefiles" ../audacity -DCMAKE_BUILD_TYPE=Release
# build it
make -j`nproc`

# Try audacity if you want...
Release/bin/audacity
export LIBTORCH_ROOTDIR=/home/user/OpenVino/libtorch
source /home/user/OpenVino/l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64/setupvars.sh
cd /home/user/OpenVino/whisper-build/installed
ls
read -p "Press a key to continue"
cd /home/user/OpenVino/whisper-build/make -j 4
cmake --install . --config Release --prefix ./installed

export WHISPERCPP_ROOTDIR=/home/user/OpenVino/whisper-build/installed
export LD_LIBRARY_PATH=${WHISPERCPP_ROOTDIR}/lib:$LD_LIBRARY_PATH
export LIBTORCH_ROOTDIR=/home/user/OpenVino/libtorch
source /home/user/OpenVino/l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64/setupvars.sh
ls
read -p "Press a key to continue"
cd installed
cd ~/Audacity/audacity-build
cmake -G "Unix Makefiles" ../audacity -DCMAKE_BUILD_TYPE=Release
make -j`nproc`

vvv

Štítky

.profile adm AI alfa transparence AND any aplikace asociativní pole atomicity audio awk bash benchmark bezpečnost biblehub BJT boolean buffering Cache-Conrol Cloudflare code Collector Cut-off colorpicker compare cookies css CSS3 curl cut čas data loss data lost data transfer reliability datasheet datetime.strptime development dioda diody EBO Emitter Cut-off Current ETag exclude exec Expires fflock fflush ffmpeg file read file write file_get_contents file_get_contents/file_put_contents file_put_contents filter find first_install.sh flock Fly-back dioda font-face fóra fotorezistor fread functions funkce fwrite gate gate drive geolokace gradient-background grep grub grub update hebrejština history hlavičky HS html html 5 https hudba charakterizace chroot ICES IGBT img sizes img srcset impedance implementace imshow inference inrush current install jalový výkon javascript javescript jednocení seznamů js kapacita součástek koeficient zesílení komunikace se serverem konfigurace Krita KSF Last-Modified lazy caching led LEFT JOIN librosa ligatury linux list log manuál masky matplotlib Max-Age measure memory měření MFCC MFCC koeficienty mint míry modules moralizace morphologie MOSFET mount moviepy mysql náběhový proud napěťová ochrana návod nel Network Error Logging NLP not nth-child oblékání ochrana okruhy přátel OpenVINO IR formát optočlen ořezové masky OSHB otázky otázky_jazyky otázky_moralismu_řešení parsování path personifikace photorec php php 4 php 5 php 6 php 7 php 8 phpbb phpBB3 pitch PN přechody pnp pole práva profilování program prune průraz přepěťová ochrana přepolování pseudokódd PWM regulátory pydub python python3 pytorch RBE RDSon read reaktance rectifier regulace vstupního napětí relyability replace restore reverzní geolokace RIGHT JOIN rm role rozvržení disků pro OS linux a data databází řešení samba sdílení Sec-Fetch-Dest Sec-Fetch-Mode Sec-Fetch-Site Sec-Fetch-User Secure Shell sed Set Cookie shunt schottka skript sloupce song sort soubory soundfile spínané zdroje spínání split SQL ssh stabilizace napětí stahování stream string strojové učení stropové učení syntax T5 tabulky tepelná ztráta test text-shadow thermal runaway time timestamp tkinter tr transistor transition tranzistor tranzistory tuple tvorba otázek TVS účiník update va charakteristika Vgs video Vth vynechání adresářů vývoj while wrapovací funkce XOR zdánlivý výkon zdroj zenerka zenerovo napětí zip zip archiv zkratky zpomalení zpracování textu Žalmy