TensorFlow - podstawy

W tym rozdziale poznamy podstawy TensorFlow. Zaczniemy od zrozumienia struktury danych tensora.

Struktura danych tensora

Tensory są używane jako podstawowe struktury danych w języku TensorFlow. Tensory reprezentują krawędzie łączące na dowolnym schemacie przepływu nazywanym wykresem przepływu danych. Tensory są definiowane jako wielowymiarowa tablica lub lista.

Tensory są identyfikowane za pomocą następujących trzech parametrów -

Ranga

Jednostka wymiarowości opisana w tensorze to ranga. Określa liczbę wymiarów tensora. Rangę tensora można opisać jako rząd lub n-wymiary zdefiniowanego tensora.

Kształt

Liczba wierszy i kolumn razem definiuje kształt Tensora.

Rodzaj

Typ opisuje typ danych przypisany do elementów Tensora.

Użytkownik musi wziąć pod uwagę następujące czynności w celu zbudowania Tensora -

  • Zbuduj tablicę n-wymiarową
  • Konwertuj tablicę n-wymiarową.

Różne wymiary TensorFlow

TensorFlow obejmuje różne wymiary. Wymiary opisano w skrócie poniżej -

Jednowymiarowy tensor

Tensor jednowymiarowy to normalna struktura tablicy, która zawiera jeden zestaw wartości tego samego typu danych.

Declaration

>>> import numpy as np
>>> tensor_1d = np.array([1.3, 1, 4.0, 23.99])
>>> print tensor_1d

Implementację z wyjściem pokazano na zrzucie ekranu poniżej -

Indeksowanie elementów jest takie samo jak w przypadku list Pythona. Pierwszy element zaczyna się od indeksu 0; aby wydrukować wartości za pośrednictwem indeksu, wystarczy podać numer indeksu.

>>> print tensor_1d[0]
1.3
>>> print tensor_1d[2]
4.0

Dwuwymiarowe tensory

Sekwencje tablic służą do tworzenia „dwuwymiarowych tensorów”.

Tworzenie dwuwymiarowych tensorów opisano poniżej -

Poniżej znajduje się pełna składnia tworzenia dwuwymiarowych tablic -

>>> import numpy as np
>>> tensor_2d = np.array([(1,2,3,4),(4,5,6,7),(8,9,10,11),(12,13,14,15)])
>>> print(tensor_2d)
[[ 1 2 3 4]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
>>>

Poszczególne elementy dwuwymiarowych tensorów można śledzić za pomocą numeru wiersza i numeru kolumny określonego jako numery indeksu.

>>> tensor_2d[3][2]
14

Obsługa i manipulacje tensorami

W tej sekcji nauczymy się obsługi tensorów i manipulacji.

Na początek rozważmy następujący kod -

import tensorflow as tf
import numpy as np

matrix1 = np.array([(2,2,2),(2,2,2),(2,2,2)],dtype = 'int32')
matrix2 = np.array([(1,1,1),(1,1,1),(1,1,1)],dtype = 'int32')

print (matrix1)
print (matrix2)

matrix1 = tf.constant(matrix1)
matrix2 = tf.constant(matrix2)
matrix_product = tf.matmul(matrix1, matrix2)
matrix_sum = tf.add(matrix1,matrix2)
matrix_3 = np.array([(2,7,2),(1,4,2),(9,0,2)],dtype = 'float32')
print (matrix_3)

matrix_det = tf.matrix_determinant(matrix_3)
with tf.Session() as sess:
   result1 = sess.run(matrix_product)
   result2 = sess.run(matrix_sum)
   result3 = sess.run(matrix_det)

print (result1)
print (result2)
print (result3)

Output

Powyższy kod wygeneruje następujące dane wyjściowe -

Wyjaśnienie

W powyższym kodzie źródłowym stworzyliśmy wielowymiarowe tablice. Teraz ważne jest, aby zrozumieć, że stworzyliśmy wykres i sesje, które zarządzają tensorami i generują odpowiednie dane wyjściowe. Za pomocą wykresu otrzymujemy dane wyjściowe określające obliczenia matematyczne między tensorami.