Nepoužívejte Anaconda: Jak nastavit slušné prostředí strojového učení?

Nastavení slušného a robustního prostředí strojového učení s Miniconda ve Windows / Linuxu.

Anaconda je nadýmaná. Dodává se s instalační velikostí přes 2 gigabajty a také nainstaluje spoustu softwaru, který normálně nepoužíváme, jako je Python IDE: Spyder. (Myslím, že je to už 2020, kdo nepoužívá VS kód?)

Po více než měsíčním hraní s mým strojovým učebním prostředím jsem přišel s následujícími instrukcemi a technikami, které vám pomohou nastavit slušné a moderní prostředí Pythonu ke studiu strojového učení bez zbytečného rušení vašeho aktuálního místního prostředí dev. přejděte na svůj výzkumný projekt, diplomovou práci atd.

Poznámka editora: Toto je část mého osobního strojového učení Wiki, kde předvádím celý svůj proces učení na protikladných příkladech, což je směr výzkumu mé diplomové práce. Osobně si myslím, že tato konkrétní část mé Wiki je užitečná, a proto jsem ji uspořádal do samostatného článku, který právě čtete. Více se dozvíte na: Adversarial Attacks Targeted on Neural Networks - Spencer's Wiki.

Než začneme, mějte na paměti, že bude nejlepší, pokud byste měli začít svou cestu do strojového učení v prostředí * NIX, jako je Linux. Pokračujme.

Instalace Anaconda (Miniconda)

Počkej co? Neřekli jsme jen, že nebudeme používat Anacondu? Ano, nebudeme přesně používat Anacondu. Namísto toho nainstalujeme Miniconda - neflokovanou verzi Anaconda. Vztah mezi Anaconda, Miniconda a Conda je nejlépe vysvětlen zde: Definitivní průvodce prostředími Conda - Směrem k datové vědě. Stručně řečeno, Conda je nástroj pro správu závislostí Pythonu a vytváření virtuálních prostředí, Anaconda i Miniconda zahrnuje Condu, ale Anaconda je mnohem větší než Miniconda a obsahuje zbytečné komponenty.

Poznámka: Nebudete muset instalovat Python předem, protože Miniconda bude spravovat a instalovat vyhrazenou verzi Pythonu, kterou budete potřebovat. Instalace jiného Pythonu než předinstalovaného systému může vést k problematickým problémům.

Stažení instalačního programu

Windows: V systému Windows máme užitečný instalační program CLI (nebo správce balíků, pokud chcete): scoop. Pro instalaci softwaru CLI se doporučuje použít kopeček. Zde je můj úvod do programu scoop - správce balíčků systému Windows: 用 一行 代码 」搞定 软件 安装 卸载 , 用 Scoop 管理 你 的 Windows 软件.

Nejprve nainstalujte lopatku a přidejte kbelík navíc:

# Nainstalujte kopii iwr -useb get.scoop.sh | iex
# Přidat kbelík s doplňky kbelík s lopatkou přidat doplňky

Poté nainstalujte Miniconda pomocí následujícího příkazu:

scoop install miniconda3

A máme hotovo! Je to tak snadné.

Instalační program Miniconda pro Windows si můžete samozřejmě také stáhnout přímo na jeho oficiálních webových stránkách, ale je to v zásadě stejné jako při použití kopečky a nebudete se muset vypořádat s proměnnými prostředí a dalšími nepříjemnostmi.

Instalační program Miniconda Windows

Linux: Miniconda nepřichází s verzí spravovanou správcem balíků (tj. APT: Ubuntu's Advanced Package Tool. Podívejte se zde: Dev na Windows s WSL - CLI - APT). K jeho instalaci použijeme oficiální instalační skript.

Nejprve jděte na domovskou stránku Minicondy: Docs »Miniconda, a načtěte odkaz na nejnovější verzi Miniconda vydanou s Pythonem 3 na Linuxu:

Výběr instalačního skriptu pro Miniconda: Linux 64-bit s Python 3

S odkazem instalačního programu zkopírovaným do vaší schránky můžeme jednoduše stáhnout následující příkaz a stáhnout instalační program:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

Příkaz stáhne instalační skript pomocí wgetu. Pak můžeme spustit skript s bash:

Spuštění skriptu přes bash

Budete vyzváni, abyste si prohlédli licenci Miniconda a zahájili proces instalace zadáním „ano“ do terminálu.

Poznámka: Tento instalační proces může vyžadovat verzi Pythonu nainstalovanou do systému, kterou nebudeme používat. Pokud se však instalační program stěžuje, že nedokáže najít funkční verzi Pythonu, můžeme si jednu nainstalovat spuštěním sudo apt install python3.

Řešení problémů po instalaci

Windows: Vzhledem k tomu, že budeme používat PowerShell, musíme nejprve inicializovat condu v uživatelské konfiguraci PowerShell:

conda init powerhell

Tento příkaz ve skutečnosti vytvoří konfigurační soubor PowerShell uvnitř vaší konfigurační složky uživatele PowerShell, která obvykle leží uvnitř ~ \ Documents \ WindowsPowerShell \ profile.ps1, a v mém případě vloží do konfiguračního souboru následující kód:

#region conda inicializovat # !! Obsah tohoto bloku je řízen 'conda init' !!
(& "C: \ Users \ Spencer \ scoop \ apps \ miniconda3 \ current \ Scripts \ conda.exe" "shell.powershell" "hook") | Out-String | Vyvolání výrazu
#endregion

Zavřete a znovu otevřete PowerShell a uvidíte, jak se Miniconda projeví:

Miniconda v PowerShell

Linux: Pokud je vše úspěšně nastaveno podle výchozích konfigurací, existuje velká šance, že skončí bez spustitelného programu Conda, protože instalační program si myslí, že ve výchozím nastavení používáme bash a jdeme změnit .bashrc, zatímco většina z nás používá místo toho ryby nebo ryby.

Zásobník Minicondy a samotný nástroj conda najdete zde: ~ / miniconda3 / bin. Budeme muset spustit instanci Miniconda ručně úpravou konfiguračního souboru našeho shellu. (To bude ~ / .zshrc pro zsh a ~ / .config / fish / config.fish pro ryby.)

Spusťte následující příkaz vyvoláním spustitelného programu conda jeho úplnou cestou:

~ / miniconda3 / bin / conda init {THE_SHELL_YOU_USE}
Běh „conda init fish“ přes celou cestu

V mém případě conda init ryba ve skutečnosti přidala do mého shellu následující obsah:

# >>> conda inicializovat >>> # !! Obsah tohoto bloku je řízen 'conda init' !!
eval / home / spencer / miniconda3 / bin / conda "shell.fish" "hook" $ argv | zdroj
# <<< conda inicializovat <<

Zavřete a znovu otevřete terminál a uvidíte, jak se Miniconda projeví:

Zelený kruh s textem „base“ znamená, že jsme aktivovali základní prostředí Conda

Oba OS: Conda se ve výchozím nastavení inicializuje a aktivuje „základní“ prostředí Conda, ale já osobně nechci skutečně aktivovat prostředí Conda, kdykoli otevřu terminál. Tuto funkci můžeme deaktivovat a aktivovat Condu ručně pokaždé, když chceme vstoupit do conda prostředí vyvoláním následujícího příkazu:

conda config --set auto_activate_base false

K řízení našeho projektu používáme Condu

Po instalaci Condy použijeme následující:

  • Vytvořte nové virtuální prostředí pro hostování našeho jednoduchého projektu strojového učení
  • Nainstalujte si náš rámec pro učení se sousedním strojům: TensorFlow a Keras, uvnitř našeho virtuálního prostředí
  • Nainstalujte si náš velmi užitečný vědecký notebook pro psaní a vývoj strojového kódu učení: Juypter Notebook

S pomocí několika příkazů. Začněme.

Vytvoření nového virtuálního prostředí

Předtím vytvořme složku, která bude obsahovat všechny naše kódové soubory.

# Vytvoření adresáře s názvem adversarial-útoky mkdir adversarial-útoky
# Navigace do adresáře cd adversarial-útoky

Dále vytvoříme virtuální prostředí, které pomůže spravovat náš kód a projekt. Pokud se chystáte nasadit vaše prostředí na různých strojích na různých platformách, je nejlepší praxí vytvořit prostředí.yml pro definování názvu našeho prostředí, závislostí, kanálů a dalších. Tímto způsobem se nebudeme muset vypořádat s nekompatibilními závislostmi na různých OS.

Vytvořte soubor s názvem environment.yml v kořenovém adresáři naší složky projektu a uvnitř musíme definovat:

  • Název našeho prostředí: jméno
  • Který kanál Conda nainstaluje naše závislosti z: kanálů
  • Jaké závislosti Conda skutečně nainstaluje: závislosti

Na konci dne bude naše environment.yml něco podobného:

název: adversarial-útoky kanály: - výchozí závislosti: - python - tensorflow - numpy - matplotlib - pylint - autopep8 - notebook
environment.yml

Vidíme, že jsem definoval název našeho prostředí jako protivníky, a přidal některé základní závislosti, které jsou pro náš projekt zásadní. Poté můžeme vytvořit naše prostředí a nainstalovat všechny naše závislosti na tomto souboru pomocí následujícího příkazu:

conda env create --file environment.yml

Poté, co úspěšně vytvoříme naše virtuální prostředí, můžeme jej aktivovat pomocí:

conda aktivujte adversarial-útoky # nebo název vašeho prostředí

Pokud chcete do svého prostředí přidat závislosti, jednoduše je přidejte přímo do souboru environment.yml a aktualizujte své prostředí pomocí:

conda env update --file environment.yml

Deaktivovat pomocí:

conda deaktivovat

Spuštění notebooku Jupyter

Spusťte Jupyter Notebook z příkazového řádku:

# Spuštění výchozího prohlížeče současně, nebo ... jupyter notebook
# Spouští se pouze notebook server (Při spuštění uvnitř WSL) jupyter notebook - no-browser
Spuštění Jupyter Notebooku a přístup k němu z Chromu
Poznámka: Při spuštění uvnitř WSL se příkazový notebook jupyter ve skutečnosti pokouší vyvolat výchozí prohlížeč uvnitř Windows, ale tragicky selže. Doporučujeme přidat příkaz --no-browser a adresu URL zkopírovat ručně.

Používání VS kódu jako našeho pracovního stolu

VS Code je úžasný editor kódu, který můžeme použít jako hlavní vývojové prostředí Pythonu. Osobně používám VS kód pro téměř každý projekt, který mám, ať už je to Rust, Go, Node.js nebo něco jiného. A co víc, pokud se pokoušíte používat WSL, můžete připojit váš VS kód na straně Windows k vašemu prostředí Ubuntu WSL pomocí pluginu nazvaného Remote - WSL. Více informací naleznete zde: Vývoj v WSL | IsVisual Studio Code - Dev ve Windows s WSL.

Pak nainstalujte Anaconda Extension Pack, který obsahuje kopii nezbytného rozšíření Python a jazykovou podporu pro YAML.

VS Code Anaconda Extension Pack

Nyní budete moci kódovat, spouštět, ladit a spouštět soubory Pythonu. Nyní můžete také spustit Notebook Jupyter přímo uvnitř VS kódu.

Spuštění notebooku Jupyter přímo uvnitř VS kódu jako PRO!

To je vše. Tento tutoriál v podstatě pokrývá vše, co potřebujete při nastavování vývojového prostředí Anaconda a pomocí prostředí.yml budeme moci snadno migrovat naše prostředí přes různé OS a platformy. Děkuji za přečtení.