2017-06-25 8 views
0

私は、テンソルフロー1.0.1をpython 3.xで使用しています。特定のテンソル行のチャンクをテンソルで保持する

私はn x seq行を持つテンソルLを持っている、と私はciため、seq行あたりの最初のiの要素を維持したいです。したがって、len(c)=nおよびi-thの要素は、そのパーティションの先頭から、 seqサイズのLに保持する要素の数を示します。

たとえば、L=list(range(10))c=[2,4]の場合、結果はD=[0,1,5,6,7,8]です。もちろん、実際の例では、LD? x dimテンソルです。

私はtf.split(T,c,0)を使用しようとしましたが、ここでは、例ごとにc=[2,3,4,1]となり、各seqで破棄するアイテムの数を計算しました。そのようにすると、他のすべての要素を破棄した後、目的の行はtf.split結果リストの要素になります。

ValueError: Cannot infer num from shape Tensor("tensorname", shape=(?,), dtype=int32) 

tf.split()のDOCはそれことを言う:

問題値とcの長さは、プレースホルダを介して供給され、グラフの作成時に未知であるので、私は例外を取得している、ありますnum_or_size_splits argから分割の数がnumであると推測できない場合は上記の例外がスローされます。だから分割の数は絶対にになりますグラフの構築時に知られている?

もしそうなら、以下の目標を達成するための静的に定義可能な方法や回避策が考えられますか?

ご協力いただきありがとうございます。

答えて

0

私たちはtf.gathertf.gather_ndを使用して、テンソルから特定のインデックスを得ることができます。

だから所望の位置を得るために、私が代わりにcの、直接そのインデックスを供給し、使用してそれらを取得tf.gather(L,indices)

関連する問題