2017-04-06 5 views
-1

"IndexError:リストのインデックスが範囲外です"をデバッグするには?私は「はIndexErrorを:範囲外のリストインデックス」取得しています

buffer.append(data[data_index]) 

からは、私のコードは以下の通りです:

data_index = 0 
def generate_batch(batch_size, num_skips, skip_window): 
    global data_index 
    assert batch_size % num_skips == 0 
    assert num_skips <= 2 * skip_window 
    batch = np.ndarray(shape=(batch_size), dtype=np.int32) 
    labels = np.ndarray(shape=(batch_size, 1), dtype=np.int32) 
    span = 2 * skip_window + 1 # [ skip_window target skip_window ] 
    buffer = collections.deque(maxlen=span) 
    for _ in range(span): 
    buffer.append(data[data_index]) 
    data_index = (data_index + 1) % len(data) 

答えて

0

(この場合data_indexで)インデックスがあるときに、このエラーが発生しますリストの長さ以上(この場合はdata)。この問題が発生する可能性のある多くの理由(入力データの破損など)がありますが、エラーが発生したときにlen(data)data_indexの値を出力するのが最善の出発点です。

関連する問題