确实是一个简单的问题,但似乎无法在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本身是否有解决方案
答案 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() 将给定张量中的每个条目转换为字符串。支持许多数字