Hej guys 埋め込みを使用して、密集した空間に複数のラベル付きカテゴリデータを投影しようとしています。Tensorflow埋め込みルックアップで不等サイズのリスト
ここにおもちゃの例があります。私が4つのカテゴリを持ち、それらを2次元空間に投影したいとしましょう。
sess = tf.InteractiveSession()
embeddings = tf.Variable(tf.random_uniform([4, 2], -1.0, 1.0))
sess.run(tf.global_variables_initializer())
y = tf.nn.embedding_lookup(embeddings, [0,1])
y.eval()
と、このようなものを返す:
array([[ 0.93999457, -0.83051205],
[-0.1699729 , 0.73936272]], dtype=float32)
をさらに私は、コードは次のようになります2つのインスタンス、カテゴリ0に属する第1の1、カテゴリー2番目の1 1.
を得ました
これまでのところ、とても良いです。インスタンスが2つのカテゴリに属しているとします。埋め込みルックアップは、例えば平均で減らすことができる2つのベクトルを返します。
y = tf.nn.embedding_lookup(embeddings, [[0,1],[1,2]]) # two categories
y_ = tf.reduce_mean(y, axis=1)
y_.eval()
これは私も同様に動作します。私の問題は、今私のバッチ内のインスタンスは、カテゴリ例えば、同じ量に属していない場合に生じる:
y = tf.nn.embedding_lookup(embeddings, [[0,1],[1,2,3]]) # unequal sized lists
y_ = tf.reduce_mean(y, axis=1)
y_.eval()
ValueError: Argument must be a dense tensor: [[0, 1], [1, 2, 3]] - got shape [2], but wanted [2, 2].
この問題を回避する方法についてのアイデアを?