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:

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:
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)
# 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:
TensorFlow erstellt ein Diagramm, um die Funktion auszufรผhren. Die Grafik sieht so aus:
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:
- berechnen und:
- Addiere 1) zusammen
- zu 2 hinzufรผgen)
- 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: |


