Brno
na staré a nové verzi služby. pv211
pv211
sodo
bez zadávání hesla.root
je opět pv211
.VirtualBox_Share
.sudo mount ~/_shared_folder/
. Jako první ukázku vyzkoušejte neinteraktivní Minimal ConvNet Wrappers. Kód je připraven v adresáři ~/minimalconvnets/
:
$ ~/minimalconvnets/
$ workon minimalconvnets # Nastavení Python virtuálního prostředí, platí jen pro aktuální terminál!
$ ./analyze_image.py -w resnet_v1_50.ckpt -i dog.jpg
$ ./analyze_image.py -w resnet_v1_50.ckpt -i rabbit.jpg
Můžete vyzkoušet i s jinými obrázky. Využijte možnosti sdílené složky ~/_shared_folder/
mezi hostovaným a hostitelským systémem.
V adresáři ~/deep-visualization-toolbox
je připraven nástroj Deep Visualization Toolbox, která se dá použít pro vizualizaci práce deep learning frameworku Caffe s obrázky:
$ cd ~/deep-visualization-toolbox/
$ ./run_toolbox.py
Po spuštění stiskněte klávesu H
pro nápovědu.
Využijte možnosti snadného předání vlastních obrázků z hostitelského systému:
# Místo Vimu můžete použít libovolný jiný oblíbený editor, např. `nano`.
$ vim ~/deep-visualization-toolbox/settings_local.py
Na konci souboru upravte nastavení tak, aby obsahovalo:
static_files_dir = '/home/pv211/_shared_folder'
Můžete samozřejmě odkazovat na libovolný podadresář ve sdílené složce. Po uložení znovu spusťte Deep Visualization Toolbox:
$ ./run_toolbox.py
Je popsáno v dokumentaci, můžete přímo vyzkoušet:
$ cd ~/deep-visualization-toolbox/
$ ./optimize_image.py --push-layer fc8 --push-channel 130 --decay 0.0001 --blur-radius 1.0 --blur-every 4 --max-iter 1000 --lr-policy constant --lr-params "{'lr': 100.0}"
$ la optimize_results/
Do adresáře ~/deep-visualization-toolbox/optimize_results
se uloží uměle vytvořené obrázky, které výrazně odpovídají představě neuronové sítě o obrázku plameňáka.
Instruujte Deep Visualization Toolbox, aby jako vstup použil tento umělý obrázek a prohlédněte si výsledek:
# Místo Vimu můžete použít libovolný jiný oblíbený editor, např. `nano`.
$ vim ~/deep-visualization-toolbox/settings_local.py
Na konci souboru upravte nastavení tak, aby obsahovalo:
static_files_dir = '/home/pv211/deep-visualization-toolbox/optimize_results/'
Po uložení znovu spusťte Deep Visualization Toolbox:
$ ./run_toolbox.py
Je popsáno v dokumentaci, můžete přímo vyzkoušet:
$ cd ~/deep-visualization-toolbox/find_maxes/
$ workon find_maxex # Nastavení Python virtuálního prostředí, platí jen pro aktuální terminál!
# Pokud dosud nemáte, připojte si sdílenou složku, kde je dostupný malý testovací dataset obrázků
$ sudo mount ~/_shared_folder/
# Najde top-k vysoce relevantních obrázků a poznačí do souboru `_find_max_acts.output`
$ python find_max_acts.py \
../models/caffenet-yos/caffenet-yos-deploy.prototxt \
../models/caffenet-yos/caffenet-yos-weights \
~/_shared_folder/small_set/ \
<(ls -1 ~/_shared_folder/small_set/ | awk '{printf("%s %d\n", $0, NR)}') \
_find_max_acts.output
# Pro nalezené obrázky vygeneruje náhledy žádané vrstvy neuronové sítě pro Deep Visualization Toolbox
$ python crop_max_patches.py \
--do-maxes --do-deconv --do-deconv-norm \
--do-backprop --do-backprop-norm --do-info \
_find_max_acts.output \
../models/caffenet-yos/caffenet-yos-deploy.prototxt \
../models/caffenet-yos/caffenet-yos-weights \
~/_shared_folder/small_set/ \
<(ls -1 ~/_shared_folder/small_set/ | awk '{printf("%s %d\n", $0, NR)}') \
_crop_max_patches.output \
conv1
Příkaz je vhodné zopakovat pro všechny vrstvy sítě, tj. krom parametru conv1
použít také další ze sady
* conv1
* conv2
* conv3
* conv4
* conv5
* fc6
* fc7
* fc8
* prob
Dále je nutné výstupy v adresáři _crop_max_patches.output
spojit do formátu očekávaného Deep Visualization Toolbox (viz např. obsah ~/deep-visualization-toolbox/models/caffenet-yos/unit_jpg_vis
) a uložit např. do ~/deep-visualization-toolbox/models/caffenet-yos/unit_jpg_vis.my_small_set
.
Následně nakonfigurujte a spusťte Deep Visualization Toolbox:
$ cd ~/deep-visualization-toolbox/
# Pokud nyní máte aktivní nějaké Python virtuální prostředí, nejdříve jej deaktivujte
$ deactivate
$ vim ~/deep-visualization-toolbox/settings_local.py
V souboru změně dva parametry:
static_files_dir = '/home/pv211/_shared_folder/small_set'
caffevis_unit_jpg_dir = '%DVT_ROOT%/models/caffenet-yos/unit_jpg_vis.my_small_set'
Po uložení znovu spusťte Deep Visualization Toolbox:
$ ./run_toolbox.py
Pro testování můžeme použít volně dostupné obrázky např. ze serveru Pixabay.
Testovací obrázky ve sdílené složce byly stažení přes Pixabay API (pro použití nutné přihlášení – registrace je zdarma, dá se použít i přihlášení přes Google Account apod.):
# Stažení 200 obrázků králíků
$ curl -L 'https://pixabay.com/api/?key=PUT-YOUR-API-KEY-HERE&q=rabbit&image_type=all&per_page=200' \
| python -m json.tool \
| grep '"webformatURL"' \
| perl -pe 's/^.*"(https.*)_\d+(\....)".*/$1_960$2/g' \
| parallel -vv curl -LO '{}'
# Převod obrázků z PNG do JPG
$ parallel --bar -vv convert {} {.}.jpg\; rm -v {} ::: *.png
Využívá nástrojů GNU Parallel a ImageMagic convert
.