Python | Создание тензоров с использованием различных функций в Tensorflow

Опубликовано: 25 Июля, 2021

Tensorflow - это среда машинного обучения с открытым исходным кодом, которая используется для сложных численных вычислений. Он был разработан командой Google Brain в Google. Tensorflow может обучать и запускать глубокие нейронные сети, которые можно использовать для разработки нескольких приложений AI.

Что такое тензор?
Тензор можно описать как n-мерный числовой массив. Тензор можно назвать обобщенной матрицей. Это может быть 0-мерная матрица (одно число), 1-мерная матрица (вектор), 2-мерная матрица или любая структура более высокого измерения. Тензор идентифицируется тремя параметрами, а именно рангом, формой и размером. Число размерностей тензора называется его рангом. Количество столбцов и строк, которые имеет тензор, называется его формой. И тип данных, присвоенный элементам тензора, называется его типом.

Важность Tensor в Tensorflow:
Тензор можно назвать центральным типом данных Tensorflow. Это потому, что тензоры являются фундаментальными компонентами вычислений внутри структуры Tensorflow. Как следует из названия, Tensorflow - это фреймворк, который включает определение и выполнение вычислений с использованием тензоров.

Давайте обсудим все способы создания тензоров в Tensorflow.

Метод №1: Создание тензора с помощью функции constant() .

Самая популярная функция для создания тензоров в Tensorflow - это функция constant() Нам нужно указать значения или список значений в качестве аргумента для создания тензора. Если указанные значения относятся к целочисленному типу, тогда int32 является типом данных по умолчанию. И если указанные значения имеют плавающий тип, то float32 является типом данных по умолчанию.




# Program to create tensor
# using the constant() function
import tensorflow as tf
t1 = tf.constant([ 1 , 2 , 3 ])
t2 = tf.constant([[ 1.1 , 2.2 , 3.3 ], [ 4 , 5 , 6 ]])
t3 = tf.constant([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 7 , 8 , 9 ]])
t4 = tf.constant([ "String_one" , "String_two" , "String_three" ])
t5 = tf.constant([ 1.2 , 2.3 , 3.4 ], tf.float16, [ 3 ], 'N3' , False )
sess = tf.Session()
print (t1)
print (sess.run(t1))
print ( " " )
print (t2)
print (sess.run(t2))
print ( " " )
print (t3)
print (sess.run(t3))
print ( " " )
print (t4)
print (sess.run(t4))
print ( " " )
print (t5)
print (sess.run(t5))

Выход:

Здесь t1 - одномерный тензор и имеет три целочисленных значения типа int32. t2 - двумерный тензор, содержащий значения с плавающей запятой типа float32. t3 - трехмерный тензор, содержащий целочисленные значения типа int32. t4 - это одномерный объект, состоящий из трех строк типа данных. В t5 мы дали ему имя «N3», указали тип данных как «float16» и дали значение shape как 3. Поскольку значение shape для t5 равно 3, мы не можем передать в него более 3 элементов. В противном случае выдаст ошибку.

Метод №2: Создание тензора с помощью функции zeros() .

Функция zeros() используется для создания тензора, все элементы которого равны нулю. shape тензора - единственный обязательный аргумент.




# Program to create tensor using the zeros() function
import tensorflow as tf
zero_int = tf.zeros([ 3 ])
zero_float = tf.zeros([ 3 ], tf.int32, 'zero_float' )
zero_3d = tf.zeros([ 3 , 3 , 3 ], tf.int8, '3d' )
sess = tf.Session()
print (zero_int)
print (sess.run(zero_int))
print ( " " )
print (zero_float)
print (sess.run(zero_float))
print ( " " )
print (zero_3d)
print (sess.run(zero_3d))

Выход:


Метод №3: Создание тензора с помощью функции «ones ()».

Функция ones() основном делает то же самое, что и zeros() , но в этом случае элементы равны единице, а не нулю.




# Program to create tensor using the ones() function
import tensorflow as tf
one_float = tf.ones([ 3 ])
one_complex = tf.ones([ 2 , 2 ], tf.complex64, 'complex_ones_tensor' )
one_3d = tf.ones([ 3 , 3 , 3 ], tf.int8, '3d' )
sess = tf.Session()
print (one_float)
print (sess.run(one_float))
print ( " " )
print (one_complex)
print (sess.run(one_complex))
print ( " " )
print (one_3d)
print (sess.run(one_3d))

Выход:


Метод №4: Создание тензора с помощью функции fill() .

Функция fill() используется для создания тензоров, в которых все элементы тензора имеют одинаковое значение. Значение элемента должно быть передано как аргумент, а тип данных зависит от переданного значения.




# Program to create tensor using the fill() function
   
import tensorflow as tf
   
fill_1d = tf.fill([3], 10)
fill_2d = tf.fill([2, 2], 6, "2d")
fill_string = tf.fill([2, 2], "str", "fill_tensor_string")
fill_3d = tf.fill([3, 3, 3], 1.2, "3d")
  
sess = tf.Session()
  
print(fill_1d)
print(sess.run(fill_1d))
print(" ")
  
print(fill_2d)
print(sess.run(fill_2d))
print(" ")
  
print(fill_string)
print(sess.run(fill_string))
print(" ")
  
print(fill_3d)
print(sess.run(fill_3d))

Выход:

Метод №5: Создание тензоров с помощью функции linspace() .

Функция linspace() используется для создания тензоров, в которых мы указываем начальное значение, конечное значение и количество элементов в качестве аргументов, а элементы тензора изменяют свои значения на основе аргументов.




# Program to create tensor using the linspace() function
import tensorflow as tf
linspace_inc = tf.linspace( 1.0 , 10.0 , 5 , "linspace_inc" )
linspace_dec = tf.linspace( 100.0 , 10.0 , 20 , "linspace_dec" )
sess = tf.Session()
print (linspace_inc)
print (sess.run(linspace_inc))
print ( " " )
print (linspace_dec)
print (sess.run(linspace_dec))

Выход:


Метод №6: Создание тензоров с помощью функции range() .

Функция range() почти такая же, как функция linspace (). Единственное отличие состоит в том, что в функции range () мы указываем значение под названием delta , которое используется для вычисления последовательных элементов тензора, вместо количества элементов в функции linspace() .




# Program to create tensor using the range() function
import tensorflow as tf
range_inc = tf. range ( 10.0 , 100.0 , delta = 25.5 )
range_dec = tf. range ( 100.0 , delta = 25.5 , name = "range_dec" )
sess = tf.Session()
print (range_inc)
print (sess.run(range_inc))
print ( " " )
print (range_dec)
print (sess.run(range_dec))

Выход:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.