Pybrain에서 간단한 시작 네트워크를 사용하고 있습니다. 내 데이터 (약 200 데이터 포인트)로 그것을 훈련 시켰습니다. 이 데이터는 2 개의 입력과 1 개의 출력입니다.왜 하나의 입력이 다른 입력보다 훨씬 더 많은 무게를 가졌습니까?
필자는 하나의 입력을 동일하게 유지하고 다른 입력에 대해 생각할 수있는 값의 범위를 반복하는 테스트를 수행했습니다. 출력은 두 번째 입력의 가능한 값 전체에서 동일했습니다. 나는 그것을 변화시키기 위해서 가장 높은 가치보다 234.17 배 높아야했습니다.
나는 두 번째 입력을 동일하게 유지하고 첫 번째 입력 만 변경 한 테스트도 수행했습니다. 출력은 첫 번째 입력에 대해 가능한 데이터 값의 처음 0.12 %에 대해서만 변경되었습니다.
네트워크를 더 많은 데이터로 조정하기 만하면됩니까? 아니면 네트워크 설정 방식에 따라 다른 작업을해야합니까?
편집 :
net = buildNetwork(2, 3, 1)
ds = SupervisedDataSet(2, 1)
for each in train_data:
ds.addSample((each[0], each[1]), (each[2],)) #adds training data to Data Set
print len(ds)
trainer = BackpropTrainer(net, ds) #sets up trainer
print trainer.trainUntilConvergence(maxEpochs=2000, verbose=True) #Trains
print net.activate([(1420884000%86400),51.74]) #print prediction
한 입력 (자정 이후 초) 하루의 시간입니다 : 여기
는 NN을 설정 한 값에 대한 예측을 반환하는 코드입니다. 다른 입력은 현재 온도입니다. 출력은 훈련 데이터를 기반으로 임의의 시간에 예측 된 온도 여야합니다.
코드를 보지 않고도 대답하기가 정말 어렵습니다. 오류를 실행하고 명시하는 코드의 작고 작은 부분을 제공 할 수 있습니까? – TankorSmash
음, 입력 및 원하는 동작은 무엇입니까? 신경망은 훈련하기가 어려울 수 있습니다. 이것이 프로그래밍 문제라고 생각하는 이유가 있습니까? 아니면 다르게 행동해야합니까? – Lack
교육 자료를 공유 할 수 있습니까? –