tf.convert_to_tensor()

2022-09-04 21:46:48 浏览数 (1)

将给定值转换为张量。

代码语言:javascript复制
tf.convert_to_tensor(
    value,
    dtype=None,
    name=None,
    preferred_dtype=None,
    dtype_hint=None
)

该函数将各种类型的Python对象转换为张量对象。它接受张量对象、数字数组、Python列表和Python标量。例如:

代码语言:javascript复制
import numpy as np

def my_func(arg):
  arg = tf.convert_to_tensor(arg, dtype=tf.float32)
  return tf.matmul(arg, arg)   arg

# The following calls are equivalent.
value_1 = my_func(tf.constant([[1.0, 2.0], [3.0, 4.0]]))
value_2 = my_func([[1.0, 2.0], [3.0, 4.0]])
value_3 = my_func(np.array([[1.0, 2.0], [3.0, 4.0]], dtype=np.float32))

这个函数在用Python编写新操作时非常有用(如上面示例中的my_func)。所有标准的Python op构造函数都将此函数应用于它们的每个张量值输入,这使得这些ops除了接受张量对象外,还可以接受numpy数组、Python列表和标量。

注意:当Python列表或标量中不存在浮点数和字符串类型时,此函数与默认Numpy行为不同。将抛出一个错误,而不是静静地转换None值。

参数:

  • value:类型具有注册张量转换函数的对象。
  • dtype:返回张量的可选元素类型。如果缺少,则从值的类型推断类型。
  • name:创建新张量时使用的可选名称。
  • preferred_dtype:返回张量的可选元素类型,当dtype为None时使用。在某些情况下,调用者在转换为张量时可能没有考虑到dtype,因此preferred_dtype可以用作软首选项。如果转换为preferred_dtype是不可能的,则此参数没有效果。
  • dtype_hint:与preferred_dtype含义相同,并覆盖它。

返回值:

  • 一个基于值的张量。

可能产生的异常:

  • TypeError: If no conversion function is registered for value to dtype.
  • RuntimeError: If a registered conversion function returns an invalid value.
  • ValueError: If the value is a tensor not of given dtype in graph mode

0 人点赞