📌  相关文章
📜  Python|在 Tensorflow 中使用不同的函数创建张量

📅  最后修改于: 2022-05-13 01:55:29.140000             🧑  作者: Mango

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

Tensorflow 是一个用于复杂数值计算的开源机器学习框架。它是由 Google 的 Google Brain 团队开发的。 Tensorflow 可以训练和运行可用于开发多个 AI 应用程序的深度神经网络。

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

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("\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 的 shape 值为 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:使用“ones()”函数创建张量。

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

输出: