如何使用Tensorflow和Python对具有相同长度的多个字符串进行编码?
可以使用“tf.Tensor”作为输入值对具有相同长度的多个字符串进行编码。当需要编码长度不同的多个字符串时,应该使用tf.RaggedTensor作为输入。如果张量包含填充/稀疏格式的多个字符串,则需要将其转换为tf.RaggedTensor。然后,应在其上调用unicode_encode方法。
让我们了解如何使用Python表示Unicode字符串,并使用Unicode等效项操作这些字符串。首先,我们根据脚本检测将Unicode字符串分成标记,使用标准字符串操作的Unicode等价项进行操作。
我们使用Google Colaboratory来运行以下代码。Google Colab或Colaboratory可在浏览器上运行Python代码,不需要任何配置,并且可以免费访问GPU(图形处理器)。 Colaboratory是构建在Jupyter笔记本上的。
print("When encoding multiple strings of same lengths, tf.Tensor is used as input")
tf.strings.unicode_encode([[99, 97, 116], [100, 111, 103], [ 99, 111, 119]],output_encoding='UTF-8')
print("When encoding multiple strings with varying length, a tf.RaggedTensor should be used as input:")
tf.strings.unicode_encode(batch_chars_ragged, output_encoding='UTF-8')
print("If there is a tensor with multiple strings in padded/sparse format, convert it to a tf.RaggedTensor before calling 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
阅读更多:Python 教程
输出
When encoding multiple strings of same lengths, tf.Tensor is used as input
When encoding multiple strings with varying length, a tf.RaggedTensor should be used as input:
If there is a tensor with multiple strings in padded/sparse format, convert it to a tf.RaggedTensor before calling unicode_encode
说明
- 当对具有相同长度的多个字符串进行编码时,可以使用tf.Tensor作为输入。
- 当对具有不同长度的多个字符串进行编码时,可以使用tf.RaggedTensor作为输入。
- 当张量中存在填充/稀疏格式的多个字符串时,需要将其转换为tf.RaggedTensor,然后对其调用unicode_encode。