Data Science

Výukový program Python Tensorflow

Výukový program Python Tensorflow
V této lekci se podíváme na TensorFlow, což je knihovna strojového učení s otevřeným zdrojovým kódem používaná k navrhování, vytváření a trénování modelů hlubokého učení. Je možné provádět numerické výpočty s knihovnou TensorFlow, které grafy toku dat, ve kterých jsou matematické operace reprezentovány jako uzly a data jsou reprezentována jako hrany mezi těmito uzly.

Celkově se v této lekci budeme zabývat třemi hlavními tématy:

  1. Co jsou Tensors a TensorFlow
  2. Aplikování ML algoritmů s TensorFlow
  3. Případy použití TensorFlow

TensorFlow je vynikající balíček Pythonu od společnosti Google, který dobře využívá paradigma programování toku dat pro vysoce optimalizované matematické výpočty. Některé z funkcí TensorFlow jsou:

Díky všem těmto funkcím a řadě algoritmů strojového učení je TensorFlow implementací, což z ní dělá knihovnu produkčního měřítka. Pojďme se ponořit do konceptů v TensorFlow, abychom si mohli hned zašpinit ruce kódem.

Instalace TensorFlow

Protože budeme využívat Python API pro TensorFlow, je dobré vědět, že funguje s oběma Python 2.7 a 3.3+ verze. Pojďme si nainstalovat knihovnu TensorFlow, než přejdeme ke skutečným příkladům a konceptům. Existují dva způsoby instalace tohoto balíčku. První zahrnuje použití správce balíčků Pythonu, pip:

pip nainstalujte tensorflow

Druhý způsob se týká Anacondy, balíček můžeme nainstalovat jako:

conda install -c conda-forge tensorflow

Neváhejte hledat noční verze a verze GPU na oficiálních instalačních stránkách TensorFlow.

U všech příkladů v této lekci budu používat správce Anaconda. Stejným způsobem spustím notebook Jupyter:

Nyní, když jsme připraveni se všemi dovozními příkazy napsat nějaký kód, pojďme se ponořit do balíčku SciPy s několika praktickými příklady.

Co jsou tenzory?

Tenzory jsou základní datové struktury používané v Tensorflow. Ano, jsou to jen způsob, jak reprezentovat data v hlubokém učení. Pojďme si je zde představit:

Jak je popsáno na obrázku, tenzory lze označit jako n-rozměrné pole což nám umožňuje reprezentovat data ve složitých dimenzích. Každou dimenzi můžeme v hlubokém učení považovat za jinou vlastnost dat. To znamená, že Tensors mohou vyrůst jako poměrně složité, pokud jde o složité datové sady s mnoha funkcemi.

Jakmile víme, co jsou Tensors, myslím, že je docela snadné odvodit, co se stane v TensorFlow. Tyto pojmy znamenají, jak v datových sadách mohou proudit tenzory nebo funkce, které produkují hodnotný výstup, když na něm provádíme různé operace.

Porozumění TensorFlow s konstantami

Jak jsme si přečetli výše, TensorFlow nám umožňuje provádět algoritmy strojového učení na Tensorech a vytvářet hodnotný výstup. S TensorFlow je návrh a trénink modelů Deep Learning přímočarý.

TensorFlow je dodáván s budovou Výpočetní grafy. Výpočtové grafy jsou grafy toku dat, ve kterých jsou matematické operace reprezentovány jako uzly a data jsou reprezentována jako hrany mezi těmito uzly. Napíšeme velmi jednoduchý fragment kódu, který poskytne konkrétní vizualizaci:

importovat tensorflow jako tf
x = tf.konstantní (5)
y = tf.konstantní (6)
z = x * y
tisk (z)

Když spustíme tento příklad, uvidíme následující výstup: When we run this example, we will see the following output:

Proč je násobení špatné? To nebylo to, co jsme očekávali. Stalo se to proto, že takto nemůžeme provádět operace s TensorFlow. Nejprve musíme začít a zasedání aby výpočetní graf fungoval,

U relací můžeme zapouzdřit řízení provozu a stavu tenzorů. To znamená, že relace může také uložit výsledek výpočtového grafu, aby mohl tento výsledek předat další operaci v pořadí provedení potrubí. Vytvořme nyní relaci, abychom získali správný výsledek:

# Začněte s objektem relace
relace = tf.Zasedání()
# Poskytněte výpočet relaci a uložte ji
výsledek = relace.běh (z)
# Vytiskněte výsledek výpočtu
tisk (výsledek)
# Uzavřít relaci
zasedání.zavřít()

Tentokrát jsme relaci získali a poskytli jí výpočet, který potřebuje k běhu na uzlech. Když spustíme tento příklad, uvidíme následující výstup: When we run this example, we will see the following output:

Přestože jsme obdrželi varování od TensorFlow, stále jsme dostali správný výstup z výpočtu.

Jednoprvkové tenzorové operace

Stejně jako to, co jsme v posledním příkladu znásobili dva konstantní Tensory, máme v TensorFlow mnoho dalších operací, které lze provést na jednotlivých prvcích:

Single-element operations means that even when you provide an array, the operations will be done on each of the element of that array. Například:

importovat tensorflow jako tf
importovat numpy jako np
tenzor = np.pole ([2, 5, 8])
tenzor = tf.convert_to_tensor (tensor, dtype = tf.float64)
s tf.Session () jako relace:
tisk (relace.běh (tf.cos (tenzor)))

Když spustíme tento příklad, uvidíme následující výstup: When we run this example, we will see the following output:

Pochopili jsme zde dva důležité pojmy:

  1. Libovolné pole NumPy lze snadno převést na Tensor pomocí funkce convert_to_tensor
  2. Operace byla provedena u každého z prvků pole NumPy

Zástupné symboly a proměnné

V jedné z předchozích částí jsme se podívali na to, jak můžeme použít konstanty Tensorflow k vytváření výpočetních grafů. Ale TensorFlow nám také umožňuje přijímat vstupy za běhu, takže výpočetní graf může mít dynamickou povahu. To je možné pomocí zástupných symbolů a proměnných.

Ve skutečnosti zástupné symboly neobsahují žádná data a musí být za běhu poskytnuty platné vstupy a podle očekávání bez zadání vygenerují chybu.

Zástupný symbol lze v grafu označit jako dohodu, že za běhu bude jistě poskytnut vstup. Zde je příklad zástupných symbolů:

importovat tensorflow jako tf
# Dva zástupné symboly
x = tf. zástupný symbol (tf.float32)
y = tf. zástupný symbol (tf.float32)
# Přiřazení operace násobení w.r.t. A & b do uzlu mul
z = x * y
# Vytvořte relaci
relace = tf.Zasedání()
# Předejte hodnoty pro placehollders
výsledek = relace.běh (z, x: [2, 5], y: [3, 7])
print ('Násobení x a y:', výsledek)

Když spustíme tento příklad, uvidíme následující výstup: When we run this example, we will see the following output:

Nyní, když máme znalosti o zástupných symbolech, se zaměřme na Variables. Víme, že výstup rovnice se může v průběhu času měnit pro stejnou sadu vstupů. Když tedy trénujeme naši proměnnou modelu, může časem změnit své chování. V tomto scénáři nám proměnná umožňuje přidat tyto trénovatelné parametry do našeho výpočetního grafu. Proměnnou lze definovat takto:

x = tf.Proměnná ([5.2], dtype = tf.float32)

Ve výše uvedené rovnici je x proměnná, která poskytuje svoji počáteční hodnotu a datový typ. Pokud neposkytneme datový typ, odvodí jej TensorFlow s jeho počáteční hodnotou. Zde se podívejte na datové typy TensorFlow.

Na rozdíl od konstanty musíme pro inicializaci všech proměnných grafu zavolat funkci Pythonu:

init = tf.global_variables_initializer ()
zasedání.spustit (init)

Než použijeme náš graf, nezapomeňte spustit výše uvedenou funkci TensorFlow.

Lineární regrese s TensorFlow

Lineární regrese je jedním z nejběžnějších algoritmů používaných k navázání vztahu v daných kontinuálních datech. Tento vztah mezi souřadnými body, řekněme xay, se nazývá a hypotéza. Když mluvíme o lineární regrese, hypotéza je přímka:

y = mx + c

Zde m je sklon přímky a zde je to vektor představující závaží. c je konstantní koeficient (průsečík y) a zde představuje Zaujatost. Hmotnost a předpětí se nazývají parametry modelu.

Lineární regrese nám umožňuje odhadnout hodnoty hmotnosti a zkreslení tak, že máme minimum nákladová funkce. Nakonec x je nezávislá proměnná v rovnici a y je závislá proměnná. Nyní pojďme začít stavět lineární model v TensorFlow pomocí jednoduchého fragmentu kódu, který vysvětlíme:

importovat tensorflow jako tf
# Proměnné pro sklon parametru (W) s počáteční hodnotou 1.1
W = tf.Proměnná ([1.1], srov.float32)
# Proměnná pro zkreslení (b) s počáteční hodnotou -1.1
b = tf.Proměnná ([- 1.1], srov.float32)
# Zástupné symboly pro zadání vstupu nebo nezávislé proměnné, označené x
x = tf.zástupný symbol (tf.float32)
# Rovnice přímky nebo lineární regrese
linear_model = W * x + b
# Inicializace všech proměnných
relace = tf.Zasedání()
init = tf.global_variables_initializer ()
zasedání.spustit (init)
# Proveďte regresní model
tisk (relace.běh (linear_model x: [2, 5, 7, 9]))

Zde jsme udělali přesně to, co jsme vysvětlili dříve, pojďme to shrnout zde:

Když spustíme tento příklad, uvidíme následující výstup: When we run this example, we will see the following output:

Jednoduchý fragment kódu poskytuje pouze základní představu o tom, jak můžeme vytvořit regresní model. K dokončení modelu, který jsme postavili, však musíme udělat ještě několik kroků:

Ztráta funkce a ověření modelu

K ověření modelu potřebujeme mít míru míry odchylky aktuálního výstupu od očekávaného výstupu. Existují různé funkce ztráty, které lze zde použít k ověření, ale podíváme se na jednu z nejběžnějších metod, Součet čtvercových chyb nebo SSE.

Rovnice pro SSE je uvedena jako:

E = 1/2 * (t - y) 2

Tady:

Nyní napíšeme fragment kódu v návaznosti na poslední fragment, aby odrážel hodnotu ztráty:

y = tf.zástupný symbol (tf.float32)
chyba = linear_model - r
squared_errors = tf.čtverec (chyba)
ztráta = tf.redukovat_součet (čtvercové chyby)
tisk (relace.běh (ztráta, x: [2, 5, 7, 9], y: [2, 4, 6, 8]))

Když spustíme tento příklad, uvidíme následující výstup: When we run this example, we will see the following output:

Je zřejmé, že hodnota ztráty je pro daný model lineární regrese velmi nízká.

Závěr

V této lekci jsme se podívali na jeden z nejpopulárnějších balíčků Deep Learning and Machine Learning, TensorFlow. Také jsme vytvořili lineární regresní model, který měl velmi vysokou přesnost.

Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...