Exemple #1
0
	def __init__(self, crossover_probability, mutation_probability, shape):
		self._neural_net = neural_net.sigmoid_quadratic_backpropogation_neural_net(shape)
		genetic_schema = []
		self._chromosomes = []
		for layer_index in range(1, len(shape)):
			genetic_schema.append(shape[layer_index - 1] * shape[layer_index])
			self._chromosomes.append(self._neural_net._weights[layer_index].flatten())
		for layer_index in range(1, len(shape)):
			genetic_schema.append(shape[layer_index])
			self._chromosomes.append(self._neural_net._biases[layer_index])
		super(sigmoid_quadratic_backpropogation_neural_net_individual, self).__init__(crossover_probability, mutation_probability, genetic_schema)
Exemple #2
0
print("Reading MNIST data files.")
data = []
imageData = array.array("B", imagesFile.read())
labelData = array.array("B", labelsFile.read())

print("Parsing MNIST data.")
testCaseInput = None
testCaseOutput = None
for testCaseIndex in range(numberImages):
	testCaseInput = numpy.asarray(imageData[testCaseIndex * rows * columns : (testCaseIndex + 1) * rows * columns], dtype = float)
	testCaseOutput = numpy.zeros(10)
	testCaseOutput[labelData[testCaseIndex]] = 1
	data.append((testCaseInput, testCaseOutput))

print("Initializing a neural_net.sigmoid_quadratic_backpropogation_neural_net.")
test_neural_net = neural_net.sigmoid_quadratic_backpropogation_neural_net([784, 100, 100, 10])

print("Training the neural_net.sigmoid_quadratic_backpropogation_neural_net.")
epoch_size = 100
epoch_index = 0
while epoch_index < 0:
	training_accuracy = 0
	for batch_index in range(epoch_size):
		training_accuracy += test_neural_net.train(data, 100, 0.001)
	print("     Training epoch #" + str(epoch_index) + ": " + "{:.1%}".format(training_accuracy / epoch_size) + " accuracy")
	if epoch_index == 29:
		pickle.dump(test_neural_net, open(os.path.dirname(__file__) + "neural_net", "w"))
	epoch_index += 1

print("Initializing a population.neural_net_population(population.sigmoid_quadratic_backpropogation_neural_net_individual.")
test_population = population.neural_net_population(population.sigmoid_quadratic_backpropogation_neural_net_individual(0.1, 0.0001, [784, 100, 100, 10]), 5, data, 100, 0.01)