2017-04-24 17 views
1

のコードです:Tensorflow tf.split()リストのインデックスが範囲外ですか?ここで

a = tf.constant([1,2,3,4]) 
b = tf.constant([4]) 
c = tf.split(a, tf.squeeze(b)) 

そして、それは間違っていることが判明:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/jeff/anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/array_ops.py", line 1203, in split 
    num = size_splits_shape.dims[0] 
IndexError: list index out of range 

しかし、なぜ?

答えて

2

The docs num_or_size_splitsはテンソル、size_splits場合状態、

は、次いで、lenは(size_splits)断片に値を分割します。 i番目のピースの形状は、サイズがsize_splits [i]の次元軸に沿った値以外の値と同じです。

size_splitsはスライス可能である必要があります。

ただし、の場合、例では要素が1つしかないため、次元のないスカラーが返されます。スカラーをスライスすることはできません。

b_ = tf.squeeze(b) 
b_[0] # error 

したがって、エラーです。

+0

答えていただきありがとうございますが、今では4個に分割する方法はありますか? –

+0

'tf.split(a、4)'であり、テンソル内の数値をラップすることはありません。 – user1735003

関連する問題