2017-04-06 103 views
-1

我得到:从如何调试“IndexError:列表索引超出范围”?

buffer.append(data[data_index]) 

我的代码“IndexError列表索引超出范围”是如下:当指数(在这种情况下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)。出现此问题的可能原因很多(例如输入数据损坏),但最好的出发点是在出现错误时打印出len(data)data_index的值。

相关问题