python - IndexError:索引 22 超出轴 1 的范围,大小为 22?
问题描述
在处理英语到印地语时出现错误“IndexError: index 22 is out of bounds for axis 1 with size 22”.LSTM 网络
def generate_batch(X = X_train, y = y_train, batch_size = 128):
''' Generate a batch of data '''
while True:
for j in range(1, len(X), batch_size):
encoder_input_data = np.zeros((batch_size, max_length_src),dtype='float32')
decoder_input_data = np.zeros((batch_size, max_length_tar),dtype='float32')
decoder_target_data = np.zeros((batch_size, max_length_tar, num_decoder_tokens),dtype='float32')
for i, (input_text, target_text) in enumerate(zip(X[j:j+batch_size], y[j:j+batch_size])):
for t, word in enumerate(input_text.split()):
encoder_input_data[i, t] = input_token_index[word] # encoder input seq
for t, word in enumerate(target_text.split()):
if t<len(target_text.split())-1:
decoder_input_data[i, t] = target_token_index[word] # decoder input seq #erro point
if t>0:
# decoder target sequence (one hot encoded)
# does not include the START_ token
# Offset by one timestep
decoder_target_data[i, t - 1, target_token_index[word]] = 1.
yield([encoder_input_data, decoder_input_data], decoder_target_data)
解决方案
如果我错了,请原谅我,但这看起来像是一个经典的错误。
如果列表的大小为 22,则最后一个可索引位置是 21。这是因为列表的索引从 0 开始。
从给定的代码中,很难准确地判断出这个问题源自代码的哪个位置。
推荐阅读
- java - 如何在 android 的 Exo 播放器中更改音轨
- javascript - Jquery.filer 删除拇指但不取消选择
- python - paramiko 无法连接到 ssh 服务器
- node.js - 在 express.js 控制器中等待会影响性能吗?
- python - Openpyxl:遍历一列的所有行
- python - python找到数字之间的差距
- kubernetes - Prometheus-operator 无法获取 pod CPU/内存使用情况
- java - 我不知道该怎么做才能使我的“数字 2”不为零
- python - 错误“不能将序列乘以‘float’类型的非整数”试图绘制 NACA 翼型
- r - 在 python 中为 R 找到的输入函数的等价物是什么?