如何将Numpy数组转换为张量

如何将Numpy数组转换为张量

TensorFlow库中的tf.convert_to_tensor()方法用于将NumPy数组转换为Tensor。NumPy数组和张量的区别在于,张量与NumPy数组不同,是由GPU等加速器内存支持的,它们有更快的处理速度。还有一些其他方法来实现这一任务。

tf.convert_to_tensor() 函数:

语法:tf.convert_to_tensor( value, dtype=None, dtype_hint=None, name=None)

参数:

  • value : 具有注册张量转换功能的对象的类型。
  • dtype:默认为无。返回的张量的元素类型是可选的。如果没有指定类型,则从值的类型中推断出来。
  • dtype_hint : 默认为None。当dtype为None时,这是返回张量的一个可选的组件类型。当转换为张量时,调用者可能没有想到一个数据类型,因此dtype提示可以作为一个优先选择。如果不可能转换到dtype hint,这个参数就没有作用。
  • name : 默认为None。如果产生一个新的张量,这是一个可选的名字,可以使用。

示例 1:

通过使用np.array()方法创建一个NumPy数组。使用tf.convert_to_tensor()方法将NumPy数组转换为张量,并返回一个张量对象。

# import packages
import tensorflow as tf
import numpy as np
 
#create numpy_array
numpy_array = np.array([[1,2],[3,4]])
 
# convert it to tensorflow
tensor1 = tf.convert_to_tensor(numpy_array)
print(tensor1)

输出:

tf.Tensor(
[[1 2]
 [3 4]], shape=(2, 2), dtype=int64)

特殊情况:

如果我们希望我们的张量是一个特定的dtype,我们应该绕过数据类型指定dtype。在下面的例子中,float被指定为dtype。

# import packages
import tensorflow as tf
import numpy as np
 
# create numpy_array
numpy_array = np.array([[1, 2], [3, 4]])
 
# convert it to tensorflow
tensor1 = tf.convert_to_tensor(numpy_array, dtype=float, name='tensor1')
tensor1

输出 :

<tf.Tensor: shape=(2, 2), dtype=float32, numpy=
array([[1., 2.],
       [3., 4.]], dtype=float32)>

示例 2:

我们也可以使用tf.Variable()方法将NumPy数组转换为Tensor。tf.Variable()函数也有参数dtype和name。它们是可选的,我们可以在需要时指定它们。

# import packages
import tensorflow as tf
import numpy as np
 
# create numpy_array
numpy_array = np.array([[1, 2], [3, 4]])
 
# convert it to tensorflow
tensor1 = tf.Variable(numpy_array, dtype=float, name='tensor1')
tensor1

输出:

<tf.Variable 'tensor1:0' shape=(2, 2) dtype=float32, numpy=
array([[1., 2.],
       [3., 4.]], dtype=float32)>

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程