Python | Создание тензоров с использованием различных функций в Tensorflow
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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.