Vhodná distribuce pro hrátky s AI (Real-ESRGAN)

Wasper

  • ***
  • 122
    • Zobrazit profil
    • E-mail
Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« kdy: 18. 12. 2022, 11:44:49 »
Zdravíčko vespolek,
Po třech dnech částečných neúspěchů přicházím s prosíkem o vynadání do lam a radu, jak to dělat správně.

Začal jsem si hrát s $SUBJ - https://github.com/xinntao/Real-ESRGAN . To, že to nejde na CPU jsem zjistil poměrně rychle, vyřešil jsem to přidáním 250GB SSD do herního kompu, kde mám nVidii 1650, nainstaloval čistý Debian 11, a začal si hrát, a narážím na jeden problém za druhým.
Nainstalovat cuda nebyl problém, pak jsem postupoval přesně podle zadání - Python, Miniconda, Pytorch, git clone ... podle postupu, vše OK.
Tak se těším, že pustím podle návodu, a dostavilo se dependency hell v Pythoním provedení, změna API v TorchVision 0.13., pak bylo potřeba ještě opravit načítání monochromu. To jsem po složitém kachnění nakonec odignoroval (a pak i opravil), ale stejně jsem se dostal k tomu, že polovina "upscalnutých" obrázků byla černých.

Postupně jsem prošel několika reinstalacemi, různými downgrady PyTorch, Pythona i OpenCV, pak už i komplet reinstallem, downgrade na Debian 10 (Python 3.7), pokus na Slackware 15 - v jedné konkrétní konfiguraci s dowgradnutým TorchVision mi to fungovalo na všechny vzorové obrázky, ale už jsem nedokázal zreplikovat, jak se k ní dostat. A když jsem v ní zkusil síť trénovat, tak stejně se to vyhroutilo.

Co se týče černých obrázků, došel jsem až na opencv - Obrázek se na cv2.imread() načetl správně (byly vidět v print(img) nenulové pixely i rozměr), až na to, že na cv2.imshow(img) to opět ukázalo černé okno. Dokachněno že v opencv 4.3.xxx byla podobná chyba, tak jsem zkoušel několik různých verzí, bez jakéhokoli úspěchu, všude černo.

Tak bych se rád zeptal - poradíte linuxovou distribuci, na které Vám to funguje na první dobrou? Případně setkali jste se s podobnými chybami a podařilo se vám je nějak překonat?


_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #1 kdy: 18. 12. 2022, 19:09:43 »
Podle mě to dneska není o distribuci, pokud má nové nvidia drivery (nebo jdou doinstalovat), 1650 už je dost stará takže bude mít drivery všude, a teda cudu ve správné verzi. Dneska se to dělá tak, že se používá virtualenv (a nějaké conda věci, čemuž nerozumím, ale asi to je kvůli tomu aby člověk mohl mít i různé verze Pythonu - 3.7, 3.10…), takže pak je to čistě pythoní dependency hell nesouvisející s distribucí. A cuda, pokud potřebuješ obskurní verzi, se řeší tak že se to celé udělá v dockeru…

A jinak AI lidé typicky používají Ubuntu, ale já jsem všude nasazoval Debian a normálně to funguje.

Wasper

  • ***
  • 122
    • Zobrazit profil
    • E-mail
Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #2 kdy: 18. 12. 2022, 21:31:58 »
A jinak AI lidé typicky používají Ubuntu, ale já jsem všude nasazoval Debian a normálně to funguje.
Díky, testnu to Ubu. Jako s cuda problém nemám, ta se inicializuje i počítá dobře na první dobrou, ale s tím Pythonem a jeho závislostmi zápasím fest. + s tím, že máloco vůbec napíše, co se tomu vlastně nelíbí :-(

BzF

Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #3 kdy: 19. 12. 2022, 00:13:16 »
A použít přímo tu all-in-one binárku https://github.com/xinntao/Real-ESRGAN#portable-executable-files-ncnn jste zkoušel?

Wasper

  • ***
  • 122
    • Zobrazit profil
    • E-mail
Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #4 kdy: 19. 12. 2022, 12:01:06 »
A použít přímo tu all-in-one binárku https://github.com/xinntao/Real-ESRGAN#portable-executable-files-ncnn jste zkoušel?
Dobrý hint, binárka naprosto v pohodě (v rámci možností, nemá face_enhance, každopádně vše načítá a zpracovává - nVidia, cuda a okolo jsou mimo vinu).
BTW na Ubuntu 22.04 stejný problém, tam někde něco chybí, až na to, že to žádný error nepíše. Ještě tomu dám večer čas s strace.


Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #5 kdy: 19. 12. 2022, 19:22:07 »
Dobrý deň.

Problémy, ktoré popisujete nie sú úplne doménou distribúcie, ale nesprávnej práce s datami. Čierne okno v opencv zväčša znamená nesprávny rozsah dát, skúste vynásobiť dáta 255 alebo použite imshow z knižnice matplotlib, ktorý má lepšie defaultné škálovanie.

Ako distribúciu pre AI by som volil Ubuntu 20.04 | Ubuntu 22.04, ale prakticky je to jedno. Ak smiem doporučiť, tak nemiesto venv alebo systémového interpreta, použite condu pre správu pythonu, inštalácia sa stane jednoduchšou. Pre PyTorch naviac nie je potreba inštalácie CUDA, tá je zabalená už v inštalačnom balíku.

Python voľte aspoň vo verzii 3.9, bežne používam 3.10 a nezaznamenal som problémy.

Držím palce.

Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #6 kdy: 19. 12. 2022, 20:19:43 »
conda

nebo miniconda

Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #7 kdy: 20. 12. 2022, 09:24:54 »
conda

nebo miniconda

velcí kluci používají mambu nebo micromambu.

Já tohle rád dělám v Nixos, škoda, že je pro nováčky tak strašně nedostupný a složitý.

Wasper

  • ***
  • 122
    • Zobrazit profil
    • E-mail
Re:Vhodná distribuce pro hrátky s AI (Real-ESRGAN)
« Odpověď #8 kdy: 26. 03. 2023, 05:15:45 »
Tak protože bývá zvykem, pokud se podaří problém vyřešit se podělit o výsledek, tak jsem tu.
Celý problém byl nakonec v Nvidia GTX1650, která by správně měla umět fp16, ale neumí. S původní kartou se vše rozběhlo (před chvílí, tehdy jsem to vzdal) se switchem --fp32.

To vysvětluje i to, že nic z výše popsaných problémů nebyl problém distribuce. Ach jo, alespoň error to napsat mohlo...