2017-09-28 11 views
2

リスト索引が範囲外です。私はそれが次の数字を予測しているからだと思う。私はこの記事https://chunml.github.io/ChunML.github.io/project/Creating-Text-Generator-Using-Recurrent-Neural-Network/をリストの次の数字を予測するための基礎として守っていますが、私はそのアイデアを整理するのに苦労しています。リスト索引が範囲外です:Python、Tensorflow RNN

data = ['1','0','0','1','4','2','6','1','1','0','0','1','4','2'] 
chars = list(set(data)) 

VOCAB_SIZE= len(chars) 
number_of_sequences= 1 
SEQ_LENGTH=2 
#Prepare training data 

ix_to_char={ix:char for ix, char in enumerate(chars)} 
char_to_ix={char:ix for ix, char in enumerate(chars)} 

X= np.zeros((len(data)/SEQ_LENGTH, SEQ_LENGTH, VOCAB_SIZE)) 
y= np.zeros((len(data)/SEQ_LENGTH, SEQ_LENGTH, VOCAB_SIZE)) 

for i in range(len(data)/SEQ_LENGTH): 
    X_sequence = data[i*SEQ_LENGTH:(i+1)*SEQ_LENGTH] 
    X_sequence_ix=[char_to_ix[value] for value in X_sequence] 
    input_sequence= np.zeros((SEQ_LENGTH, VOCAB_SIZE)) 

    for j in range(0,SEQ_LENGTH): 
     input_sequence[j][X_sequence_ix[j]]=1 
    X[i]=input_sequence 

    y_sequence = data[i*(SEQ_LENGTH+1):(i+1)*(SEQ_LENGTH+1)] 
    y_sequence_ix = [char_to_ix[value] for value in y_sequence] 
    target_sequence= np.zeros((SEQ_LENGTH, VOCAB_SIZE)) 

    for j in range(0,SEQ_LENGTH): 
     target_sequence[j][y_sequence_ix[j]]=1 #LIST INDEX OUT OF RANGE 

    y[i]=target_sequence 

何か助けが歓迎されます!

+0

は 'iの範囲内(LEN(データ)/ SEQ_LENGTH)でルーピング試してみてください - 1:' – Engineero

+0

私はループのための私の周りにwhileループを入れて、その加工されましたまた、ありがとうございました! – user8512104

+0

おそらく、私はあなたの方法を試しても、インデックス作成エラーで同じ結果を得ました... – user8512104

答えて

0

forループ内でifステートメントループを使用して、コードがリストを範囲外に索引付けしないようにします。

は次のように条件を使用します。

for i in range(len(data)/SEQ_LENGTH): if ((i+1)*SEQ_LENGTH) < len(data): X_sequence = data[i*SEQ_LENGTH:(i+1)*SEQ_LENGTH]

関連する問題