Tensorflow-如何将int32转换为字符串(使用Python API进行Tensorflow)

时间:2018-11-14 13:09:50

标签: python tensorflow

确实是一个简单的问题,但似乎无法在TensorFlow文档中或通过谷歌搜索找到功能。

如何将tf.int32类型的张量转换为tf.string类型的张量?

我试图简单地使用以下内容进行投射:

x = tf.constant([1,2,3], dtype=tf.int32)
x_as_string = tf.cast(x, dtype=tf.string) # hoping for this output: [ '1', '2', '3' ]

with tf.Session() as sess:
  res = sess.run(x_as_string)

但遇到错误消息:

  

不支持将int32转换为字符串

我缺少的文档中是否有一个简单的功能?


更新:

澄清一下:我意识到我可以使用带有tf.py_func的python函数来“解决”这个问题,但询问TensorFlow本身是否有解决方案

2 个答案:

答案 0 :(得分:1)

您可以使用新添加的(v1.12.0)tf.strings.format

import tensorflow as tf

x = tf.constant([1, 2, 3], dtype=tf.int32)
x_as_string = tf.map_fn(lambda xi: tf.strings.format('{}', xi), x, dtype=tf.string)

with tf.Session() as sess:
  res = sess.run(x_as_string)
  print(res)
  # [b'1' b'2' b'3']

答案 1 :(得分:1)

tf.as_string() 将给定张量中的每个条目转换为字符串。支持许多数字