Beispiel #1
0
 def updateSeriesTable(self):
     self.Output_Series.clear()
     selectedDataStats = self.data.getSelectedDataStats()
     self.Output_Series.setRowCount(len(selectedDataStats))
     self.Output_Series.setColumnCount(2)
     for row, val in enumerate(selectedDataStats):
         print(lstr(row + 0.5))
         label, value = val
         title = QtWidgets.QTableWidgetItem(label)
         self.Output_Series.setItem(row, 0, title)
         if not isinstance(value, str):
             value = lstr(value)
             print(value)
         value = QtWidgets.QTableWidgetItem(value)
         self.Output_Series.setItem(row, 1, value)
     self.Output_Series.resizeColumnsToContents()
            if i >= cycles:
                break
        return errors_data

    funs_data = []
    for f in funcs:
        print(f.__name__)
        funs_data.append(train(f))
    return funs_data


times = 10
cycles = 100
# repeat for average
avg_data = train_network()
for _ in range(times - 1):
    data = train_network()
    # consolidate
    for i, new_func_data, avg_func_data in zip(range(len(funcs)), data,
                                               avg_data):
        avg_data[i] = [sum(d) for d in zip(new_func_data, avg_func_data)]
# divide and convert to polish notation (use locale)
for i, func_data in enumerate(avg_data):
    avg_data[i] = [lstr(error / times) for error in func_data]
# transpose for excel
avg_data = list(zip(*avg_data))
# save
with open("neural_data.csv", 'w') as file:
    writer = csv.writer(file, delimiter=';')  # delimit with semicolons
    writer.writerows(avg_data)
Beispiel #3
0
        print(f"Generation: #{generation}")
        # evaluate for fitness
        evaluate_networks(networks)
        # sort with fittest at the top
        networks.sort(key=lambda n: n.fitness, reverse=True)
        best_net = networks[0]
        # save the best net if needed
        print(f"Best fitness: {best_net.fitness}")
        if best_net.fitness > best_net_data[0]:
            best_net_data = (best_net.fitness, best_net.export_data())
            print(f"New best: {best_net.fitness}\n")
        snake_data.append([
            generation,  # current generation
            best_net_data[0],  # current best fitness
            # average fitness of a population
            lstr(sum(n.fitness for n in networks) / len(networks)),
        ])
        if generation >= max_generation:
            break
        # select for the next generation
        networks = select_networks(networks)
        # crossover for the next generation
        networks = crossover_networks(networks)

    # save data for the performance graph
    with open("snake_data.csv", 'w') as file:
        writer = csv.writer(file, delimiter=';')  # delimit with semicolons
        writer.writerows(snake_data)
    # restore the best network
    best_net = Network(net_args)
    best_net.fitness = best_net_data[0]
Beispiel #4
0
 def setInitialUIvalues(self):
     self.NeutralMass.setText(lstr(22870))
     self.MassAccuracy.setText(lstr(200))
     self.MinCS.setText(lstr(1))
     self.MaxCS.setText(lstr(50))
     self.Calibration_a.setText(lstr(231.7))
     self.Calibration_b.setText(lstr(118.7))
     self.Calibration_X.setText(lstr(0.6262))
     self.TransferParam.setText(lstr(1.41))
     self.PusherDelay.setText(lstr(110))
     self.Gas_mass.setText(lstr(28))
     print(lstr(255.3))