1
テンソルが部分的に未知の形状とマスク(テンソルがまたはで埋められているテンソル)を持っていて、これをSparseTensorに変換したいだけです項目はマスク内の1.0
に対応します。だから、私は私のようなものに行かなければならないと思う:この時点でテンソルが未知の形状のテンソルをテンソルフローのSparseTensorに変換する
import tensorflow as tf
tf.reset_default_graph()
tf.set_random_seed(23)
BATCH = 3
LENGTH = None
dense = tf.placeholder(shape=[BATCH, LENGTH], dtype=tf.float32, name='dense')
mask = tf.placeholder(shape=[BATCH, LENGTH], dtype=tf.float32, name='mask')
indices = tf.where(tf.equal(mask, 0.0))
values = tf.gather_nd(dense, indices)
、私は次のように私が試した方法の両方が、別のエラーで終わった、以来、続行する方法がわかりません。最初:
sparse = tf.SparseTensor(indices, values, shape=tf.shape(dense))
ValueError: Tensor conversion requested dtype int64 for Tensor with dtype int32: 'Tensor("Shape:0", shape=(2,), dtype=int32)'
秒:
sparse = tf.SparseTensor(indices, values, shape=dense.get_shape())
ValueError: Cannot convert a partially known TensorShape to a Tensor: (3, ?)
第三:
sparse = tf.SparseTensor(indices, values, shape=[BATCH, LENGTH])
TypeError: Expected int64, got None of type '_Message' instead.
任意のヒント?ありがとう!
あなたの場合、SparseTensorの形状は[BATCH、LENGTH]だけではありませんか? –
@ abhisheknaik96が試行されました。明示的な '[BATCH、LENGTH]'リストを使用して得た3番目のエラーを追加しました。 – petrux
私は参照してください。とにかくLENGTH変数がどのように設定されるのか聞いてもよろしいですか? –