Переменные тензорного потока необходимы, поскольку они используются для хранения параметров моделей машинного обучения, например весов и смещений в нейронных сетях.
Кроме того, когда модели обучаются с использованием разных алгоритмов, значения переменных обновляются много раз, и эти переменные действуют как параметры для моделей машинного обучения.
Итак, здесь я объясню переменные тензорного потока и то, как их создавать с помощью функции tf.Variable() с различными свойствами, которыми обладает эта переменная.
После я покажу вам, как обновить или изменить значения существующих переменных. Вы также научитесь выполнять математические операции с этими переменными, такие как сложение, умножение, вычитание и т. д.
- Что такое переменная TensorFlow?
- Создание переменной
- Как присвоить новое значение существующей переменной
- Создание различных типов
- Математические операции с переменной
- Операция сложения
- Операция вычитания
- Операция умножения
- Операция деления
- Заключение
Что такое переменная 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)
Используя приведенный выше код, сначала создайте переменную с именем 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, он возвращает только значение переменной, которое равно [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 изменяется на [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 и изменять их значения или выполнять над ними операции, такие как сложение, вычитание, умножение и деление.