class SimulationLauncherDialog(QDialog): def __init__(self, network, test_data): QDialog.__init__(self) self.ui = Ui_SimulationLauncher() self.ui.setupUi(self) self.network = network inputs_count = len(network.inputs) self.input_view = DataView(self.ui.dataView, model=test_data, header="Input", columns=inputs_count) outputs_count = len(network.layers[-1].neurons) self.output_view = DataView(self.ui.outputView, header="Output", columns=outputs_count) self.ui.testsCountSpinBox.setValue(self.input_view.row_count()) @pyqtSlot() def on_runButton_clicked(self): if not self.input_view.check_data(): QMessageBox.warning(None, "Error", "Input data is invalid") else: inputs = self.input_view.get_data() for row_index in range(len(inputs)): row = inputs[row_index] response = self.network.calculate_network_response(row) for i in range(len(response)): self.output_view.set_data(row_index, i, round(response[i], 3)) @pyqtSlot() def on_readFileButton_clicked(self): filePath = QFileDialog().getOpenFileName(None, "Select input data file") try: with open(filePath, "r") as file: file_lines = file.readlines() rows_count = len(file_lines) self.ui.testsCountSpinBox.setValue(rows_count) for (line, row) in zip(file_lines, range(rows_count)): for (value, column) in zip(line.split(), range(self.input_view.column_count())): self.input_view.set_data(row, column, float(value)) except Exception as e: print e def get_model(self): return self.input_view.get_model() @pyqtSlot() def on_generateRandomButton_clicked(self): self.input_view.randomize_data() @pyqtSlot(int) def on_testsCountSpinBox_valueChanged(self, value): self.input_view.set_rows(value) self.output_view.set_rows(value)
def __init__(self, network, test_data): QDialog.__init__(self) self.ui = Ui_SimulationLauncher() self.ui.setupUi(self) self.network = network inputs_count = len(network.inputs) self.input_view = DataView(self.ui.dataView, model=test_data, header="Input", columns=inputs_count) outputs_count = len(network.layers[-1].neurons) self.output_view = DataView(self.ui.outputView, header="Output", columns=outputs_count) self.ui.testsCountSpinBox.setValue(self.input_view.row_count())