TensorFlow-Grundlagen: Tensor, Form, Typ, Sitzungen & Operatoren

Was ist ein Tensor?

Der Name von Tensorflow leitet sich direkt von seinem Kern-Framework ab: Tensor. In Tensorflow beinhalten alle Berechnungen Tensoren. Ein Tensor ist ein Vektor oder eine Matrix mit n-Dimensionen, der alle Arten von Daten darstellt. Alle Werte in einem Tensor haben einen identischen Datentyp mit einer bekannten (oder teilweise bekannten) Form. Die Form der Daten ist die Dimensionalitรคt der Matrix oder des Arrays.

Ein Tensor kann aus den Eingabedaten oder dem Ergebnis einer Berechnung stammen. In TensorFlow werden alle Operationen in einem Diagramm ausgefรผhrt. Das Diagramm ist eine Reihe von Berechnungen, die nacheinander ausgefรผhrt werden. Jede Operation wird als Operationsknoten bezeichnet und ist miteinander verbunden.

Der Graph stellt die Operationen und Verbindungen zwischen den Knoten dar. Die Werte werden jedoch nicht angezeigt. Der Rand der Knoten ist der Tensor, also eine Mรถglichkeit, die Operation mit Daten zu fรผllen.

Beim maschinellen Lernen werden Modelle mit einer Liste von Objekten gefรผttert, die als Merkmalsvektoren bezeichnet werden. Ein Merkmalsvektor kann von jedem beliebigen Datentyp sein. Der Merkmalsvektor ist normalerweise der primรคre Input zum Fรผllen eines Tensors. Diese Werte flieรŸen durch den Tensor in einen Operationsknoten und das Ergebnis dieser Operation/Berechnung erzeugt einen neuen Tensor, der wiederum in einer neuen Operation verwendet wird. Alle diese Operationen kรถnnen im Diagramm angezeigt werden.

Darstellung eines Tensors

In TensorFlow ist ein Tensor eine Sammlung von Merkmalsvektoren (dh ein Array) mit n-Dimensionen. Wenn wir beispielsweise eine 2ร—3-Matrix mit Werten von 1 bis 6 haben, schreiben wir:

Darstellung eines Tensors
Darstellung eines Tensors

TensorFlow stellt diese Matrix dar als:

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

Wenn wir eine dreidimensionale Matrix mit Werten von 1 bis 8 erstellen, haben wir:

Darstellung eines Tensors

TensorFlow stellt diese Matrix dar als:

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

Hinweis: Ein Tensor kann durch einen Skalar dargestellt werden oder eine Form mit mehr als drei Dimensionen haben. Es ist nur komplizierter, hรถhere Dimensionsebenen zu visualisieren.

Arten von Tensoren

In TensorFlow durchlaufen alle Berechnungen einen oder mehrere Tensoren. Ein tf.tensor ist ein Objekt mit drei Eigenschaften:

  • Ein einzigartiges Etikett (Name)
  • Eine Dimension (Form)
  • Ein Datentyp (dtype)

Jede Operation, die Sie mit TensorFlow durchfรผhren, beinhaltet die Manipulation eines Tensors. Es gibt vier Haupttensortypen, die Sie erstellen kรถnnen:

  • tf.Variable
  • tf.konstante
  • tf.placeholder
  • tf.SparseTensor

In diesem Tutorial erfahren Sie, wie Sie eine tf.constant und eine tf.Variable erstellen.

Bevor wir das Tutorial durchgehen, stellen Sie sicher, dass Sie die Conda-Umgebung mit TensorFlow aktivieren. Wir haben diese Umgebung hello-tf genannt.

Fรผr MacOS-Benutzer:

source activate hello-tf

Fรผr Windows Benutzer:

activate hello-tf

Nachdem Sie dies getan haben, kรถnnen Sie Tensorflow importieren

# Import tf
import tensorflow as tf

Erstellen Sie einen Tensor der n-Dimension

Sie beginnen mit der Erstellung eines Tensors mit einer Dimension, nรคmlich einem Skalar.

Um einen Tensor zu erstellen, kรถnnen Sie tf.constant() verwenden, wie im folgenden Beispiel fรผr die TensorFlow-Tensorform gezeigt:

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`

Um einen Tensor der Dimension 0 zu erstellen, fรผhren Sie den folgenden Code aus

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

Ausgang

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

Erstellen Sie einen Tensor der n-Dimension

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

Ausgang

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

Jeder Tensor wird durch den Tensornamen angezeigt. Jedes Tensorobjekt wird mit Tensorattributen wie einem eindeutigen Label (Name), einer Dimension (Form) und TensorFlow-Datentypen (dtype) definiert.

Sie kรถnnen einen Tensor mit Dezimalwerten oder mit einer Zeichenfolge definieren, indem Sie den Datentyp รคndern.

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

Ausgang

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

Ein Tensor der Dimension 1 kann wie folgt erstellt werden:

## 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)

Ausgang

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

Sie kรถnnen feststellen, dass die TensorFlow-Form nur aus einer Spalte besteht.

Um ein Array mit 2 Tensordimensionen zu erstellen, mรผssen Sie die Klammern nach jeder Zeile schlieรŸen. Sehen Sie sich das Beispiel fรผr die Keras-Tensorform unten an

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

Ausgang

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

Die Matrix besteht aus 2 Zeilen und 2 Spalten, die mit den Werten 1, 2, 3, 4 gefรผllt sind.

Durch das Hinzufรผgen einer weiteren Ebene mit Klammern wird eine Matrix mit 3 Dimensionen konstruiert.

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

Ausgang

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

Die Matrix sieht aus wie auf Bild zwei.

Form des Tensors

Wenn Sie einen Tensor drucken, errรคt TensorFlow die Form. Sie kรถnnen jedoch die Form des Tensors mit der TensorFlow-Shape-Eigenschaft ermitteln.

Unten erstellen Sie eine Matrix, die mit einer Zahl von 10 bis 15 gefรผllt ist, und รผberprรผfen die Form von m_shape

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

Ausgang

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

Die Matrix besteht aus 3 Zeilen und 2 Spalten.

TensorFlow verfรผgt รผber nรผtzliche Befehle zum Erstellen eines Vektors oder einer Matrix, die mit 0 oder 1 gefรผllt sind. Wenn Sie beispielsweise einen 1D-Tensor mit einer bestimmten Form von 10, gefรผllt mit 0, erstellen mรถchten, kรถnnen Sie den folgenden Code ausfรผhren:

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

Ausgang

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

Die Eigenschaft funktioniert auch fรผr Matrix. Hier erstellen Sie eine 10ร—10-Matrix gefรผllt mit 1

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

Ausgang

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

Sie kรถnnen die Form einer gegebenen Matrix verwenden, um einen Vektor aus Einsen zu erstellen. Die Matrix m_shape hat eine Dimension von 3ร—2. Mit dem folgenden Code kรถnnen Sie einen Tensor mit 3 Zeilen erstellen, die mit Einsen gefรผllt sind:

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

Ausgang

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

Wenn Sie den Wert 1 in die Klammer รผbergeben, kรถnnen Sie einen Vektor aus Einsen konstruieren, der der Anzahl der Spalten in der Matrix m_shape entspricht.

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

Ausgang

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

SchlieรŸlich kรถnnen Sie eine 3ร—2-Matrix mit nur Einsen erstellen

print(tf.ones(m_shape.shape))

Ausgang

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

Art der Daten

Die zweite Eigenschaft eines Tensors ist die Art der Daten. Ein Tensor kann jeweils nur einen Datentyp haben. Ein Tensor kann nur einen Datentyp haben. Sie kรถnnen den Typ mit der Eigenschaft dtype zurรผckgeben.

print(m_shape.dtype)

Ausgang

<dtype: 'int32'>

In manchen Fรคllen mรถchten Sie den Datentyp รคndern. In TensorFlow ist dies mit der Methode tf.cast mรถglich.

Beispiel

Unten wird ein Float-Tensor mit der Methode cast in eine Ganzzahl konvertiert.

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

Ausgang

<dtype: 'float32'>
<dtype: 'int32'>

TensorFlow wรคhlt den Datentyp automatisch aus, wenn das Argument bei der Erstellung des Tensors nicht angegeben wird. TensorFlow errรคt, welche Datentypen am wahrscheinlichsten sind. Wenn Sie beispielsweise einen Text รผbergeben, wird davon ausgegangen, dass es sich um eine Zeichenfolge handelt, und in eine Zeichenfolge umgewandelt.

Operator erstellen

Einige nรผtzliche TensorFlow-Operatoren

Sie wissen, wie Sie mit TensorFlow einen Tensor erstellen. Jetzt ist es an der Zeit zu lernen, wie man mathematische Operationen durchfรผhrt.

TensorFlow enthรคlt alle grundlegenden Operationen. Sie kรถnnen mit einer einfachen beginnen. Sie verwenden die TensorFlow-Methode, um das Quadrat einer Zahl zu berechnen. Diese Operation ist unkompliziert, da zum Erstellen des Tensors nur ein Argument erforderlich ist.

Das Quadrat einer Zahl wird mit tf.sqrt(x) konstruiert, wobei x eine Gleitkommazahl ist.

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

Ausgang

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

Hinweis: Die Ausgabe gab ein Tensorobjekt zurรผck und nicht das Ergebnis des Quadrats von 2. Im Beispiel drucken Sie die Definition des Tensors und nicht die tatsรคchliche Auswertung der Operation. Im nรคchsten Abschnitt erfahren Sie, wie TensorFlow zum Ausfรผhren der Operationen funktioniert.

Nachfolgend finden Sie eine Liste hรคufig verwendeter Operationen. Die Idee ist dieselbe. Jede Operation erfordert ein oder mehrere Argumente.

  • tf.add(a, b)
  • tf.substract(a, b)
  • tf.multiply(a, b)
  • tf.div(a, b)
  • tf.pow(a, b)
  • tf.exp(a)
  • tf.sqrt(a)

Beispiel

# Add
tensor_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)

Ausgang

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

Code Erlรคuterung

Erstellen Sie zwei Tensoren:

  • ein Tensor mit 1 und 2
  • ein Tensor mit 3 und 4

Man addiert beide Tensoren.

Hinweise: dass beide Tensoren die gleiche Form haben mรผssen. Sie kรถnnen eine Multiplikation รผber die beiden Tensoren durchfรผhren.

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

Ausgang

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

Variablen

Bisher haben Sie nur konstante Tensoren erstellt. Es ist nicht von groรŸem Nutzen. Daten kommen immer mit unterschiedlichen Werten an. Um dies zu erfassen, kรถnnen Sie die Klasse Variable verwenden. Es stellt einen Knoten dar, an dem sich die Werte stรคndig รคndern.

Um eine Variable zu erstellen, kรถnnen Sie die Methode tf.get_variable() verwenden

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. Optional
If initializer is specified, there is no need to include the `values` as the shape of `initializer` is used.

Der folgende Code erstellt beispielsweise eine zweidimensionale Variable mit zwei Zufallswerten. StandardmรครŸig gibt TensorFlow einen Zufallswert zurรผck. Sie nennen die Variable var

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

Ausgang

(1, 2)

Im zweiten Beispiel erstellen Sie eine Variable mit einer Zeile und zwei Spalten. Sie mรผssen [1,2] verwenden, um die Dimension der Variablen zu erstellen

Die Anfangswerte dieses Tensors sind Null. Wenn Sie beispielsweise ein Modell trainieren, benรถtigen Sie Anfangswerte, um die Gewichtung der Features zu berechnen. Nachfolgend setzen Sie diesen Anfangswert auf Null.

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

Ausgang

(1, 2)

Sie kรถnnen die Werte eines konstanten Tensors in einer Variablen รผbergeben. Einen konstanten Tensor erstellen Sie mit der Methode tf.constant(). Mit diesem Tensor initialisieren Sie die Variable.

Die ersten Werte der Variablen sind 10, 20, 30 und 40. Der neue Tensor hat die Form 2ร—2.

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

Ausgang

(2, 2)

Platzhalter

Ein Platzhalter hat die Aufgabe, den Tensor zu versorgen. Platzhalter werden verwendet, um den Datenfluss innerhalb der Tensoren zu initialisieren. Um einen Platzhalter bereitzustellen, mรผssen Sie die Methode โ€žfeed_dictโ€œ verwenden. Der Platzhalter wird nur innerhalb einer Sitzung gefรผttert.

Im nรคchsten Beispiel sehen Sie, wie Sie mit der Methode tf.placeholder einen Platzhalter erstellen. In der nรคchsten Sitzung lernen Sie, einen Platzhalter mit dem tatsรคchlichen Tensorwert zu fรผttern.

Die Syntax lautet:

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. Optional			
data_placeholder_a = tf.placeholder(tf.float32, name = "data_placeholder_a")
print(data_placeholder_a)

Ausgang

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

Session

TensorFlow basiert auf drei Hauptkomponenten:

  • Graph
  • Tensor
  • Session
Komponenten descritption
Graph Der Graph ist in TensorFlow grundlegend. Alle mathematischen Operationen (Ops) werden in einem Graphen ausgefรผhrt. Sie kรถnnen sich einen Graphen als ein Projekt vorstellen, in dem alle Operationen ausgefรผhrt werden. Die Knoten stellen diese Operationen dar, sie kรถnnen neue Tensoren aufnehmen oder erstellen.
Tensor Ein Tensor stellt die Daten dar, die zwischen Operationen fortschreiten. Sie haben zuvor gesehen, wie ein Tensor initialisiert wird. Der Unterschied zwischen einer Konstante und einer Variablen besteht darin, dass sich die Anfangswerte einer Variablen im Laufe der Zeit รคndern.
Session Eine Sitzung fรผhrt die Operation aus dem Diagramm aus. Um das Diagramm mit den Werten eines Tensors zu fรผttern, mรผssen Sie eine Sitzung รถffnen. Innerhalb einer Sitzung mรผssen Sie einen Operator ausfรผhren, um eine Ausgabe zu erstellen.

Diagramme und Sitzungen sind unabhรคngig. Sie kรถnnen eine Sitzung ausfรผhren und die Werte abrufen, um sie spรคter fรผr weitere Berechnungen zu verwenden.

Im folgenden Beispiel werden Sie Folgendes tun:

  • Erstellen Sie zwei Tensoren
  • Erstellen eines Vorgangs
  • ร–ffnen Sie eine Sitzung
  • Drucken Sie das Ergebnis

Schritt 1) Sie erstellen zwei Tensoren x und y

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

Schritt 2) Den Operator erhรคlt man durch die Multiplikation von x und y

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

Schritt 3) Sie erรถffnen eine Sitzung. Alle Berechnungen werden innerhalb der Sitzung durchgefรผhrt. Wenn Sie fertig sind, mรผssen Sie die Sitzung schlieรŸen.

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

Ausgang

[8]

Code Erklรคrung

  • tf.Session(): ร–ffnen Sie eine Sitzung. Alle Vorgรคnge werden innerhalb der Sitzungen ablaufen.
  • run(multiply): Fรผhren Sie die in Schritt 2 erstellte Operation aus.
  • print(result_1): AbschlieรŸend kรถnnen Sie das Ergebnis ausdrucken
  • close(): SchlieรŸt die Sitzung

Das Ergebnis zeigt 8, was der Multiplikation von x und y entspricht.

Eine andere Mรถglichkeit, eine Sitzung zu erstellen, besteht innerhalb eines Blocks. Der Vorteil besteht darin, dass die Sitzung automatisch geschlossen wird.

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

Ausgang

[8]

Im Kontext der Sitzung kรถnnen Sie die Operation mit der Methode eval() ausfรผhren. Sie ist gleichbedeutend mit run(). Sie macht den Code lesbarer.

Sie kรถnnen eine Sitzung erstellen und die Werte in den Tensoren sehen, die Sie bisher erstellt haben.

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

Ausgang

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

Variablen sind standardmรครŸig leer, auch nachdem Sie einen Tensor erstellt haben. Sie mรผssen die Variable initialisieren, wenn Sie die Variable verwenden mรถchten. Das Objekt tf.global_variables_initializer() muss aufgerufen werden, um die Werte einer Variablen zu initialisieren. Dieses Objekt initialisiert explizit alle Variablen. Dies ist hilfreich, bevor Sie ein Modell trainieren.

Sie kรถnnen die Werte der zuvor erstellten Variablen รผberprรผfen. Beachten Sie, dass Sie run verwenden mรผssen, um den Tensor auszuwerten

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

Ausgang

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

Sie kรถnnen den zuvor erstellten Platzhalter verwenden und ihn mit dem tatsรคchlichen Wert versorgen. Sie mรผssen die Daten an die Methode โ€žfeed_dictโ€œ รผbergeben.

Beispielsweise nehmen Sie die Zweierpotenz des Platzhalters data_placeholder_a.

import numpy as np
power_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.

Code Erlรคuterung

  • numpy als np importieren: Importieren Numpy-Bibliothek um die Daten zu erstellen
  • tf.pow(data_placeholder_a, 2): Erstellen Sie die Ops
  • np.random.rand(1, 10): Erstellen Sie ein zufรคlliges Datenarray
  • feed_dict={data_placeholder_a: data}: Fรผttere den Platzhalter mit Daten

Ausgang

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

Graph

TensorFlow setzt auf einen genialen Ansatz zur Darstellung der Operation. Alle Berechnungen werden mit einem Datenflussschema dargestellt. Das Datenflussdiagramm wurde entwickelt, um Datenabhรคngigkeiten zwischen einzelnen Operationen zu erkennen. Mathematische Formeln oder Algorithmen bestehen aus einer Reihe aufeinanderfolgender Operationen. Ein Diagramm ist eine praktische Mรถglichkeit, die Koordination der Berechnungen zu visualisieren.

Die Grafik zeigt a Knoten und ein Rand. Der Knoten ist die Darstellung einer Operation, also die Recheneinheit. Die Kante ist der Tensor, er kann einen neuen Tensor erzeugen oder die Eingabedaten verbrauchen. Dabei kommt es auf die Abhรคngigkeiten zwischen den einzelnen Operationen an.

Die Struktur des Graphen verbindet die Operationen (also die Knoten) miteinander und zeigt, wie diese Operationen gespeist werden. Beachten Sie, dass der Graph nicht die Ausgabe der Operationen anzeigt, sondern nur hilft, die Verbindung zwischen einzelnen Operationen zu visualisieren.

Sehen wir uns ein Beispiel an.

Stellen Sie sich vor, Sie mรถchten die folgende Funktion auswerten:

Graph

TensorFlow erstellt ein Diagramm, um die Funktion auszufรผhren. Die Grafik sieht so aus:

Beispiel fรผr ein TensorFlow-Diagramm

Beispiel fรผr ein TensorFlow-Diagramm

Sie kรถnnen leicht den Weg erkennen, den die Tensoren nehmen, um ihr endgรผltiges Ziel zu erreichen.

Sie kรถnnen beispielsweise sehen, dass die Operation add nicht vor und ausgefรผhrt werden kann. Die Grafik erklรคrt, dass dies der Fall ist:

  1. berechnen und:
  2. Addiere 1) zusammen
  3. zu 2 hinzufรผgen)
  4. 3) hinzufรผgen
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

Code Erlรคuterung

  • x: Initialisieren Sie eine Variable namens x mit einem konstanten Wert von 5
  • z: Initialisieren Sie eine Variable namens z mit einem konstanten Wert von 6
  • c: Initialisieren Sie einen konstanten Tensor namens c mit einem konstanten Wert von 5
  • Quadrat: Initialisieren Sie einen konstanten Tensor namens Quadrat mit einem konstanten Wert von 2
  • f: Konstruieren Sie den Operator

In diesem Beispiel entscheiden wir uns dafรผr, die Werte der Variablen festzuhalten. Wir haben auch einen konstanten Tensor namens c erstellt, der der konstante Parameter in der Funktion f ist. Er nimmt einen festen Wert von 5 an. Im Diagramm kรถnnen Sie diesen Parameter im Tensor namens Konstante sehen.

Wir haben auch einen konstanten Tensor fรผr die Potenz im Operator tf.pow() konstruiert. Das ist nicht notwendig. Wir haben es gemacht, damit Sie den Namen des Tensors in der Grafik sehen kรถnnen. Es ist der Kreis, der Quadrat genannt wird.

Aus der Grafik kรถnnen Sie verstehen, was mit den Tensoren passiert und wie sie eine Ausgabe von 66 zurรผckgeben kรถnnen.

Der folgende Code wertet die Funktion in einer Sitzung aus.

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

Ausgang

[66]

Zusammenfassung

TensorFlow funktioniert um:

  • Graph: Rechenumgebung mit den Operationen und Tensoren
  • Tensoren: Stellt die Daten (oder den Wert) dar, die im Diagramm flieรŸen. Es ist die Kante im Diagramm
  • Fachsitzungen: Erlauben Sie die Ausfรผhrung der Operationen

Erstellen Sie einen konstanten Tensor

konstante Objekt
D0 tf.constant(1, tf.int16)
D1 tf.constant([1,3,5], tf.int16)
D2 tf.constant([ [1, 2], [3, 4] ],tf.int16)
D3 tf.constant([ [[1, 2],[3, 4], [5, 6]] ], tf.int16)

Erstellen eines Operators

Erstellen eines Operators Betreff
a + b tf.add(a, b)
a * b tf.multiply(a, b)

Erstellen Sie einen variablen Tensor

Erstellen Sie eine Variable Objekt
randomisierter Wert tf.get_variable(โ€žvarโ€œ, [1, 2])
initialisierter erster Wert tf.get_variable(โ€œvar_init_2โ€, dtype=tf.int32, initializer=[ [1, 2], [3, 4] ])

ร–ffnen Sie eine Sitzung

Session Objekt
Erstellen Sie eine Sitzung tf.Session()
Fรผhren Sie eine Sitzung durch tf.Session.run()
Bewerten Sie einen Tensor Variablenname.eval()
SchlieรŸen Sie eine Sitzung sess.close()
Sitzung fรผr Block mit tf.Session() als sess:

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: