本文整理汇总了Python中NN.calcLossSquared方法的典型用法代码示例。如果您正苦于以下问题:Python NN.calcLossSquared方法的具体用法?Python NN.calcLossSquared怎么用?Python NN.calcLossSquared使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NN
的用法示例。
在下文中一共展示了NN.calcLossSquared方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: train
# 需要导入模块: import NN [as 别名]
# 或者: from NN import calcLossSquared [as 别名]
def train(inputs, outputs, size, participants, victors, generations, threshold, cRate, mRate, printFile=False):
'''Create and start training the NN via evolution strategy. Selection, crossover, mutation, evaluation.'''
global hero
global OrigAnswers
OrigAnswers = copy.deepcopy(outputs)
EvaluationNN = GA.create_net(inputs, outputs)
population = init_pop(EvaluationNN, inputs, outputs, size)
# Test each citizen and determine initial fitness
GA.evaluate(EvaluationNN, population, inputs, outputs)
if printFile: f = open('ES.csv', 'w')
gen = 0
children = []
# loop until a hero is found or we've reached max generations
while gen <= generations and hero == 0:
# Select our parents using tournament selection
parents = GA.tournament(population, participants, victors)
# Have our parents mate (Crossover)
children = GA.mate(parents, cRate)
# Have the children experience the world (Mutate)
for child in children:
mutate(child, mRate)
# Test each child's fitness
GA.evaluate(EvaluationNN, children, inputs, outputs)
children = GA.tournament(children, participants, victors)
population = sorted(population + children,
key=itemgetter(-1))[:-victors]
if GA.heroFound(population, threshold):
break
else:
print("Training: {:2.2%}".format(
population[0][-1]), "{:2.2%} ".format(gen / generations), end="\r")
if printFile: f.write('%f,' % population[0][-1])
if printFile: f.write('\n')
gen += 1
if printFile: f.close()
if hero == 0:
gen -= 1
hero = sorted(population, key=itemgetter(-1))[0]
EvaluationNN.SetNNWeights(hero[:-1]) # Load hero into NN, prep for usage.
# Evaluate the hero on the inputs and outputs
print('Generations: %d' % gen, ' ' * 20)
print("Error Relative: {:2.5%}".format(NN.calcRelativeError(EvaluationNN, inputs, OrigAnswers)))
print("Least Squares: %d" % NN.calcLeastSquaresError(EvaluationNN, inputs, OrigAnswers))
print("Loss Squared: %d" % NN.calcLossSquared(EvaluationNN, inputs, OrigAnswers))
#for x in inputs:
# EvaluationNN.SetStartingNodesValues(x)
# EvaluationNN.CalculateNNOutputs()
# print(x, EvaluationNN.GetNNResults(), EvaluationNN.GetNNResultsInt(), OrigAnswers[inputs.index(x)])
print()
return EvaluationNN
示例2: train_test
# 需要导入模块: import NN [as 别名]
# 或者: from NN import calcLossSquared [as 别名]
def train_test():
global cRate, mRate, threshold, generations, size, participants, victors, inFile, algo, dataset, resultsFile
inputs = []
outputs = []
evolve()
resultsFile.write("DATASET: " + dataset + "\n")
#resultsFile.write("ALGORITHM | Generations | Size | Participants | Victors | mRate | cRate | Threshold \n")
#resultsFile.write(" " + str(algo) + " | " + str(generations) + " | " +
# str(size) + " | " + str(participants) + " | " + str(victors) +
# " | " + str(mRate) + " | " + str(cRate) + " | " + str(threshold) + " \n")
dataIn = dataHandler()
inputs = dataIn[0]
outputs = dataIn[1]
testInput = []
testOutput = []
learnrate = 0.3
momentum = 0.5
# Need 20% of inputs for testing
for i in range((int(len(inputs)*0.8)+1), len(inputs)):
x = random.choice(inputs)
testInput.append(x)
testOutput.append(outputs[inputs.index(x)])
del outputs[inputs.index(x)]
del inputs[inputs.index(x)]
resultsFile.write("\nTest inputs: \n")
for i in range(len(testInput)):
resultsFile.write("%s " % testInput[i])
resultsFile.write("\nTest expected outputs: \n")
for i in range(len(testOutput)):
resultsFile.write("%s " % testOutput[i])
# Which algorithm gets chosen to run
if algo in 'G':
print("DOING GA TRAINING...")
resultsFile.write("\nALGORITHM | Generations | Size | Participants | Victors | mRate | cRate | Threshold \n")
resultsFile.write(" " + str(algo) + " | " + str(generations) + " | " + str(size) + " | " + str(participants) + " | " + str(victors) + " | " + str(mRate) + " | " + str(cRate) + " | " + str(threshold) + " \n")
testNN = GA.train(inputs, outputs, size, participants, victors, generations, threshold, cRate, mRate)
elif algo in 'E':
print("DOING ES TRAINING...")
resultsFile.write("\nALGORITHM | Generations | Size | Participants | Victors | mRate | cRate | Threshold \n")
resultsFile.write(" " + str(algo) + " | " + str(generations) + " | " + str(size) + " | " + str(participants) + " | " + str(victors) + " | " + str(mRate) + " | " + str(cRate) + " | " + str(threshold) + " \n")
testNN = ES.train(inputs, outputs, size, participants, victors, generations, threshold, cRate, mRate)
elif algo in 'D':
print("DOING DE TRAINING...")
resultsFile.write("\nALGORITHM | Generations | Size | mRate | cRate | Threshold \n")
resultsFile.write(" " + str(algo) + " | " + str(generations) + " | " + str(size) + " | " + str(mRate) + " | " + str(cRate) + " | " + str(threshold) + " \n")
testNN = DE.train(inputs, outputs, size, generations, threshold, cRate, mRate)
elif algo in 'B':
print("DOING BP TRAINING...")
resultsFile.write("\nALGORITHM | Generations | learnrate | momentum | Threshold \n")
resultsFile.write(" " + str(algo) + " | " + str(generations) + " | " + str(learnrate) + " | " + str(momentum) + " | " + str(threshold) + " \n")
testNN = NN.main(inputs, [['S','S','S'], ['S','S']], ['S'], outputs, generations, learnrate, threshold, momentum)
else:
print("Unrecognized algorithm!")
sys.exit()
# Print test input/expected output - could be made prettier in a table
# Start testing testNN
for x in testInput:
resultsFile.write("\nSet starting node vals\n")
resultsFile.write("%s \n" % testNN.SetStartingNodesValues(x))
testNN.CalculateNNOutputs()
resultsFile.write("\nTest Input: " + str(x) + "\n")
resultsFile.write("\nTest results: %s\n" % testNN.GetNNResults())
resultsFile.write("\nRelative Error: {:2.2%} \n".format(NN.calcRelativeError(testNN, testInput, testOutput)))
resultsFile.write("\nLeast Squares Error: %s \n" % NN.calcLeastSquaresError(testNN, testInput, testOutput))
resultsFile.write("\nLoss Squared Error: %s \n" % NN.calcLossSquared(testNN, testInput, testOutput))
resultsFile.write("\nPercent Misidentified: {:2.2%} \n".format(NN.calcPercentIncorrect(testNN, testInput, testOutput)))
resultsFile.close()
示例3: train
# 需要导入模块: import NN [as 别名]
# 或者: from NN import calcLossSquared [as 别名]
def train(inputs, outputs, size, participants, victors,
generations, threshold, cRate, mRate, printFile=False):
'''The train method takes in a set of inputs and outputs which will be
compared against a hardcoded NN topology. The size, participants, and
victors are with regard to tournament selection and elitism selection
techniques. Generations is the max number of generations allowed while
threshold is the accuracy needed. cRate and mRate are the rate of
crossover and rate of mutation respectively. '''
global hero
global OrigAnswers
EvaluationNN = create_net(inputs, outputs)
population = generatePopulation(EvaluationNN, inputs, outputs, size)
# Test each citizen and determine initial fitness
evaluate(EvaluationNN, population, inputs, outputs)
if printFile: f = open('GA.csv', 'w')
gen = 0
children = []
# loop until a hero is found or we've reached max generations
while gen <= generations and hero == 0:
# Select our parents using tournament selection
parents = tournament(population, participants, victors)
# Have our parents mate (Crossover)
children = mate(parents, cRate)
# Have the children experience the world (Mutate)
for child in children:
mutate(child, mRate)
# Test each child's fitness
evaluate(EvaluationNN, children, inputs, outputs)
# We were to prolific, thus children must fight to the death via draft
# call. Make participants len(children) to have all of them fight
# This might not be a good idea as late generation counts result in not
# keeping the children.
children = tournament(children, participants, victors)
# purging of population is determined by elitism inverted on fitness
# level (cowardace is greater number).
# Take number of children equal to number of tournament victors and
# reintroduce to the population
population = sorted(population + children,
key=itemgetter(-1))[:-victors]
# Determine if a child is a hero (<threshold) and if so, return child
if heroFound(population, threshold):
break
else:
print("Training: {:2.2%}".format(
population[0][-1]), "{:2.2%} ".format(gen / generations), end="\r")
if printFile: f.write('%f,' % population[0][-1])
if printFile: f.write('\n')
gen += 1
# return best hero if max generations is met and hero hasn't been selected.
if printFile: f.close()
if hero == 0:
gen -= 1
hero = sorted(population, key=itemgetter(-1))[0]
EvaluationNN.SetNNWeights(hero[:-1]) # Load hero into NN, prep for usage.
# Evaluate the hero on the inputs and outputs
print('Generations: %d' % gen, ' ' * 20)
print("Error Relative: {:2.5%}".format(NN.calcRelativeError(EvaluationNN, inputs, OrigAnswers)))
print("Least Squares: %d" % NN.calcLeastSquaresError(EvaluationNN, inputs, OrigAnswers))
print("Loss Squared: %d" % NN.calcLossSquared(EvaluationNN, inputs, OrigAnswers))
#for x in inputs:
# EvaluationNN.SetStartingNodesValues(x)
# EvaluationNN.CalculateNNOutputs()
# print(x, EvaluationNN.GetNNResults(), EvaluationNN.GetNNResultsInt(), OrigAnswers[inputs.index(x)])
print()
return EvaluationNN
示例4: train
# 需要导入模块: import NN [as 别名]
# 或者: from NN import calcLossSquared [as 别名]
def train(inputs, outputs, size, generations, threshold, cRate, mRate, printFile=False):
"""The train method creates a neural netwrok from the sets of
inputs and outputs. A population vector of size, is initialized
with ranodm weight vectors associated with the weights between
nodes in the neural network and will be the values being trained.
Generations is the max number of generations allowed while
threshold is the accuracy needed. cRate and mRate are the
crossover and mutation rates respectively."""
global hero
global OrigAnswers
OrigAnswers = copy.deepcopy(outputs)
# set up NN
EvaluationNN = GA.create_net(inputs, outputs)
# initialize population of size as random weights of NN
population = GA.generatePopulation(EvaluationNN, inputs, outputs, size)
if printFile:
f = open("DE.csv", "w")
gen = 0
trialV = []
offspringV = []
# evaluate the entire population
GA.evaluate(EvaluationNN, population, inputs, outputs)
# loop until a hero is found or we've reached max generations
while gen <= generations and hero == 0:
for i in range(size):
# mutate with DE/x/1/bin
trialV = mutate(population, i, mRate)
# perform binomial crossover
offspringV = crossover(population[i], trialV, cRate)
# evaluation of offspring
GA.evaluate(EvaluationNN, [offspringV], inputs, outputs)
# selection of better vector
if population[i][-1] > offspringV[-1]:
population[i] = offspringV
population = sorted(population, key=itemgetter(-1))
# check for hero in population
if GA.heroFound(population, threshold):
break
else:
print("Training: {:2.2%}".format(population[0][-1]), "{:2.2%} ".format(gen / generations), end="\r")
if printFile:
f.write("%f," % population[0][-1])
if printFile:
f.write("\n")
gen += 1
# return best hero if max generations is met and hero hasn't been selected.
# hero = sorted(population, key=itemgetter(-1))[0] # default to best in
# population if no hero steps forward
if printFile:
f.close()
if hero == 0:
gen -= 1
hero = sorted(population, key=itemgetter(-1))[0]
EvaluationNN.SetNNWeights(hero[:-1]) # Load hero into NN, prep for usage.
# Evaluate the hero on the inputs and outputs
print("Generations: %d" % gen, " " * 20)
print("Error Relative: {:2.5%}".format(NN.calcRelativeError(EvaluationNN, inputs, OrigAnswers)))
print("Least Squares: %d" % NN.calcLeastSquaresError(EvaluationNN, inputs, OrigAnswers))
print("Loss Squared: %d" % NN.calcLossSquared(EvaluationNN, inputs, OrigAnswers))
# for x in inputs:
# EvaluationNN.SetStartingNodesValues(x)
# EvaluationNN.CalculateNNOutputs()
# print(x, EvaluationNN.GetNNResults(), EvaluationNN.GetNNResultsInt(), OrigAnswers[inputs.index(x)])
print()
return EvaluationNN