Notions de base de TensorFlow : tenseur, forme, type, sessions et Operajeudi
Qu'est-ce qu'un tenseur ?
Le nom de Tensorflow est directement dรฉrivรฉ de son framework principal : Tensor. Dans Tensorflow, tous les calculs impliquent des tenseurs. Un tenseur est un vecteur ou une matrice ร n dimensions qui reprรฉsente tous les types de donnรฉes. Toutes les valeurs d'un tenseur contiennent un type de donnรฉes identique avec une forme connue (ou partiellement connue). La forme des donnรฉes correspond ร la dimensionnalitรฉ de la matrice ou du tableau.
Un tenseur peut provenir des donnรฉes d'entrรฉe ou du rรฉsultat d'un calcul. Dans TensorFlow, toutes les opรฉrations sont effectuรฉes dans un graphique. Le graphe est un ensemble de calculs qui s'effectuent successivement. Chaque opรฉration est appelรฉe nลud opรฉrationnel et est connectรฉe les unes aux autres.
Le graphique dรฉcrit les opรฉrations et les connexions entre les nลuds. Cependant, il n'affiche pas les valeurs. Le bord des nลuds est le tenseur, c'est-ร -dire un moyen de remplir l'opรฉration avec des donnรฉes.
Dans le Machine Learning, les modรจles sont alimentรฉs par une liste dโobjets appelรฉs vecteurs de caractรฉristiques. Un vecteur de caractรฉristiques peut รชtre de nโimporte quel type de donnรฉes. Le vecteur de caractรฉristiques sera gรฉnรฉralement la principale entrรฉe pour remplir un tenseur. Ces valeurs circuleront dans un nลud opรฉrationnel via le tenseur et le rรฉsultat de cette opรฉration/calcul crรฉera un nouveau tenseur qui ร son tour sera utilisรฉ dans une nouvelle opรฉration. Toutes ces opรฉrations peuvent รชtre visualisรฉes dans le graphique.
Reprรฉsentation d'un tenseur
Dans TensorFlow, un tenseur est une collection de vecteurs de caractรฉristiques (c'est-ร -dire un tableau) ร n dimensions. Par exemple, si on a une matrice 2ร3 avec des valeurs de 1 ร 6, on รฉcrit :

TensorFlow reprรฉsente cette matrice comme :
[[1, 2, 3], [4, 5, 6]]
Si nous crรฉons une matrice tridimensionnelle avec des valeurs de 1 ร 8, nous avons :
TensorFlow reprรฉsente cette matrice comme :
[ [[1, 2],
[[3, 4],
[[5, 6],
[[7,8] ]
ร noter: Un tenseur peut รชtre reprรฉsentรฉ par un scalaire ou peut avoir une forme ร plus de trois dimensions. Il est tout simplement plus compliquรฉ de visualiser un niveau de dimension supรฉrieur.
Types de tenseur
Dans TensorFlow, tous les calculs passent par un ou plusieurs tenseurs. Un tf.tensor est un objet avec trois propriรฉtรฉs :
- Une รฉtiquette unique (nom)
- Une dimension (forme)
- Un type de donnรฉes (dtype)
Chaque opรฉration que vous effectuerez avec TensorFlow implique la manipulation d'un tenseur. Il existe quatre types de tenseurs principaux que vous pouvez crรฉer :
- tf.Variable
- tf.constante
- tf.espace rรฉservรฉ
- tf.SparseTensor
Dans ce didacticiel, vous apprendrez ร crรฉer un tf.constant et un tf.Variable.
Avant de parcourir le didacticiel, assurez-vous d'activer l'environnement conda avec TensorFlow. Nous avons nommรฉ cet environnement hello-tf.
Pour les utilisateurs de MacOS :
source activate hello-tf
Pour Windows utilisateur:
activate hello-tf
Aprรจs avoir fait cela, vous รชtes prรชt ร importer Tensorflow
# Import tf import tensorflow as tf
Crรฉer un tenseur de dimension n
Vous commencez par la crรฉation d'un tenseur ร une dimension, ร savoir un scalaire.
Pour crรฉer un tenseur, vous pouvez utiliser tf.constant() comme indiquรฉ dans l'exemple de forme de tensor TensorFlow ci-dessous :
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`
Pour crรฉer un tenseur de dimension 0, exรฉcutez le code suivant
## rank 0 # Default name r1 = tf.constant(1, tf.int16) print(r1)
Sortie
Tensor("Const:0", shape=(), dtype=int16)
# Named my_scalar r2 = tf.constant(1, tf.int16, name = "my_scalar") print(r2)
Sortie
Tensor("my_scalar:0", shape=(), dtype=int16)
Chaque tenseur est affichรฉ par son nom. Chaque objet tensoriel est dรฉfini avec des attributs tensoriels tels qu'une รฉtiquette unique (nom), une dimension (forme) et des types de donnรฉes TensorFlow (dtype).
Vous pouvez dรฉfinir un tenseur avec des valeurs dรฉcimales ou avec une chaรฎne en changeant le type de donnรฉes.
# Decimal
r1_decimal = tf.constant(1.12345, tf.float32)
print(r1_decimal)
# String
r1_string = tf.constant("Guru99", tf.string)
print(r1_string)
Sortie
Tensor("Const_1:0", shape=(), dtype=float32)
Tensor("Const_2:0", shape=(), dtype=string)
Un tenseur de dimension 1 peut รชtre crรฉรฉ comme suit :
## 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)
Sortie
Tensor("Const_3:0", shape=(3,), dtype=int16)
Tensor("Const_4:0", shape=(3,), dtype=bool)
Vous pouvez remarquer que la forme TensorFlow n'est composรฉe que d'une seule colonne.
Pour crรฉer un tableau de 2 dimensions tensorielles, vous devez fermer les parenthรจses aprรจs chaque ligne. Consultez l'exemple de forme Keras Tensor ci-dessous
## Rank 2
r2_matrix = tf.constant([ [1, 2],
[3, 4] ],tf.int16)
print(r2_matrix)
Sortie
Tensor("Const_5:0", shape=(2, 2), dtype=int16)
La matrice comporte 2 lignes et 2 colonnes remplies de valeurs 1, 2, 3, 4.
Une matrice ร 3 dimensions est construite en ajoutant un autre niveau avec les parenthรจses.
## Rank 3
r3_matrix = tf.constant([ [[1, 2],
[3, 4],
[5, 6]] ], tf.int16)
print(r3_matrix)
Sortie
Tensor("Const_6:0", shape=(1, 3, 2), dtype=int16)
La matrice ressemble ร la photo deux.
Forme du tenseur
Lorsque vous imprimez un tenseur, TensorFlow devine la forme. Cependant, vous pouvez obtenir la forme du tenseur avec la propriรฉtรฉ de forme TensorFlow.
Ci-dessous, vous construisez une matrice remplie d'un nombre de 10 ร 15 et vous vรฉrifiez la forme de m_shape
# Shape of tensor
m_shape = tf.constant([ [10, 11],
[12, 13],
[14, 15] ]
)
m_shape.shape
Sortie
TensorShape([Dimension(3), Dimension(2)])
La matrice comporte 3 lignes et 2 colonnes.
TensorFlow dispose de commandes utiles pour crรฉer un vecteur ou une matrice remplie de 0 ou 1. Par exemple, si vous souhaitez crรฉer un tenseur 1D avec une forme spรฉcifique de 10, rempli de 0, vous pouvez exรฉcuter le code ci-dessous :
# Create a vector of 0 print(tf.zeros(10))
Sortie
Tensor("zeros:0", shape=(10,), dtype=float32)
La propriรฉtรฉ fonctionne รฉgalement pour la matrice. Ici, vous crรฉez une matrice 10ร10 remplie de 1
# Create a vector of 1 print(tf.ones([10, 10]))
Sortie
Tensor("ones:0", shape=(10, 10), dtype=float32)
Vous pouvez utiliser la forme d'une matrice donnรฉe pour crรฉer un vecteur de uns. La matrice m_shape est de dimensions 3ร2. Vous pouvez crรฉer un tenseur avec 3 lignes remplies par une avec le code suivant :
# Create a vector of ones with the same number of rows as m_shape print(tf.ones(m_shape.shape[0]))
Sortie
Tensor("ones_1:0", shape=(3,), dtype=float32)
Si vous passez la valeur 1 entre parenthรจses, vous pouvez construire un vecteur de uns รฉgal au nombre de colonnes dans la matrice m_shape.
# Create a vector of ones with the same number of column as m_shape print(tf.ones(m_shape.shape[1]))
Sortie
Tensor("ones_2:0", shape=(2,), dtype=float32)
Enfin, vous pouvez crรฉer une matrice 3ร2 avec un seul
print(tf.ones(m_shape.shape))
Sortie
Tensor("ones_3:0", shape=(3, 2), dtype=float32)
Type de donnรฉes
La deuxiรจme propriรฉtรฉ d'un tenseur est le type de donnรฉes. Un tenseur ne peut avoir qu'un seul type de donnรฉes ร la fois. Un tenseur ne peut avoir qu'un seul type de donnรฉes. Vous pouvez renvoyer le type avec la propriรฉtรฉ dtype.
print(m_shape.dtype)
Sortie
<dtype: 'int32'>
Dans certains cas, vous souhaitez modifier le type de donnรฉes. Dans TensorFlow, c'est possible avec la mรฉthode tf.cast.
Exemple
Ci-dessous, un tenseur flottant est converti en entier en utilisant la mรฉthode cast.
# 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)
Sortie
<dtype: 'float32'> <dtype: 'int32'>
TensorFlow choisit automatiquement le type de donnรฉes lorsque l'argument n'est pas spรฉcifiรฉ lors de la crรฉation du tenseur. TensorFlow devinera quels sont les types de donnรฉes les plus probables. Par exemple, si vous transmettez un texte, il devinera qu'il s'agit d'une chaรฎne et le convertira en chaรฎne.
Opรฉrateur de crรฉation
Quelques opรฉrateurs TensorFlow utiles
Vous savez crรฉer un tenseur avec TensorFlow. Il est temps d'apprendre ร effectuer des opรฉrations mathรฉmatiques.
TensorFlow contient toutes les opรฉrations de base. Vous pouvez commencer par un simple. Vous utiliserez la mรฉthode TensorFlow pour calculer le carrรฉ d'un nombre. Cette opรฉration est simple car un seul argument est nรฉcessaire pour construire le tenseur.
Le carrรฉ d'un nombre est construit avec tf.sqrt(x) avec x comme nombre flottant.
x = tf.constant([2.0], dtype = tf.float32) print(tf.sqrt(x))
Sortie
Tensor("Sqrt:0", shape=(1,), dtype=float32)
ร noter: La sortie a renvoyรฉ un objet tenseur et non le rรฉsultat du carrรฉ de 2. Dans l'exemple, vous imprimez la dรฉfinition du tenseur et non l'รฉvaluation rรฉelle de l'opรฉration. Dans la section suivante, vous apprendrez comment TensorFlow fonctionne pour exรฉcuter les opรฉrations.
Voici une liste des opรฉrations couramment utilisรฉes. L'idรฉe est la mรชme. Chaque opรฉration nรฉcessite un ou plusieurs arguments.
- tf.ajouter(a, b)
- tf.substract(a, b)
- tf.multiplier (a, b)
- tf.div(a, b)
- tf.pow(a, b)
- tf.exp(a)
- tf.sqrt(a)
Exemple
# 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)
Sortie
Tensor("Add:0", shape=(1, 2), dtype=int32)
Code Explication
Crรฉez deux tenseurs :
- un tenseur avec 1 et 2
- un tenseur avec 3 et 4
Vous additionnez les deux tenseurs.
Avis : que les deux tenseurs doivent avoir la mรชme forme. Vous pouvez exรฉcuter une multiplication sur les deux tenseurs.
# Multiply tensor_multiply = tf.multiply(tensor_a, tensor_b) print(tensor_multiply)
Sortie
Tensor("Mul:0", shape=(1, 2), dtype=int32)
Variables
Jusqu'ร prรฉsent, vous n'avez crรฉรฉ que des tenseurs constants. Ce n'est pas d'une grande utilitรฉ. Les donnรฉes arrivent toujours avec des valeurs diffรฉrentes, pour capturer cela, vous pouvez utiliser la classe Variable. Il reprรฉsentera un nลud oรน les valeurs changent toujours.
Pour crรฉer une variable, vous pouvez utiliser la mรฉthode tf.get_variable()
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.
Par exemple, le code ci-dessous crรฉe une variable bidimensionnelle avec deux valeurs alรฉatoires. Par dรฉfaut, TensorFlow renvoie une valeur alรฉatoire. Vous nommez la variable var
# Create a Variable
## Create 2 Randomized values
var = tf.get_variable("var", [1, 2])
print(var.shape)
Sortie
(1, 2)
Dans le deuxiรจme exemple, vous crรฉez une variable avec une ligne et deux colonnes. Vous devez utiliser [1,2] pour crรฉer la dimension de la variable
Les valeurs initiales de ce tenseur sont nulles. Par exemple, lorsque vous entraรฎnez un modรจle, vous devez disposer de valeurs initiales pour calculer le poids des fonctionnalitรฉs. Ci-dessous, vous dรฉfinissez ces valeurs initiales sur zรฉro.
var_init_1 = tf.get_variable("var_init_1", [1, 2], dtype=tf.int32, initializer=tf.zeros_initializer)
print(var_init_1.shape)
Sortie
(1, 2)
Vous pouvez transmettre les valeurs d'un tenseur constant dans une variable. Vous crรฉez un tenseur constant avec la mรฉthode tf.constant(). Vous utilisez ce tenseur pour initialiser la variable.
Les premiรจres valeurs de la variable sont 10, 20, 30 et 40. Le nouveau tenseur aura une forme de 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)
Sortie
(2, 2)
placeholder
Un espace rรฉservรฉ a pour but d'alimenter le tenseur. L'espace rรฉservรฉ est utilisรฉ pour initialiser les donnรฉes ร circuler ร l'intรฉrieur des tenseurs. Pour fournir un espace rรฉservรฉ, vous devez utiliser la mรฉthode feed_dict. L'espace rรฉservรฉ sera alimentรฉ uniquement au cours d'une session.
Dans l'exemple suivant, vous verrez comment crรฉer un espace rรฉservรฉ avec la mรฉthode tf.placeholder. Dans la prochaine session, vous apprendrez ร alimenter un espace rรฉservรฉ avec une valeur tensorielle rรฉelle.
La syntaxe est:
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)
Sortie
Tensor("data_placeholder_a:0", dtype=float32)
Session
TensorFlow fonctionne autour de 3 composants principaux :
- Graphique
- tenseur
- Session
| Composants | DESCRITPTION |
|---|---|
| Graphique | Le graphique est fondamental dans TensorFlow. Toutes les opรฉrations mathรฉmatiques (ops) sont effectuรฉes ร l'intรฉrieur d'un graphique. Vous pouvez imaginer un graphique comme un projet oรน toutes les opรฉrations sont effectuรฉes. Les nลuds reprรฉsentent ces opรฉrations, ils peuvent absorber ou crรฉer de nouveaux tenseurs. |
| tenseur | Un tenseur reprรฉsente les donnรฉes qui progressent entre les opรฉrations. Vous avez vu prรฉcรฉdemment comment initialiser un tenseur. La diffรฉrence entre une constante et une variable rรฉside dans le fait que les valeurs initiales d'une variable changeront avec le temps. |
| Session | Une session exรฉcutera l'opรฉration ร partir du graphique. Pour alimenter le graphique avec les valeurs d'un tenseur, vous devez ouvrir une session. Dans une session, vous devez exรฉcuter un opรฉrateur pour crรฉer une sortie. |
Les graphiques et les sessions sont indรฉpendants. Vous pouvez exรฉcuter une session et obtenir les valeurs ร utiliser ultรฉrieurement pour des calculs ultรฉrieurs.
Dans l'exemple ci-dessous, vous allez :
- Crรฉer deux tenseurs
- Crรฉer une opรฉration
- Ouvrir une session
- Imprimer le rรฉsultat
รtape 1) Vous crรฉez deux tenseurs x et y
## Create, run and evaluate a session x = tf.constant([2]) y = tf.constant([4])
รtape 2) Vous crรฉez l'opรฉrateur en multipliant x et y
## Create operator multiply = tf.multiply(x, y)
รtape 3) Vous ouvrez une session. Tous les calculs auront lieu au cours de la session. Lorsque vous avez terminรฉ, vous devez fermer la session.
## Create a session to run the code sess = tf.Session()result_1 = sess.run(multiply) print(result_1) sess.close()
Sortie
[8]
Code explication
- tf.Session() : ouvre une session. Toutes les opรฉrations se dรฉrouleront au sein des sessions
- run(multiply) : exรฉcute l'opรฉration crรฉรฉe ร l'รฉtape 2.
- print(result_1) : Enfin, vous pouvez imprimer le rรฉsultat
- close() : Ferme la session
Le rรฉsultat montre 8, qui est la multiplication de x et y.
Une autre faรงon de crรฉer une session consiste ร l'intรฉrieur d'un bloc. L'avantage est qu'il ferme automatiquement la session.
with tf.Session() as sess: result_2 = multiply.eval() print(result_2)
Sortie
[8]
Dans un contexte de session, vous pouvez utiliser la mรฉthode eval() pour exรฉcuter l'opรฉration. C'est รฉquivalent ร run(). Cela rend le code plus lisible.
Vous pouvez crรฉer une session et voir les valeurs ร l'intรฉrieur des tenseurs que vous avez crรฉรฉs jusqu'ร prรฉsent.
## Check the tensors created before sess = tf.Session() print(sess.run(r1)) print(sess.run(r2_matrix)) print(sess.run(r3_matrix))
Sortie
1 [[1 2] [3 4]] [[[1 2] [3 4] [5 6]]]
Les variables sont vides par dรฉfaut, mรชme aprรจs avoir crรฉรฉ un tenseur. Vous devez initialiser la variable si vous souhaitez utiliser la variable. L'objet tf.global_variables_initializer() doit รชtre appelรฉ pour initialiser les valeurs d'une variable. Cet objet initialisera explicitement toutes les variables. Ceci est utile avant dโentraรฎner un modรจle.
Vous pouvez vรฉrifier les valeurs des variables que vous avez crรฉรฉes auparavant. Notez que vous devez utiliser run pour รฉvaluer le tenseur
sess.run(tf.global_variables_initializer()) print(sess.run(var)) print(sess.run(var_init_1)) print(sess.run(var_init_2))
Sortie
[[-0.05356491 0.75867283]] [[0 0]] [[10 20] [30 40]]
Vous pouvez utiliser l'espace rรฉservรฉ que vous avez crรฉรฉ auparavant et l'alimenter avec la valeur rรฉelle. Vous devez transmettre les donnรฉes dans la mรฉthode feed_dict.
Par exemple, vous prendrez la puissance 2 de l'espace rรฉservรฉ 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 Explication
- importer numpy en tant que np : importer bibliothรจque numpy pour crรฉer les donnรฉes
- tf.pow (data_placeholder_a, 2) : crรฉer les opรฉrations
- np.random.rand(1, 10) : crรฉer un tableau alรฉatoire de donnรฉes
- feed_dict={data_placeholder_a: data} : Alimenter l'espace rรฉservรฉ avec des donnรฉes
Sortie
[[0.05478134 0.27213147 0.8803037 0.0398424 0.21172127 0.01444725 0.02584014 0.3763949 0.66022706 0.7565559 ]]
Graphique
TensorFlow dรฉpend d'une approche gรฉniale pour restituer l'opรฉration. Tous les calculs sont reprรฉsentรฉs avec un schรฉma de flux de donnรฉes. Le graphique de flux de donnรฉes a รฉtรฉ dรฉveloppรฉ pour veiller aux dรฉpendances des donnรฉes entre les opรฉrations individuelles. Une formule mathรฉmatique ou un algorithme est constituรฉ d'un certain nombre d'opรฉrations successives. Un graphique est un moyen pratique de visualiser la faรงon dont les calculs sont coordonnรฉs.
Le graphique montre un nลud et le bord. Le nลud est la reprรฉsentation d'une opรฉration, c'est ร dire l'unitรฉ de calcul. L'arรชte est le tenseur, elle peut produire un nouveau tenseur ou consommer les donnรฉes d'entrรฉe. Cela dรฉpend des dรฉpendances entre les opรฉrations individuelles.
La structure du graphe relie les opรฉrations (c'est-ร -dire les nลuds) et la faรงon dont ces opรฉrations sont alimentรฉes. Notez que le graphique n'affiche pas le rรฉsultat des opรฉrations, il permet uniquement de visualiser le lien entre les opรฉrations individuelles.
Voyons un exemple.
Imaginez que vous souhaitiez รฉvaluer la fonction suivante :
TensorFlow crรฉera un graphique pour exรฉcuter la fonction. Le graphique ressemble ร ceci :
Vous pouvez facilement voir le chemin que prendront les tenseurs pour atteindre la destination finale.
Par exemple, vous pouvez voir que l'opรฉration add ne peut pas รชtre effectuรฉe avant et . Le graphique explique que cela :
- calculer et :
- ajouter 1) ensemble
- ajouter ร 2)
- ajouter 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
Code Explication
- x : initialise une variable appelรฉe x avec une valeur constante de 5
- z : Initialiser une variable appelรฉe z avec une valeur constante de 6
- c : Initialiser un tenseur constant appelรฉ c avec une valeur constante de 5
- carrรฉ : initialise un tenseur constant appelรฉ carrรฉ avec une valeur constante de 2
- f : Construire l'opรฉrateur
Dans cet exemple, nous choisissons de garder les valeurs des variables fixes. Nous avons รฉgalement crรฉรฉ un tenseur constant appelรฉ c qui est le paramรจtre constant de la fonction f. Il prend une valeur fixe de 5. Dans le graphique, vous pouvez voir ce paramรจtre dans le tenseur appelรฉ constante.
Nous avons รฉgalement construit un tenseur constant pour la puissance dans l'opรฉrateur tf.pow(). Ce n'est pas nรฉcessaire. Nous l'avons fait pour que vous puissiez voir le nom du tenseur dans le graphique. C'est le cercle appelรฉ carrรฉ.
ร partir du graphique, vous pouvez comprendre ce qui se passera avec les tenseurs et comment ils peuvent renvoyer une sortie de 66.
Le code ci-dessous รฉvalue la fonction dans une session.
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)
Sortie
[66]
Rรฉsumรฉ
TensorFlow fonctionne autour de :
- Graphique: Environnement informatique contenant les opรฉrations et les tenseurs
- Tenseurs: Reprรฉsente les donnรฉes (ou la valeur) qui circuleront dans le graphique. C'est le bord du graphique
- Sessions: Permettre l'exรฉcution des opรฉrations
Crรฉer un tenseur constant
| constant | objet |
|---|---|
| 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) |
Crรฉer un opรฉrateur
| Crรฉer un opรฉrateur | Sujet |
|---|---|
| a + b | tf.ajouter(a, b) |
| a * b | tf.multiplier (a, b) |
Crรฉer un tenseur variable
| Crรฉer une variable | objet |
|---|---|
| valeur alรฉatoire | tf.get_variable("var", [1, 2]) |
| premiรจre valeur initialisรฉe | tf.get_variable("var_init_2", dtype=tf.int32, initializer=[ [1, 2], [3, 4] ]) |
Ouvrir une session
| Session | objet |
|---|---|
| Crรฉer une sรฉance | tf.Session() |
| Exรฉcuter une session | tf.Session.run() |
| รvaluer un tenseur | nom_variable.eval() |
| Fermer une session | session.close() |
| Sรฉance par bloc | avec tf.Session() comme session : |


