from core.layer import Layer, InputLayer, OutputLayer from core.network import Network with open('snek-learning.yaml', 'r') as file: data = yaml.load(file) #data = data[:1000] learning_data = [{'inputs': list(row[:5]), 'outputs': [row[5]]} for row in data] inputs = InputLayer([1, 1, 1, 1, 1]) middle = Layer(5) middle3 = Layer(3) output = OutputLayer([1]) network = Network([inputs, middle, middle3, output], 'snek') network.connect() network.load_learning_data(learning_data) network.print_data() folds = 4 result = [0] i = 0 start_time = time() while sum(result) / folds < 90: results = network.learn_kfolds(folds, times=1) scores = [(n, [round(x) for x in out] == check) for n, out, check in results] stuff = Counter(scores) result = [stuff[(i, True)] / (stuff[(i, False)] + stuff[(i, True)]) * 100 for i in range(folds)]
} learning_data = [] with open('../data/training_data/iris.data', newline='') as csvfile: reader = csv.reader(csvfile) for row in reader: learning_data.append({ 'inputs': [float(x) for x in row[0:4]], 'outputs': iris_map[row[4]] }) inputs = InputLayer([1, 1, 1, 1]) middle = Layer(5) middle2 = Layer(3) output = OutputLayer([1, 1, 1]) network = Network([inputs, middle, middle2, output], 'iris') network.connect() network.load_learning_data(learning_data) network.normalize_learning_data() print("------- learn -------") network.print_data() folds = 4 results = network.learn_kfolds(folds, times=1000) scores = [(n, [round(x) for x in out] == check) for n, out, check in results] stuff = Counter(scores) print("folds results: ", [stuff[(i, True)] / (stuff[(i, False)] + stuff[(i, True)]) * 100 for i in range(folds)])