1
テンソルの2進数、たとえば[0,1,0,1,1]をテンソルフローの整数に変換したいとします。私の場合、テンソルはかなり大きく、長さは約80エレメントです。これを効率的に行う方法はありますか?テンソルフローのバイナリをintに変換する
テンソルの2進数、たとえば[0,1,0,1,1]をテンソルフローの整数に変換したいとします。私の場合、テンソルはかなり大きく、長さは約80エレメントです。これを効率的に行う方法はありますか?テンソルフローのバイナリをintに変換する
これはほぼ確実に、長さ80のバイナリテンソルとオーバーフローにつながるが、基本的な戦略は2のべき乗を持つテンソルとベクトル化された乗算を行うには、次のようになります。
import tensorflow as tf
binary_string = tf.constant([1, 0, 0, 1, 1])
result = tf.reduce_sum(
tf.cast(tf.reverse(tensor=binary_string, axis=[0]), dtype=tf.int64)
* 2 ** tf.range(tf.cast(tf.size(binary_string), dtype=tf.int64)))
with tf.Session():
print(result.eval())
プリント:
19
どのような整数を取得したいですか? 160000ビットは、64ビット整数に収まるビット数より少し多いです。バッチ処理が行われていますか? –
@AllenLavoie申し訳ありません。合計で80ビットです。 –