我试图执行与tf.decode_raw相反的操作.
一个例子将给出一个dtype = tf.float32的张量,我想有一个函数encode_raw()接受一个浮动张量并返回一个类型为字符串的Tensor.
这很有用,因为我可以使用tf.write_file来编写文件.
有没有人知道如何使用现有函数在Tensorflow中创建这样的函数?
我建议使用 来将数字写为文本tf.as_string。但是,如果您确实想将它们写为二进制字符串,则事实证明这是可能的:
import tensorflow as tf
with tf.Graph().as_default():
character_lookup = tf.constant([chr(i) for i in range(256)])
starting_dtype = tf.float32
starting_tensor = tf.random_normal(shape=[10, 10], stddev=1e5,
dtype=starting_dtype)
as_string = tf.reduce_join(
tf.gather(character_lookup,
tf.cast(tf.bitcast(starting_tensor, tf.uint8), tf.int32)))
back_to_tensor = tf.reshape(tf.decode_raw(as_string, starting_dtype),
[10, 10]) # Shape information is lost
with tf.Session() as session:
before, after = session.run([starting_tensor, back_to_tensor])
print(before - after)
Run Code Online (Sandbox Code Playgroud)
这对我来说打印了一个全零的数组。
| 归档时间: |
|
| 查看次数: |
567 次 |
| 最近记录: |