如何使用 Tensorflow 和 Python 编码多个长度相同的字符串?

pythonserver side programmingprogrammingtensorflow

可以使用 ‘tf.Tensor’ 作为输入值来编码多个长度相同的字符串。当需要编码多个长度不等的字符串时,应使用 tf.RaggedTensor 作为输入。如果张量包含多个填充/稀疏格式的字符串,则需要将其转换为 tf.RaggedTensor。然后,应该对其调用方法 unicode_encode。

阅读更多: 什么是 TensorFlow,以及 Keras 如何与 TensorFlow 配合使用来创建神经网络?

让我们了解如何使用 Python 表示 Unicode 字符串,并使用 Unicode 等效项来操作这些字符串。首先,我们在标准字符串操作的 Unicode 等效项的帮助下,根据脚本检测将 Unicode 字符串分离为标记。

我们正在使用 Google Colaboratory 来运行以下代码。 Google Colab 或 Colaboratory 有助于通过浏览器运行 Python 代码,并且不需要零配置并可以自由访问 GPU(图形处理单元)。 Colaboratory 是在 Jupyter Notebook 上构建的。

print("当对多个长度相同的字符串进行编码时,使用 tf.Tensor 作为输入")
tf.strings.unicode_encode([[99, 97, 116], [100, 111, 103], [ 99, 111, 119]],output_encoding='UTF-8')
print("当对多个长度不同的字符串进行编码时,应使用 tf.RaggedTensor 作为输入:")
tf.strings.unicode_encode(batch_chars_ragged, output_encoding='UTF-8')
print("如果存在包含多个填充/稀疏格式字符串的张量,则将其转换为tf.RaggedTensor 在调用 unicode_encode")
tf.strings.unicode_encode(
   tf.RaggedTensor.from_sparse(batch_chars_sparse),
   output_encoding='UTF-8')
tf.strings.unicode_encode(
   tf.RaggedTensor.from_tensor(batch_chars_padded, padding=-1),
   output_encoding='UTF-8')

代码来源:https://www.tensorflow.org/tutorials/load_data/unicode

输出

当对多个长度相同的字符串进行编码时,使用 tf.Tensor 作为输入
当对长度不同的多个字符串进行编码时,应使用 tf.RaggedTensor 作为输入:
如果存在具有多个填充/稀疏格式的字符串的张量,则在调用 unicode_encode 之前将其转换为 tf.RaggedTensor

解释

  • 当对长度相同的多个字符串进行编码时,可以使用 tf.Tensor 作为输入。
  • 当对长度不同的多个字符串进行编码时,可以使用 tf.RaggedTensor 作为输入。
  • 当存在具有多个填充/稀疏格式的字符串的张量时,需要将其转换为 tf.RaggedTensor,然后对其调用 unicode_encode。

相关文章