私はtf.decode_rawとは逆の動作をしようとしています。encode_rawテンソルフロー関数の作成方法は?
テンソルをdtype = tf.float32とすると、浮動小数点テンソルを取り込み、型文字列のテンソルを返す関数encode_raw()を使用したいと考えています。
これは、tf.write_fileを使用してファイルを書き込むことができるので便利です。
既存の関数を使用してTensorflowでそのような関数を作成する方法を知っている人はいますか?
私はtf.decode_rawとは逆の動作をしようとしています。encode_rawテンソルフロー関数の作成方法は?
テンソルをdtype = tf.float32とすると、浮動小数点テンソルを取り込み、型文字列のテンソルを返す関数encode_raw()を使用したいと考えています。
これは、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)
これは、すべてゼロの配列を出力します。 Pythonの3で働く人々のため
:
CHR()は、前の回答のコードを用いて得られたバイトの出力を変化させるのPython 3で異なる挙動を有します。
character_lookup = tf.constant([i.tobytes() for i in np.arange(256, dtype=np.uint8)])
修正この問題に、このコード行
character_lookup = tf.constant([chr(i) for i in range(256)])
を交換します。
それが機能します!ありがとう! –