TensorFlow-perusteet: Tensori, muoto, tyyppi, istunnot & Operaattorit

Sisällysluettelo:

Anonim

Mikä on tensori?

Tensorflow'n nimi on johdettu suoraan sen ydinkehyksestä: Tensor. Tensorflow-ohjelmassa kaikki laskelmat sisältävät tensoreita. Tensori on n-ulottuvuuksien vektori tai matriisi, joka edustaa kaiken tyyppisiä tietoja. Kaikilla tensorin arvoilla on identtinen tietotyyppi tunnetulla (tai osittain tunnetulla) muodolla. Datan muoto on matriisin tai matriisin ulottuvuus.

Tensori voi olla peräisin syötetiedoista tai laskennan tuloksesta. TensorFlow-ohjelmassa kaikki toiminnot suoritetaan kaavion sisällä. Kaavio on laskentaryhmä, joka tapahtuu peräkkäin. Kutakin operaatiota kutsutaan op-solmuksi ja ne on kytketty toisiinsa.

Kaavio kuvaa solmujen väliset toiminnot ja yhteydet. Arvoja ei kuitenkaan näytetä. Solmujen reuna on tensori, eli tapa täyttää operaatio tiedoilla.

Koneoppimisessa malleihin syötetään luettelo objekteista, joita kutsutaan ominaisuusvektoreiksi. Ominaisuusvektori voi olla mitä tahansa tietotyyppiä. Ominaisuusvektori on yleensä ensisijainen tulo tensorin täyttämiseen. Nämä arvot virtaavat tensorin läpi op-solmuun, ja tämän operaation / laskennan tulos luo uuden tensorin, jota puolestaan ​​käytetään uudessa operaatiossa. Kaikki nämä toiminnot voidaan tarkastella kaaviossa.

Tässä opetusohjelmassa opit TensorFlow-perusteet, kuten

  • Mikä on tensori?
  • Tensorin edustus
  • Tensorin tyypit
  • Luo n-ulottuvuuden tensori
  • Tensorin muoto
  • Tietotyyppi
  • Operaattorin luominen
  • Jotkut hyödylliset TensorFlow-operaattorit
  • Muuttujat
  • Paikanpitäjä
  • Istunto
  • Kaavio

Tensorin edustus

TensorFlow-ohjelmassa tensori on n-ulottuvuuksien ominaisuusvektorien (eli matriisin) kokoelma. Esimerkiksi, jos meillä on 2x3-matriisi, jonka arvot ovat 1-6, kirjoitamme:

Tensorin edustus

TensorFlow edustaa tätä matriisia seuraavasti:

[[1, 2, 3],[4, 5, 6]] 

Jos luomme kolmiulotteisen matriisin, jonka arvot ovat 1–8, meillä on:

TensorFlow edustaa tätä matriisia seuraavasti:

[ [[1, 2],[[3, 4],[[5, 6],[[7,8] ] 

Huomaa: Tensori voidaan esittää skalaarilla tai sen muoto voi olla yli kolme ulottuvuutta. Korkeamman ulottuvuuden tason visualisointi on vain monimutkaisempaa.

Tensorin tyypit

TensorFlow-ohjelmassa kaikki laskelmat kulkevat yhden tai useamman tensorin läpi. Tf.tensori on objekti, jolla on kolme ominaisuutta:

  • Ainutlaatuinen etiketti (nimi)
  • Ulottuvuus (muoto)
  • Tietotyyppi (dtype)

Jokainen TensorFlow-toiminnolla suoritettava toiminto käsittää tensorin. Voit luoda neljä tensorityyppiä:

  • tf Muuttuja
  • tf. vakio
  • tf.placeholder
  • tf.SparseTensor

Tässä opetusohjelmassa opit luomaan tf.constant ja tf.Variable.

Ennen kuin käymme läpi opetusohjelman, varmista, että aktivoit Conda-ympäristön TensorFlow-ohjelmalla. Nimeimme tämän ympäristön hello-tf: ksi.

MacOS-käyttäjä:

source activate hello-tf 

Windows-käyttäjälle:

activate hello-tf 

Kun olet tehnyt sen, olet valmis tuomaan tensorflow

# Import tfimport tensorflow as tf 

Luo n-ulottuvuuden tensori

Aloitat luomalla tensorin, jolla on yksi ulottuvuus, nimittäin skalaari.

Voit luoda tensorin käyttämällä tf.constant () kuten alla olevassa TensorFlow-tensorin muodon esimerkissä on esitetty:

tf.constant(value, dtype, name = "")arguments- `value`: Value of n dimension to define the tensor. Optional- `dtype`: Define the type of data:- `tf.string`: String variable- `tf.float32`: Float variable- `tf.int16`: Integer variable- "name": Name of the tensor. Optional. By default, `Const_1:0` 

Luo ulottuvuuden 0 tensori suorittamalla seuraava koodi

## rank 0# Default namer1 = tf.constant(1, tf.int16)print(r1)

Tuotos

Tensor("Const:0", shape=(), dtype=int16) 

# Named my_scalarr2 = tf.constant(1, tf.int16, name = "my_scalar")print(r2) 

Tuotos

Tensor("my_scalar:0", shape=(), dtype=int16) 

Jokainen tensori näytetään tensorin nimellä. Jokainen tensoriobjekti määritetään tensorimääritteillä, kuten yksilöllinen tarra (nimi), dimensio (muoto) ja TensorFlow-tietotyypit (dtype).

Voit määrittää tensorin desimaaliarvoilla tai merkkijonolla muuttamalla tietotyyppiä.

# Decimalr1_decimal = tf.constant(1.12345, tf.float32)print(r1_decimal)# Stringr1_string = tf.constant("Guru99", tf.string)print(r1_string) 

Tuotos

Tensor("Const_1:0", shape=(), dtype=float32)Tensor("Const_2:0", shape=(), dtype=string) 

Ulottuvuuden 1 tensori voidaan luoda seuraavasti:

## Rank 1r1_vector = tf.constant([1,3,5], tf.int16)print(r1_vector)r2_boolean = tf.constant([True, True, False], tf.bool)print(r2_boolean) 

Tuotos

Tensor("Const_3:0", shape=(3,), dtype=int16)Tensor("Const_4:0", shape=(3,), dtype=bool) 

Voit huomata, että TensorFlow-muoto koostuu vain yhdestä sarakkeesta.

Jos haluat luoda kahden tensorin mitan, sinun on suljettava suluet jokaisen rivin jälkeen. Tarkista alla oleva Keras Tensorin muodon esimerkki

## Rank 2r2_matrix = tf.constant([ [1, 2],[3, 4] ],tf.int16)print(r2_matrix) 

Tuotos

Tensor("Const_5:0", shape=(2, 2), dtype=int16) 

Matriisissa on 2 riviä ja 2 saraketta, jotka on täytetty arvoilla 1, 2, 3, 4.

Kolmiulotteinen matriisi muodostetaan lisäämällä sulkeisiin toinen taso.

## Rank 3r3_matrix = tf.constant([ [[1, 2],[3, 4],[5, 6]] ], tf.int16)print(r3_matrix) 

Tuotos

Tensor("Const_6:0", shape=(1, 3, 2), dtype=int16) 

Matriisi näyttää kuvalta kaksi.

Tensorin muoto

Kun tulostat tensoria, TensorFlow arvaa muodon. Voit kuitenkin saada tensorin muodon TensorFlow-muoto-ominaisuudella.

Seuraavaksi muodostat matriisin, joka on täynnä lukua 10-15, ja tarkistat m_shape-muodon

# Shape of tensorm_shape = tf.constant([ [10, 11],[12, 13],[14, 15] ])m_shape.shape 

Tuotos

TensorShape([Dimension(3), Dimension(2)]) 

Matriisissa on 3 riviä ja 2 saraketta.

TensorFlow-ohjelmalla on hyödyllisiä komentoja luoda vektori tai matriisi, joka on täynnä 0 tai 1. Esimerkiksi, jos haluat luoda 1-D-tensorin, jonka muoto on 10, täynnä 0, voit suorittaa alla olevan koodin:

# Create a vector of 0print(tf.zeros(10)) 

Tuotos

Tensor("zeros:0", shape=(10,), dtype=float32) 

Omaisuus toimii myös matriisille. Täällä luot 10x10-matriisin, joka on täytetty yhdellä

# Create a vector of 1print(tf.ones([10, 10])) 

Tuotos

Tensor("ones:0", shape=(10, 10), dtype=float32) 

Voit käyttää tietyn matriisin muotoa muodostamaan vektorin niistä. Matriisi m_shape on 3x2-ulotteinen. Voit luoda tensorin, jossa on 3 riviä, jotka on täytetty seuraavalla koodilla:

# Create a vector of ones with the same number of rows as m_shapeprint(tf.ones(m_shape.shape[0])) 

Tuotos

Tensor("ones_1:0", shape=(3,), dtype=float32) 

Jos välität arvon 1 hakasulkeeseen, voit luoda vektorin, joka on yhtä suuri kuin matriisin m_shape sarakemäärä.

# Create a vector of ones with the same number of column as m_shapeprint(tf.ones(m_shape.shape[1])) 

Tuotos

Tensor("ones_2:0", shape=(2,), dtype=float32) 

Lopuksi voit luoda matriisin 3x2 vain yhdellä

print(tf.ones(m_shape.shape)) 

Tuotos

Tensor("ones_3:0", shape=(3, 2), dtype=float32) 

Tietotyyppi

Tensorin toinen ominaisuus on tietotyyppi. Tensorilla voi olla vain yhden tyyppinen data kerrallaan. Tensorilla voi olla vain yhden tyyppisiä tietoja. Voit palauttaa tyypin ominaisuudella dtype.

print(m_shape.dtype) 

Tuotos

 

Joissakin tapauksissa haluat muuttaa tietotyyppiä. TensorFlow-ohjelmassa se on mahdollista tf.cast-menetelmällä.

Esimerkki

Alla kelluva tensori muunnetaan kokonaisluvuksi käyttämällä menetelmää cast.

# Change type of datatype_float = tf.constant(3.123456789, tf.float32)type_int = tf.cast(type_float, dtype=tf.int32)print(type_float.dtype)print(type_int.dtype) 

Tuotos


 

TensorFlow valitsee tietotyypin automaattisesti, kun argumenttia ei määritetä tensorin luomisen aikana. TensorFlow arvaa todennäköisimmät tietotyypit. Esimerkiksi, jos välität tekstin, se arvaa, että se on merkkijono, ja muuntaa sen merkkijonoksi.

Operaattorin luominen

Jotkut hyödylliset TensorFlow-operaattorit

Tiedät kuinka luoda tensori TensorFlow: lla. On aika oppia tekemään matemaattisia operaatioita.

TensorFlow sisältää kaikki perustoiminnot. Voit aloittaa yksinkertaisella. Lasket neliön neliön käyttämällä TensorFlow-menetelmää. Tämä operaatio on yksinkertainen, koska tensorin rakentamiseen tarvitaan vain yksi argumentti.

Luvun neliö muodostetaan siten, että tf.sqrt (x) on x kelluva luku.

x = tf.constant([2.0], dtype = tf.float32)print(tf.sqrt(x)) 

Tuotos

Tensor("Sqrt:0", shape=(1,), dtype=float32) 

Huomaa: Tulos palautti tensoriobjektin eikä tulosta neliön 2 tuloksesta. Esimerkissä tulostetaan tensorin määritelmä eikä toiminnan varsinaista arviointia. Seuraavassa osassa opit, kuinka TensorFlow toimii suoritettaessa toimintoja.

Seuraavassa on luettelo yleisesti käytetyistä toiminnoista. Ajatus on sama. Jokainen operaatio vaatii yhden tai useamman argumentin.

  • tf.add (a, b)
  • tf. tiivistelmä (a, b)
  • tf moninkertaisesti (a, b)
  • tf.div (a, b)
  • tf.pow (a, b)
  • tf.exp (a)
  • tf.sqrt (a)

Esimerkki

# Addtensor_a = tf.constant([[1,2]], dtype = tf.int32)tensor_b = tf.constant([[3, 4]], dtype = tf.int32)tensor_add = tf.add(tensor_a, tensor_b)print(tensor_add) 

Tuotos

Tensor("Add:0", shape=(1, 2), dtype=int32) 

Koodin selitys

Luo kaksi tensoria:

  • yksi tensori, jossa on 1 ja 2
  • yksi tensori 3: lla ja 4: llä

Lisäät molemmat tensorit.

Huomaa : että molemmilla tensoreilla on oltava sama muoto. Voit suorittaa kertomuksen kahden tensorin yli.

# Multiplytensor_multiply = tf.multiply(tensor_a, tensor_b)print(tensor_multiply) 

Tuotos

Tensor("Mul:0", shape=(1, 2), dtype=int32) 

Muuttujat

Toistaiseksi olet luonut vain jatkuvia tensoreita. Sillä ei ole suurta hyötyä. Tiedot saapuvat aina erilaisilla arvoilla, jotta voit tallentaa tämän, voit käyttää Variable-luokkaa. Se edustaa solmua, jossa arvot muuttuvat aina.

Voit luoda muuttujan tf.get_variable () -menetelmällä

tf.get_variable(name = "", values, dtype, initializer)argument- `name = ""`: Name of the variable- `values`: Dimension of the tensor- `dtype`: Type of data. Optional- `initializer`: How to initialize the tensor. OptionalIf initializer is specified, there is no need to include the `values` as the shape of `initializer` is used. 

Esimerkiksi alla oleva koodi luo kaksiulotteisen muuttujan, jolla on kaksi satunnaista arvoa. Oletuksena TensorFlow palauttaa satunnaisen arvon. Nimeät muuttujan var

# Create a Variable## Create 2 Randomized valuesvar = tf.get_variable("var", [1, 2])print(var.shape) 

Tuotos

(1, 2) 

Toisessa esimerkissä luot muuttujan, jossa on yksi rivi ja kaksi saraketta. Sinun on käytettävä muuttujan ulottuvuutta [1,2]

Tämän tensorin nimikirjaimet ovat nolla. Esimerkiksi kun koulutat mallia, sinulla on oltava alkuarvot ominaisuuksien painon laskemiseksi. Alla asetat nämä alkuarvot nollaksi.

var_init_1 = tf.get_variable("var_init_1", [1, 2], dtype=tf.int32, initializer=tf.zeros_initializer)print(var_init_1.shape) 

Tuotos

(1, 2) 

Voit välittää vakiosensorin arvot muuttujaan. Luot vakiotensorin menetelmällä tf.constant (). Tätä tensoria käytetään muuttujan alustamiseen.

Muuttujan ensimmäiset arvot ovat 10, 20, 30 ja 40. Uuden tensorin muoto on 2x2.

# Create a 2x2 matrixtensor_const = tf.constant([[10, 20],[30, 40]])# Initialize the first value of the tensor equals to tensor_constvar_init_2 = tf.get_variable("var_init_2", dtype=tf.int32, initializer=tensor_const)print(var_init_2.shape) 

Tuotos

(2, 2) 

Paikanpitäjä

Paikkamerkin tarkoituksena on syöttää tensoria. Paikkamerkkiä käytetään alustamaan tiedot virtaamaan tensoreiden sisällä. Paikkamerkin toimittamiseksi sinun on käytettävä menetelmää feed_dict. Paikkamerkki syötetään vain istunnon aikana.

Seuraavassa esimerkissä näet kuinka luoda paikkamerkki menetelmällä tf.placeholder. Seuraavassa istunnossa opit syöttämään paikkamerkin, jolla on todellinen tensoriarvo.

Syntaksi on:

tf.placeholder(dtype,shape=None,name=None )arguments:- `dtype`: Type of data- `shape`: dimension of the placeholder. Optional. By default, shape of the data- `name`: Name of the placeholder. Optionaldata_placeholder_a = tf.placeholder(tf.float32, name = "data_placeholder_a")print(data_placeholder_a) 

Tuotos

Tensor("data_placeholder_a:0", dtype=float32) 

Istunto

TensorFlow toimii 3 pääkomponentin ympärillä:

  • Kaavio
  • Tensori
  • Istunto
Komponentit Kuvaaminen

Kaavio

Kaavio on perustava TensorFlow-sovelluksessa. Kaikki matemaattiset operaatiot (op) suoritetaan graafin sisällä. Voit kuvitella kaavion projektina, jossa kaikki toiminnot suoritetaan. Solmut edustavat näitä toimintoja, ne voivat absorboida tai luoda uusia tensoreita.

Tensori

Tensori edustaa tietoja, jotka etenevät toimintojen välillä. Näit aiemmin, miten tensori alustetaan. Vakion ja muuttujan välinen ero on, että muuttujan alkuperäiset arvot muuttuvat ajan myötä.

Istunto

Istunto suorittaa toiminnon kaaviosta. Jos haluat syöttää kaavion tensorin arvoilla, sinun on avattava istunto. Istunnon sisällä sinun on suoritettava operaattori tuotoksen luomiseksi.

Kaaviot ja istunnot ovat itsenäisiä. Voit suorittaa istunnon ja hankkia arvot, joita käytetään myöhemmin laskelmiin.

Alla olevassa esimerkissä:

  • Luo kaksi tensoria
  • Luo operaatio
  • Avaa istunto
  • Tulosta tulos

Vaihe 1) Luodaan kaksi tensoria x ja y

## Create, run and evaluate a sessionx = tf.constant([2])y = tf.constant([4]) 

Vaihe 2) Luo operaattori kertomalla x ja y

## Create operatormultiply = tf.multiply(x, y) 

Vaihe 3) Avaat istunnon. Kaikki laskelmat tapahtuvat istunnon aikana. Kun olet valmis, sinun on suljettava istunto.

## Create a session to run the codesess = tf.Session()result_1 = sess.run(multiply)print(result_1)sess.close() 

Tuotos

[8] 

Koodin selitys

  • tf.Session (): Avaa istunto. Kaikki toiminnot kulkevat istuntojen sisällä
  • run (multiply): Suorita vaiheessa 2 luotu toiminto.
  • tulosta (tulos_1): Lopuksi voit tulostaa tuloksen
  • close (): Sulje istunto

Tulos osoittaa 8, joka on x: n ja y: n kertolasku.

Toinen tapa luoda istunto on lohkon sisällä. Etuna on, että se sulkee istunnon automaattisesti.

with tf.Session() as sess:result_2 = multiply.eval()print(result_2) 

Tuotos

[8] 

Istunnon yhteydessä voit suorittaa toiminnon eval () -menetelmällä. Se vastaa suoritusta (). Se tekee koodista luettavamman.

Voit luoda istunnon ja nähdä arvot tähän mennessä luomissasi tensoreissa.

## Check the tensors created beforesess = tf.Session()print(sess.run(r1))print(sess.run(r2_matrix))print(sess.run(r3_matrix)) 

Tuotos

1[[1 2][3 4]][[[1 2][3 4][5 6]]] 

Muuttujat ovat oletusarvoisesti tyhjiä, vaikka olet luonut tensorin. Sinun on alustettava muuttuja, jos haluat käyttää muuttujaa. Objekti tf.global_variables_initializer () on kutsuttava muuttujan arvojen alustamiseksi. Tämä objekti alustaa nimenomaisesti kaikki muuttujat. Tästä on hyötyä ennen mallin kouluttamista.

Voit tarkistaa aiemmin luomiesi muuttujien arvot. Huomaa, että sinun on käytettävä juosta tensorin arvioimiseksi

sess.run(tf.global_variables_initializer())print(sess.run(var))print(sess.run(var_init_1))print(sess.run(var_init_2)) 

Tuotos

[[-0.05356491 0.75867283]][[0 0]][[10 20][30 40]] 

Voit käyttää aiemmin luomasi paikkamerkkiä ja syöttää sen todellisella arvolla. Sinun on siirrettävä tiedot feed_dict-menetelmään.

Otat esimerkiksi kahden paikkamerkin data_paikkamerkki_a voiman.

import numpy as nppower_a = tf.pow(data_placeholder_a, 2)with tf.Session() as sess:data = np.random.rand(1, 10)print(sess.run(power_a, feed_dict={data_placeholder_a: data})) # Will succeed. 

Koodin selitys

  • import numpy as np: Tuo numpy-kirjasto luodaksesi tiedot
  • tf.pow (data_placeholder_a, 2): Luo opit
  • np.random.rand (1, 10): Luo satunnainen tietojoukko
  • feed_dict = {data_placeholder_a: data}: Syötä paikkamerkki tietoihin

Tuotos

[[0.05478134 0.27213147 0.8803037 0.0398424 0.21172127 0.01444725 0.02584014 0.3763949 0.66022706 0.7565559 ]] 

Kaavio

TensorFlow riippuu nerokkaasta lähestymistavasta operaation suorittamiseksi. Kaikki laskelmat esitetään tietovuokaavalla. Tietovuokaavio on kehitetty tarkastelemaan yksittäisten toimintojen välisiä datariippuvuuksia. Matemaattinen kaava tai algoritmi tehdään useista peräkkäisistä operaatioista. Kaavio on kätevä tapa visualisoida laskelmien koordinointi.

Kaavio näyttää solmun ja reunan . Solmu edustaa operaatiota eli laskentayksikköä. Reuna on tensori, se voi tuottaa uuden tensorin tai kuluttaa syötetyt tiedot. Se riippuu yksittäisen toiminnan välisistä riippuvuuksista.

Kaavion rakenne yhdistää toiminnot (ts. Solmut) ja sen, miten ne toimivat. Huomaa, että kaavio ei näytä operaatioiden lähtöä, se vain havainnollistaa yksittäisten toimintojen välistä yhteyttä.

Katsotaanpa esimerkki.

Kuvittele, että haluat arvioida seuraavan toiminnon:

TensorFlow luo kaavion toiminnon suorittamiseksi. Kaavio näyttää tältä:

Esimerkki TensorFlow-kaaviosta

Voit helposti nähdä polun, jota tensorit kuljettavat saavuttaakseen lopullisen määränpään.

Voit esimerkiksi nähdä, että lisäystoimintoa ei voida tehdä ennen ja. Kaaviossa selitetään, että se:

  1. laskea ja:
  2. lisää 1) yhteen
  3. lisää 2)
  4. lisää 3)
x = tf.get_variable("x", dtype=tf.int32, initializer=tf.constant([5]))z = tf.get_variable("z", dtype=tf.int32, initializer=tf.constant([6]))c = tf.constant([5], name = "constant")square = tf.constant([2], name = "square")f = tf.multiply(x, z) + tf.pow(x, square) + z + c 

Koodin selitys

  • x: Alusta muuttuja nimeltä x vakioarvolla 5
  • z: Alusta z-niminen muuttuja vakioarvolla 6
  • c: Alusta vakiojännite t nimeltään c vakioarvolla 5
  • neliö: Alusta vakiona oleva tensori, jota kutsutaan neliöksi vakiona 2
  • f: Rakenna operaattori

Tässä esimerkissä päätämme pitää muuttujien arvot kiinteinä. Olemme myös luoneet vakiotensorin nimeltä c, joka on vakion parametri funktiossa f. Se vie kiinteän arvon 5. Kaaviosta näet tämän parametrin tensorissa, jota kutsutaan vakiona.

Rakensimme myös vakiotensorin teholle operaattorille tf.pow (). Se ei ole tarpeen. Teimme sen niin, että näet tensorin nimen kaaviosta. Se on ympyrä, jota kutsutaan neliöksi.

Kaaviosta voit ymmärtää, mitä tensoreille tapahtuu ja miten se voi palauttaa 66: n tuloksen.

Alla oleva koodi arvioi toiminnon istunnossa.

init = tf.global_variables_initializer() # prepare to initialize all variableswith tf.Session() as sess:init.run() # Initialize x and yfunction_result = f.eval()print(function_result) 

Tuotos

[66] 

Yhteenveto

TensorFlow toimii ympäri:

  • Kaavio : Laskennallinen ympäristö, joka sisältää toiminnot ja tensorit
  • Tensorit : edustaa kuvaajassa virtaavaa dataa (tai arvoa). Se on kaavion reuna
  • Istunnot : Salli toimintojen suorittaminen

Luo vakio tensori

vakio esine

D0

tf.vakio (1, tfintint16)

D1

tf.vakio ([1,3,5], tfintint16)

D2

tf.vakio ([[1, 2], [3, 4]], tf.int16)

D3

tf.vakio ([[[1, 2], [3, 4], [5, 6]]], tf.int16)

Luo operaattori

Luo operaattori Esine

a + b

tf.add (a, b)

a * b

tf moninkertaisesti (a, b)

Luo muuttujan tensori

Luo muuttuja

esine

satunnaistettu arvo

tf.get_variable ("var", [1, 2])

alustettu ensimmäinen arvo

tf.get_variable ("var_init_2", dtype = tf.int32, alustus = [[1, 2], [3, 4]])

Avaa istunto

Istunto esine

Luo istunto

TF istunto ()

Suorita istunto

tf.Session.run ()

Arvioi tensori

muuttujan_nimi.eval ()

Sulje istunto

sess.close ()

Istunto lohkoittain

jossa tf.Session () on sess: