스택 오버플로에서 '삭제 된'게시물을 제외하고는 웹에서이 코드를 검색했습니다. 어디에 문제가 될 것 같다, 내 이전 검색에서Pybrain - Backprop 트레이너를 사용하는 SequentialDataSet에서 슬라이스 인덱스 오류가 발생했습니다.
TypeError: slice indices must be integers or None or have an __index__ method
: 모든 예제, PyBrain LSTM + SequencialDataSet 튜토리얼이 나에게 다음과 같은 오류를 givwa :
문제는이 다음이다 파이썬의 특정 버전 후, 정수 연산의 반환 대신 의 정수
H를 떠 그러나, 그것은 나 같은 파이썬 2.x를 사용하는 다른 모든 사람들과 함께 작동하는 것 같습니다. 아이디어가 있으십니까?
코드 (광산 아니라, 또 다른 유래의 게시물에서했다) :
File "try3.py", line 27, in <module>
print trainer.train()
File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.3-py2.7.egg/pybrain/supervised/trainers/backprop.py", line 57, in train
for seq in self.ds._provideSequences():
File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.3-py2.7.egg/pybrain/datasets/sequential.py", line 173, in _provideSequences
return iter(map(list, iter(self)))
File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.3-py2.7.egg/pybrain/datasets/sequential.py", line 169, in __iter__
yield self.getSequenceIterator(i)
File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.3-py2.7.egg/pybrain/datasets/sequential.py", line 63, in getSequenceIterator
return zip(*self.getSequence(index))
File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.3-py2.7.egg/pybrain/datasets/sequential.py", line 56, in getSequence
return [self._getSequenceField(index, l) for l in self.link]
File "/usr/local/lib/python2.7/dist-packages/PyBrain-0.3.3-py2.7.egg/pybrain/datasets/sequential.py", line 45, in _getSequenceField
return self.getField(field)[seq[index]:]
TypeError: slice indices must be integers or None or have an __index__ method
사용 : 나에게이 오류 제공
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.datasets import SequentialDataSet
from pybrain.structure import SigmoidLayer, LinearLayer
from pybrain.structure import LSTMLayer
import itertools
import numpy as np
INPUTS = 5
OUTPUTS = 1
HIDDEN = 40
net = buildNetwork(INPUTS, HIDDEN, OUTPUTS, hiddenclass=LSTMLayer, outclass=LinearLayer, recurrent=True, bias=True)
ds = SequentialDataSet(INPUTS, OUTPUTS)
ds.addSample([0,1,2,3,4],[5])
ds.addSample([5,6,7,8,9],[10])
ds.addSample([10,11,12,13,14],[15])
ds.addSample([16,17,18,19,20],[21])
net.randomize()
trainer = BackpropTrainer(net, ds)
for _ in range(1000):
print trainer.train()
x=net.activate([0,1,2,3,4])
print x
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
제게는 Python 2.7.9에서 문제없이 작동합니다. 중요한 모듈은 Python 2.7.9, scipy 0.14.0 및 pybrain 0.3입니다. 어떤 버전이 있는지보십시오 –
확실한 것 : Python 2.7.6, scipy 0.18.1, PyBrain-0.3.3 –
Ok, 가상 버전에서 사용중인 버전을 가지고 오류가 발생했습니다. 당신이 가지고있는 버전과 내가 가지고있는 버전이 바뀌 었습니다. 하나의 대답은 나중에 파이썬과 모듈을 사용하거나 당신을 업그레이드하는 virtualenv를 사용하는 것입니다. 나는 이것을 정확히 일으키고있는 것과 그 차이가 아직 무엇인지를 파헤 치지 않았다. 희망이 도움이 –