Python |在张量流中使用不同的函数创建张量

原文:https://www . geesforgeks . org/python-creating-tensors-use-differential-functions-in-tensorflow/

Tensorflow 是一个开源的机器学习框架,用于复杂的数值计算。它是由谷歌的谷歌大脑团队开发的。Tensorflow 可以训练和运行深度神经网络,用于开发几个人工智能应用程序。

什么是张量? 一个张量可以描述为一个 n 维数值数组。张量可以称为广义矩阵。它可以是 0 维矩阵(单个数)、1 维矩阵(向量)、2 维矩阵或任何更高维的结构。张量由三个参数确定,即。等级、形状和大小。张量的维数被称为它的秩。张量的列数和行数被称为它的形状。并且,赋予张量元素的数据类型被称为它的类型。

张量在张量流中的重要性: 一个张量可以称为张量流的中心数据类型。这是因为张量是张量流框架内计算的基本组成部分。顾名思义,张量流是一个涉及定义和运行张量计算的框架。

让我们讨论一下在张量流中创建张量的所有不同方法。

方法#1: 使用constant()函数创建张量。

在张量流中创建张量最流行的函数是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("\n")

print(t2)
print(sess.run(t2))
print("\n")

print(t3)
print(sess.run(t3))
print("\n")

print(t4)
print(sess.run(t4))
print("\n")

print(t5)
print(sess.run(t5))

输出:

这里,t1 是一维张量,有三个整数数据类型 int32。t2 是二维张量,它包含数据类型 float32 的浮点值。t3 是一个三维张量,它包含数据类型 int32 的整数值。t4 是具有三个数据类型字符串的一维字符串。在 t5,我们给它取了一个名字“N3”,指定数据类型为“float16”,给 shape 的值为 3。因为 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("\n")

print(zero_float)
print(sess.run(zero_float))
print("\n")

print(zero_3d)
print(sess.run(zero_3d))

输出:

方法#3: 使用“one()”函数创建张量。

ones()函数基本上和zeros()函数做同样的事情,但是在这种情况下元素是 1 而不是 0。

# 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("\n")

print(one_complex)
print(sess.run(one_complex))
print("\n")

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("\n")

print(fill_2d)
print(sess.run(fill_2d))
print("\n")

print(fill_string)
print(sess.run(fill_string))
print("\n")

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("\n")

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("\n")

print(range_dec)
print(sess.run(range_dec))

输出: