本文整理汇总了Python中pybrain.supervised.trainers.RPropMinusTrainer.train方法的典型用法代码示例。如果您正苦于以下问题:Python RPropMinusTrainer.train方法的具体用法?Python RPropMinusTrainer.train怎么用?Python RPropMinusTrainer.train使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pybrain.supervised.trainers.RPropMinusTrainer
的用法示例。
在下文中一共展示了RPropMinusTrainer.train方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: train
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
def train(
train,
label,
custom_net=None,
training_mse_threshold=0.40,
testing_mse_threshold=0.60,
epoch_threshold=10,
epochs=100,
hidden_size=20,
):
# Test Set.
x_train = train[0:split_at, :]
y_train_slice = label.__getslice__(0, split_at)
y_train = y_train_slice.reshape(-1, 1)
x_test = train[split_at:, :]
y_test_slice = label.__getslice__(split_at, label.shape[0])
y_test = y_test_slice.reshape(-1, 1)
# Shape.
input_size = x_train.shape[1]
target_size = y_train.shape[1]
# prepare dataset
ds = SDS(input_size, target_size)
ds.setField("input", x_train)
ds.setField("target", y_train)
# prepare dataset
ds_test = SDS(input_size, target_size)
ds_test.setField("input", x_test)
ds_test.setField("target", y_test)
min_mse = 1000000
# init and train
if custom_net == None:
net = buildNetwork(input_size, hidden_size, target_size, bias=True)
else:
print "Picking up the custom network"
net = custom_net
trainer = RPropMinusTrainer(net, dataset=ds, verbose=False, weightdecay=0.01, batchlearning=True)
print "training for {} epochs...".format(epochs)
for i in range(epochs):
mse = trainer.train()
print "training mse, epoch {}: {}".format(i + 1, math.sqrt(mse))
p = net.activateOnDataset(ds_test)
mse = math.sqrt(MSE(y_test, p))
print "-- testing mse, epoch {}: {}".format(i + 1, mse)
pickle.dump(net, open("current_run", "wb"))
if min_mse > mse:
print "Current minimum found at ", i
pickle.dump(net, open("current_min_epoch_" + model_file, "wb"))
min_mse = mse
pickle.dump(net, open(model_file, "wb"))
return net
示例2: fit
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
def fit(self, X, y):
"""
Trains the classifier
:param pandas.DataFrame X: data shape [n_samples, n_features]
:param y: labels of events - array-like of shape [n_samples]
.. note::
doesn't support sample weights
"""
dataset = self._prepare_net_and_dataset(X, y, 'classification')
if self.use_rprop:
trainer = RPropMinusTrainer(self.net,
etaminus=self.etaminus,
etaplus=self.etaplus,
deltamin=self.deltamin,
deltamax=self.deltamax,
delta0=self.delta0,
dataset=dataset,
learningrate=self.learningrate,
lrdecay=self.lrdecay,
momentum=self.momentum,
verbose=self.verbose,
batchlearning=self.batchlearning,
weightdecay=self.weightdecay)
else:
trainer = BackpropTrainer(self.net,
dataset,
learningrate=self.learningrate,
lrdecay=self.lrdecay,
momentum=self.momentum,
verbose=self.verbose,
batchlearning=self.batchlearning,
weightdecay=self.weightdecay)
if self.epochs < 0:
trainer.trainUntilConvergence(maxEpochs=self.max_epochs,
continueEpochs=self.continue_epochs,
verbose=self.verbose,
validationProportion=self.validation_proportion)
else:
for i in range(self.epochs):
trainer.train()
self.__fitted = True
return self
示例3: train
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
def train(self, trndata, valdata, hidden_neurons=5, hidden_class=SigmoidLayer, iterations=3):
print "Hidden neurons: " + str(hidden_neurons)
print "Hidden class: " + str(hidden_class)
print "Iterations: " + str(iterations)
fnn = buildNetwork(trndata.indim, hidden_neurons, trndata.outdim, outclass=SoftmaxLayer,
hiddenclass=hidden_class)
trainer = RPropMinusTrainer(fnn, dataset=trndata, verbose=False)
#trainer = BackpropTrainer(fnn, dataset=trndata, momentum=0.5, verbose=True, learningrate=0.05)
for i in range(iterations):
trainer.train()
out, tar = trainer.testOnClassData(dataset=valdata, return_targets=True, verbose=False)
#used to return final score, not used yet :D
print str(i) + " " + str(accuracy(out, tar))
self.model = trainer
示例4: train_net
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
def train_net():
fnn = buildNetwork(len(input_args), 3, 2)
ds = ClassificationDataSet(len(input_args),2,nb_classes=2)
ds = generate_data(ds , hour_to_use_app = 10)
trainer = RPropMinusTrainer( fnn, dataset= ds, verbose=True)
trainer.train()
trainer.trainEpochs(15)
test = ClassificationDataSet(4,2)
test.addSample((12,6,10,6),[1,0])
test.addSample((12,1,7,2),[0,1])
test.addSample((12,3,11,1),[0,1])
fnn.activateOnDataset(test)
return fnn,trainer,ds,test
示例5: train
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
def train(self,
cycles,
percent,
hidden_layers=3,
hiddenclass=None,
num_outputs=1,
num_inputs=-1):
num_inputs = self._count_inputs() if num_inputs == -1 else num_inputs
if num_inputs <= 0 or num_outputs <= 0 or cycles <= 0 or (percent > 100 or percent <= 0):
return
network = self._buildNet(hidden_layers, num_outputs, num_inputs, hiddenclass)
data_set = self.get_data_set(percent, num_inputs, num_outputs)
trainer = RPropMinusTrainer(network, dataset=data_set)
for i in range(cycles):
trainer.train()
return network
示例6: Brain
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
class Brain():
def __init__(self):
self.inputs = 3
self.outputs = 1
self.n = buildNetwork(self.inputs, 200,200,200,200,self.outputs, bias=True,hiddenclass=TanhLayer)
self.n.sortModules()
self.ds = SupervisedDataSet(self.inputs, self.outputs)
self.trainer = RPropMinusTrainer(self.n)
self.trainer.setData(self.ds)
def wipedataset(self):
self.ds = SupervisedDataSet(self.inputs, self.outputs)
pass
def cycle(self,action,state):
return self.n.activate([action,state[0],state[1]])
def AddToTrainingSet(self,action,state,output):
out= "New Set","Action: ",action,"State: ", state,"Output: ", output
f.write(str(out)+"\n")
self.ds.addSample((action,state[0],state[1]),output)
def train(self):
return "ERROR",self.trainer.train()
def traintoconverg(self):
x = 10000
y=0
z=100
print len(self.ds),"DS SIZE"
while x > 0.0001 and y < z:
print len(self.ds)
x = self.trainer.train()
print x,"ERROR",y
y+=1
f = open('brains/brain2000.ann','w')
pickle.dump(self.n,f)
def trainfinal(self):
x = 10000
y=0
z=25
while x > 0.00001 and y < z:
x = self.trainer.train()
print x,"ERROR",y
y+=1
示例7: trainNetwork
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
def trainNetwork(dirname):
numFeatures = 5000
ds = SequentialDataSet(numFeatures, 1)
tracks = glob.glob(os.path.join(dirname, 'train??.wav'))
for t in tracks:
track = os.path.splitext(t)[0]
# load training data
print "Reading %s..." % track
data = numpy.genfromtxt(track + '_seg.csv', delimiter=",")
labels = numpy.genfromtxt(track + 'REF.txt', delimiter='\t')[0::10,1]
numData = data.shape[0]
# add the input to the dataset
print "Adding to dataset..."
ds.newSequence()
for i in range(numData):
ds.addSample(data[i], (labels[i],))
# initialize the neural network
print "Initializing neural network..."
net = buildNetwork(numFeatures, 50, 1,
hiddenclass=LSTMLayer, outputbias=False, recurrent=True)
# train the network on the dataset
print "Training neural net"
trainer = RPropMinusTrainer(net, dataset=ds)
## trainer.trainUntilConvergence(maxEpochs=50, verbose=True, validationProportion=0.1)
error = -1
for i in range(100):
new_error = trainer.train()
print "error: " + str(new_error)
if abs(error - new_error) < 0.1: break
error = new_error
# save the network
print "Saving neural network..."
NetworkWriter.writeToFile(net, os.path.basename(dirname) + 'net')
示例8: len
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
tstClassErrorPath='20LSTMCell/tst_ClassAccu'
networkPath='20LSTMCell/TrainUntilConv.xml'
figPath='20LSTMCell/ErrorGraph'
#####################
#####################
print "Training Data Length: ", len(trndata)
print "Num of Training Seq: ", trndata.getNumSequences()
print "Validation Data Length: ", len(tstdata)
print "Num of Validation Seq: ", tstdata.getNumSequences()
print 'Start Training'
time_start = time.time()
while (tstErrorCount<100):
print "********** Classification with 20LSTMCell with RP- **********"
trnError=trainer.train()
tstError = trainer.testOnData(dataset=tstdata)
trnAccu = 100-percentError(trainer.testOnClassData(), trndata['class'])
tstAccu = 100-percentError(trainer.testOnClassData(dataset=tstdata), tstdata['class'])
trn_class_accu.append(trnAccu)
tst_class_accu.append(tstAccu)
trn_error.append(trnError)
tst_error.append(tstError)
np.savetxt(trnErrorPath, trn_error)
np.savetxt(tstErrorPath, tst_error)
np.savetxt(trnClassErrorPath, trn_class_accu)
np.savetxt(tstClassErrorPath, tst_class_accu)
if(oldtstError==0):
oldtstError = tstError
示例9: load_snd
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
snd_20043 = load_snd(20043)
append2DS(DS, snd_20043, 2, nClasses)
# fnn = buildNetwork(1, 15, 5, hiddenclass = LSTMLayer, outclass = SoftmaxLayer, outputbias = False, recurrent = True)
fnn = buildNetwork(1, 1, nClasses, hiddenclass=LSTMLayer, outclass=TanhLayer, outputbias=False, recurrent=True)
# Create a trainer for backprop and train the net.
# trainer = BackpropTrainer(fnn, DStrain, learningrate = 0.005)
trainer = RPropMinusTrainer(fnn, dataset=DS, verbose=True)
for i in range(4):
# train the network for 1 epoch
trainer.trainEpochs(1)
print trainer.train()
fnn.reset()
summed = numpy.zeros(nClasses)
for sample in snd_18768:
summed += fnn.activate([sample])
print summed / len(snd_18768)
fnn.reset()
summed = numpy.zeros(nClasses)
for sample in snd_21649:
summed += fnn.activate([sample])
print summed / len(snd_21649)
fnn.reset()
summed = numpy.zeros(nClasses)
示例10: SupervisedDataSet
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
print column, "not an int or long"
return np.array(nr[:-1]), nr[-1]
data = cursor.execute("select %s from adult_data" % columns).fetchall()
dataset = SupervisedDataSet(8, 1)
for row in data:
xd, yd = createNPRow(row)
dataset.addSample(xd, yd)
nn = buildNetwork(8, 3, 1)
trainer = RPropMinusTrainer(nn)
trainer.setData(dataset)
for x in range(5):
error = trainer.train()
print error
errors, success = 0,0
for row in cursor.execute("select %s from adult_test" % columns).fetchall():
xd, yd = createNPRow(row)
check = int(round(nn.activate(xd[:8])[0]))
if check > 1: check = 1
prediction = possibilities['relation_to_50k_plus'][check]
actual = possibilities['relation_to_50k_plus'][yd]
if prediction == actual:
match = "match"
success += 1
else:
match = "no match"
errors += 1
示例11: trainNetwork
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
def trainNetwork(dirname):
numFeatures = 2000
ds = SequentialDataSet(numFeatures, 1)
tracks = glob.glob(os.path.join(dirname, "*.csv"))
for t in tracks:
track = os.path.splitext(t)[0]
# load training data
print "Reading %s..." % t
data = numpy.genfromtxt(t, delimiter=",")
numData = data.shape[0]
# add the input to the dataset
print "Adding to dataset..."
ds.newSequence()
for i in range(numData):
# ds.addSample(data[i], (labels[i],))
input = data[i]
label = input[numFeatures]
if label > 0:
label = midi_util.frequencyToMidi(label)
ds.addSample(input[0:numFeatures], (label,))
# initialize the neural network
print "Initializing neural network..."
# net = buildNetwork(numFeatures, 50, 1,
# hiddenclass=LSTMLayer, bias=True, recurrent=True)
# manual network building
net = RecurrentNetwork()
inlayer = LinearLayer(numFeatures)
# h1 = LSTMLayer(70)
# h2 = SigmoidLayer(50)
octaveLayer = LSTMLayer(5)
noteLayer = LSTMLayer(12)
combinedLayer = SigmoidLayer(60)
outlayer = LinearLayer(1)
net.addInputModule(inlayer)
net.addOutputModule(outlayer)
# net.addModule(h1)
# net.addModule(h2)
net.addModule(octaveLayer)
net.addModule(noteLayer)
net.addModule(combinedLayer)
# net.addConnection(FullConnection(inlayer, h1))
# net.addConnection(FullConnection(h1, h2))
# net.addConnection(FullConnection(h2, outlayer))
net.addConnection(FullConnection(inlayer, octaveLayer))
net.addConnection(FullConnection(inlayer, noteLayer))
# net.addConnection(FullConnection(octaveLayer,combinedLayer))
for i in range(5):
net.addConnection(
FullConnection(
octaveLayer, combinedLayer, inSliceFrom=i, inSliceTo=i + 1, outSliceFrom=i * 12, outSliceTo=(i + 1) * 12
)
)
net.addConnection(FullConnection(noteLayer, combinedLayer))
net.addConnection(FullConnection(combinedLayer, outlayer))
net.sortModules()
# train the network on the dataset
print "Training neural net"
trainer = RPropMinusTrainer(net, dataset=ds)
## trainer.trainUntilConvergence(maxEpochs=50, verbose=True, validationProportion=0.1)
error = -1
for i in range(150):
new_error = trainer.train()
print "error: " + str(new_error)
if abs(error - new_error) < 0.005:
break
error = new_error
# save the network
print "Saving neural network..."
NetworkWriter.writeToFile(net, os.path.basename(dirname) + "designnet")
示例12: buildNetwork
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
elif a == 1:
testset.append((a,random.uniform(-math.pi,0),1))
testset.append((a,random.uniform(0,math.pi),-1))
else:
testset.append((a,random.uniform(0,math.pi),1))
testset.append((a,random.uniform(-math.pi,0),-1))
ann = buildNetwork(2,20,1,bias=True,hiddenclass=TanhLayer)
ds = SupervisedDataSet(2,1)
ann.sortModules()
trainer = RPropMinusTrainer(ann)
trainer.setData(ds)
for i in dataset:
ds.addSample((i[0],i[1]),i[2])
i=10000
x=0
z=100
while i > 0.0001 and x<z:
i = trainer.train()
print i
x+=1
for a in testset:
result = ann.activate([a[0],a[1]])
print str(a[2]) +" actual vs. output " +str(result)
示例13: f
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
arg = (i/n)*6 - 3
x.append(arg)
r = f(arg) + (random() - 0.5) * 0.2
y.append(f(arg))
y_noise.append(r)
ds.addSample((arg), (r))
trainer_big = BackpropTrainer(net_big, ds, learningrate=0.01, lrdecay=1.0, momentum=0.0, weightdecay=0.0)
# RProp-, cf. [Igel&Huesken, Neurocomputing 50, 2003
trainer = RPropMinusTrainer(net, dataset=ds)
# trainer.trainUntilConvergence()
for i in range(100):
trainer.train()
for i in range(10):
trainer_big.train()
for i in range(n):
arg = (i/n)*6 - 3
y_n.append(net.activate([arg]))
y_n_big.append(net_big.activate([arg]))
fig = plt.figure()
plt.plot(x, y, 'black')
plt.plot(x, y_noise, 'r')
plt.plot(x, y_n, 'b')
示例14: len
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
eta=(total*epochCount/epochs)-total
tm=eta
tm=int(tm/1000)
s=str(tm%60).rjust(2,'0')
tm=int(tm/60)
m=str(tm%60).rjust(2,'0')
tm=int(tm/60)
h=str(tm%24).rjust(2,'0')
tm=int(tm/24)
d=str(tm).rjust(3,'0')
cap=" ETA: %sd%sh%sm%ss" % (d,h,m,s)
text=font.render(cap,True,(255,255,255))
visual.blit(text,(4,44))
n.reset() # reset to t0 for training sequence
emse=trainer.train()
if rendering:
xOff=4+11*23
eRect=pygame.Rect(xOff,44,11*17,20)
pygame.draw.rect(visual,(96,96,96),eRect)
frac=str(emse).split('.')
if len(frac)<2:
frac.append('')
(w,f)=frac
w=w.rjust(3,'0')
f=f.ljust(11,'0')
cap="e=%s.%s" % (w,f)
text=font.render(cap,True,(255,255,255))
visual.blit(text,(xOff,44))
pygame.display.flip()
示例15: range
# 需要导入模块: from pybrain.supervised.trainers import RPropMinusTrainer [as 别名]
# 或者: from pybrain.supervised.trainers.RPropMinusTrainer import train [as 别名]
visual.blit(text,(4,44))
n.reset()
prevCh=EOL
prevGuess=0.0
se=0
n.reset() # reset to t0 for training sequence
for i in range(len(target)):
curCh=ord(target[i])
tgtTicker[i]=chr(curCh)
inpTicker[i]=chr(max(1,prevCh))
ds.clear()
# scales bytes to range [0,1]
ds.addSample((prevCh/255.0),(curCh/255.0,))
#ds.addSample((prevCh/255.0,prevGuess),(curCh/255.0,))
err=trainer.train()
prevGuess=n['out'].outputbuffer[0][0]
outVh=min(255.0,max(0.0,255.0*prevGuess))
outCh=int(round(outVh))
outVh=outVh-outCh
if 32>outCh or 127<outCh:
outCh=1.0
outTicker[i]=chr(int(outCh))
outVTicker[i]=round(20.0*outVh)
se+=(255.0*err)**2
prevCh=curCh
mse=math.sqrt(se)
smse+=mse**2
if rendering:
frac=str(mse).split('.')