Переменные тензорного потока необходимы, поскольку они используются для хранения параметров моделей машинного обучения, например весов и смещений в нейронных сетях.

Кроме того, когда модели обучаются с использованием разных алгоритмов, значения переменных обновляются много раз, и эти переменные действуют как параметры для моделей машинного обучения.

Итак, здесь я объясню переменные тензорного потока и то, как их создавать с помощью функции tf.Variable() с различными свойствами, которыми обладает эта переменная.

После я покажу вам, как обновить или изменить значения существующих переменных. Вы также научитесь выполнять математические операции с этими переменными, такие как сложение, умножение, вычитание и т. д.

Содержание

Что такое переменная TensorFlow?

Общий смысл переменной заключается в том, что значение переменной может меняться (изменяться) в ходе выполнения программы. Переменная TensorFlow работает по той же концепции, переменные хранят значение, которое можно прочитать и изменить в любое время посредством операции.

В TensorFlow при обучении моделей машинного обучения он считывает и обновляет данные. Эти данные или значения хранятся в переменной, поэтому переменная является основной концепцией построения и обучения моделей машинного обучения.

Создание переменной

Чтобы создать переменную в TensorFlow, используется конструктор tf.Varaible(), такой же, как и tf.constant(). Вы можете инициализировать его или передать значение с различными свойствами, такими как форма, тип d и имя.

  • Помните, конструктор Variable() находится в тензорном потоке, поэтому здесь он написан так: tf.Variable() означает доступ к конструктору Variable() из тензорного потока (tf).
  • tf.Variable — это своего рода изменяемый тензор, и значение этого тензора можно изменить во время вычислений.

Чтобы создать переменную в тензорном потоке, используйте синтаксис ниже.

tf.Variable(value, shape=(), dtype=datatype, name='variable')

Где находится недвижимость:

  • value: это начальное значение, которое хранит переменная.
  • shape: это форма переменной в кортеже().
  • dtype: тип данных элементов в переменной.
  • name: имя переменной.

Теперь давайте перейдем и посмотрим, как создать переменную с начальным значением. Например, если у вас есть значение [6, 1, 9, 3], чтобы создать переменную с этим значением, передайте это значение в функцию tf.Variable().

integer_variable = tf.Variable([6, 1, 9, 3])

Распечатайте значение переменной, используя приведенный ниже код.

print(integer_variable)

Создание переменной Tensorflow

Используя приведенный выше код, сначала создайте переменную с именем integer_variable с помощью функции tf.Variable() и инициализируйте переменную списком значений [6, 1, 9, 3], а затем распечатайте значение свойств переменной с помощью print (integer_variable) функция.

На выходе мы получаем четыре значения:

  • Сначала идет «Переменная:0», которая является именем переменной.
  • Второй — это форма переменной, равная 4, и представленная кортежем «(4, )».
  • Третий — это dtype, который является типом данных переменных элементов, таких как int32 (целое число).
  • Последними являются элементы переменной, которая представляет собой массив элементов [6, 1, 9, 3].

Вышеупомянутые свойства также могут быть предоставлены при инициализации значения переменной. Например, у вас есть список значений [2, 4, 7].

Передайте приведенный выше список значений в tf.Variable() с такими свойствами, как форма(3), dtype как float32 (для десятичного значения) и назовите Float_Variable.

float_var = tf.Variable([2.0, 4.0, 7.0], shape=(3,), dtype=tf.float32, name = 'Float_Variable')

print(float_var)

Создание переменной с начальным значением

Как вы можете видеть, переменная float_var создается с именем «Float_Variable», формой(3, ) и dtype float32(здесь доступ к dtype float32 из tf), а значение переменной равно [2.0, 4.0, 7.0].

Помните: если вы передаете значение только в функцию tf.Variable(), она автоматически выводит все свойства, такие как форма, dtype и имя переменной, на основе значения.

Как присвоить новое значение существующей переменной

Как вы знаете, значение переменной можно изменить с помощью операции. Здесь я покажу, как присвоить новое значение существующей переменной.

Сначала создайте переменную с начальным значением [2, 5, 7, 8], как показано ниже.

var = tf.Variable([2, 5, 7, 8])

print(var)

Как присвоить новое значение существующей переменной

Но здесь я хочу показать вам, как получить только значение переменной. Как вы можете видеть в выводе, он отображает такую информацию, как форма, dtype и т. д., которая на этот раз не нужна.

Чтобы получить только значение из переменной, вам нужно вызвать метод numpy() для переменной, как показано ниже.

print(var.numpy())

Метод numpy() вызывается для переменной с именем var

Посмотрите на результат, когда метод numpy() вызывается для переменной с именем var, он возвращает только значение переменной, которое равно [2, 5, 7, 8].

Давайте изменим значение переменной var. Предположим, у вас есть список значений [3, 3, 6, 9], и вам нужно присвоить это значение существующей переменной var.

Чтобы изменить значение переменной, вызовите метод Assign() для переменной var и передайте ей новое значение как Assign([3, 3, 6, 9]).

var.assign([3, 3, 6, 9])

Просмотрите новое значение переменной var, используя код.

print('Update Value',var.numpy())

Значение переменной var

Значение переменной var изменяется на [3, 3, 6, 9] в приведенном выше выводе. Итак, вы изменили значение существующей переменной, используя метод Assign() для переменной.

До сих пор вы создали только два типа переменных, которые содержат только список целочисленных значений и значений с плавающей запятой, но вы можете создать переменные любого типа, например логические, комплексные, строковые и т. д.

Создание различных типов

TensorFlow позволяет создавать переменные разных типов с помощью функции tf.Variable(). Посмотрите на пример ниже.

Создайте переменную с целочисленным значением:

integer_var = tf.Variable(42)

print(integer_var)

Создание различных типов 

Создайте переменную со значением с плавающей запятой:

float_var = tf.Variable(200.10)

print(float_var)

Создайте переменную со значением с плавающей запятой

Создайте переменную с другим тензором:

tensor = tf.constant([5, 1, 3])

variable_tensor = tf.Variable(tensor)

print(variable_tensor)

Создайте переменную с другим тензором

Создайте переменную со строковым значением:

str_variable = tf.Variable("Learning Tensorflow Variable")

print(str_variable)

Переменная со строковым значением

Создайте переменную с логическим значением:

bool_variable = tf.Variable(True)

print(bool_variable)

С логическим значением

Из приведенного выше примера вы увидели, как создавать переменные разных типов, а также вы можете создавать разреженные или сложные переменные.

Математические операции с переменной

Операции в TensorFlow означают математические операции, такие как сложение, умножение, вычитание и т. д. Кроме того, операции нейронной сети включают функции свертки и активации.

Операция сложения

Вы можете добавить более одной переменной тензорного потока в одну переменную.

Сначала определите две переменные тензорного потока, var1 и var2, и инициализируйте их значениями 20,0 и 40,0 соответственно.

var1 = tf.Variable(20.0)
var2 = tf.Variable(40.0)

Чтобы добавить переменные, создайте третью переменную и используйте оператор плюс(+), чтобы объединить var1 и var2, как показано ниже.

var3 = var1 + var2

Теперь проверьте и распечатайте значение var3, используя код.

print(var3.numpy())

Операция сложения

Значение var3 равно 60,0, это сумма значений переменных var1 и var2. Вы добавили два скалярных значения в одно значение с помощью оператора плюс(+).

Вы также можете добавить к переменной скалярное значение (одиночное число). Предположим, у вас есть список значений переменной, например [2,4,6], и вы хотите добавить 1 к каждому элементу. После добавления 1 список должен быть таким [3, 5, 7]. Для этого запустите код ниже.

vector_variable = tf.Variable([2,4,6])

added_value = vector_variable + 1;

print(added_value.numpy())

Операция сложения со скалярным значением

После добавления 1 к векторной переменной, содержащей список значений, каждый элемент увеличивается на 1 [3, 5, 7].

Вы даже можете добавить две переменные, содержащие список значений:

vector_var1 = tf.Variable([2,4,6])

vector_var2 = tf.Variable([2,4,6])

vector_var3 = vector_var1 + vector_var2

print(vector_var3.numpy())

Операция сложения со списком значений

Как и в выводе, вы можете добавить соответствующий элемент каждого списка и в результате [4, 8, 12].

  • Здесь следует отметить одну вещь: всегда старайтесь добавлять переменные, содержащие одинаковое количество элементов.

Если одна переменная содержит 3 элемента, а другая — 2 или 4 элемента, то обе нельзя добавить. Появится ошибка типа «Несовместимые фигуры».

Например, посмотрите на переменные в приведенном ниже коде.

vector_var1 = tf.Variable([2,4,6])

vector_var2 = tf.Variable([2,4,6,4])

vector_var3 = vector_var1 + vector_var2

print(vector_var3.numpy())

Операция сложения с несовместимыми формами

Как вы можете видеть, отображается ошибка типа InvalidArgumentError, что означает несовместимые фигуры: [3] vs [4]. Что представляет собой одну переменную(vector_var1) содержит 3 элемента, другую переменную (vector_var3) 4 элемента, поэтому добавление невозможно. .

Вы даже можете выполнять сложение переменных, содержащих список списков или более высоких измерений.

Операция вычитания

Вы также можете выполнить вычитание переменных тензорного потока. Например, определите две переменные и вычтите одну из другой с помощью оператора минус(-).

Операция вычитания

Из выходных данных var2 вычитается из var1 с помощью оператора минус(-), и в результате возвращается 20,0.

Используйте приведенный ниже код, чтобы вычесть скалярное значение 1 из списка значений [3,4,9] в переменной TensorFlow.

vector_variable = tf.Variable([3,4,9])

subtracted_value = vector_variable - 1;

print(subtracted_value.numpy())

Операция вычитания со списком значений

1 вычитается из каждого элемента в векторной_переменной, в результате он содержит значения [2, 3, 8].

Затем вы можете вычесть два тензорных потока, содержащих список значений:

vector_var1 = tf.Variable([2,4,6])

vector_var2 = tf.Variable([1,3,2,])

vector_var3 = vector_var1 - vector_var2

print(vector_var3.numpy())

С двумя списками значений в переменных

Значения в vector_var2 вычитаются из vector_var1. В результате получается [1, 1, 4]. Всегда передавайте переменную одинаковой формы. Операция вычитания завершится неудачей, если вы передадите две переменные, содержащие неодинаковое количество элементов.

Операция умножения

Точно так же, как вы выполнили сложение и вычитание переменных тензорного потока, вы можете выполнять операции умножения.

Чтобы умножить две скалярные переменные, используйте оператор звездочки(*).

Код:

import tensorflow as tf

var1 = tf.Variable(10.0)
var2 = tf.Variable(10.0)

var3 = var1 * var2

print(var3.numpy())

Операция умножения

Умножение var1 и var2 возвращает результат 100. Далее давайте умножим число — список значений переменной, как показано ниже.

vector_variable = tf.Variable([1,3,6])

multiplied_value = vector_variable * 2;

print(multiplied_value.numpy())

Операция умножения на число

Здесь число 2 умножается на переменную вектор_переменная; в результате 2 умножается на каждый элемент переменной и возвращает результат [2, 6, 12].

Вы также можете перемножить две переменные, содержащие список значений:

vector_var1 = tf.Variable([3,5,2])

vector_var2 = tf.Variable([2,3,2])

vector_var3 = vector_var1 * vector_var2

print(vector_var3.numpy())

С двумя переменными, содержащими список значений

Вы можете видеть, как две переменные, содержащие одинаковое количество элементов, умножаются, в результате чего получается новый список значений [6, 15, 4].

Операция деления

Наконец, вы можете выполнять операции деления над переменными тензорного потока, используя ‘/’.

Деление двух переменных содержит скалярное значение:

import tensorflow as tf

var1 = tf.Variable(5)
var2 = tf.Variable(2)

var3 = var1 / var2

print(var3.numpy())

Операция деления

Разделение переменных var1 и var2 дает результат 2,5, как показано в выходных данных. Две переменные разделяются с помощью символа «/».

Далее давайте посмотрим, как разделить список значений в переменной TensorFlow с помощью числа, для этого запустите код ниже.

vector_variable = tf.Variable([5,3,2])

divided_value = vector_variable / 2;

print(divided_value.numpy())

Операция деления с числом

Как видите, каждый элемент векторной_переменной делится на два отдельных числа и дает новое значение: [2,5, 1,5, 1.].

Теперь давайте разделим две переменные, содержащие список значений:

vector_var1 = tf.Variable([10,20,40])

vector_var2 = tf.Variable([2,4,5])

vector_var3 = vector_var1 / vector_var2

print(vector_var3.numpy())

С двумя переменными, содержащими список значений

Две переменные vector_var1 и vector_var2 разделяются с помощью символа «/», после деления возвращается новое значение: [5., 5., 8.].

Заключение

Разработчикам Tensorflow необходимо знать, как создавать переменные TensorFlow и изменять их значения или выполнять над ними операции, такие как сложение, вычитание, умножение и деление.

Добавить комментарий