def test_target(self): trg = self.target net = self.app.network.net if net is not None and len(trg): n1, n2 = trg.shape[1], len(net.outno) if n1 != n2: msg = "Network has %i targets but target data has %i columns!" %(n2, n1) display_error(msg) return False return True
def test_input(self): inp = self.input net = self.app.network.net if net is not None and len(inp): n1, n2 = inp.shape[1], len(net.inno) if n1 != n2: msg = "Network has %i inputs but input data has %i columns!" %(n2, n1) display_error(msg) return False return True
def test_input_target(self): inp = self.input trg = self.target #if not len(inp): #display_error("Set input data first!") #return False if len(inp) != len(trg): display_error("Training data is not aligned. " "Input patterns: %i, Target patterns: %i" %(len(inp), len(trg))) return False return True
def load(self, err = True, errmsg = '', traceback = False): try: data = self._load() except: if err: if not errmsg: errmsg = 'Error occured during file reading!' display_error(errmsg, traceback = traceback) return numpy.array([], dtype=self.dtype) # Empty array is returned, but self.data is left untouched data = self.validate(data) self.data = data # Assign data finally return data
def create(self): try: conn = self.connectivity_type arch = self.architecture.replace('-', ',') biases = self.biases conec = eval('%s((%s), biases=%s)' %(conn, arch, biases)) self.net = ffnet(conec) self.net.name = self.architecture.replace(',', '-') return self.net except: display_error("Network cannot be created!") self.net = None return None
def _calculate_pos(self, graph): if self.layout == 'layered': # only DAGs try: pos = layered_layout(graph) except: display_error("Layered layout cannot be created!") pos = None elif self.layout == 'spring': pos = nx.spring_layout(graph) elif self.layout == 'circular': pos = nx.circular_layout(graph) elif self.layout == 'random': pos = nx.random_layout(graph) else: pos = None # which gives 'spring' layout... return pos
def dump(self, out, sufix): wildcard = 'Text file (*.txt)|*.txt' outfile = os.path.splitext(self.app.network.filename)[0] + '-' + sufix + '.txt' dialog = pyface.FileDialog(parent=None, title='Save as', action='save as', wildcard=wildcard, default_path=outfile ) if dialog.open() == pyface.OK: # path is given path = dialog.path try: np.savetxt(path, out, newline = os.linesep) self.app.logs.logger.info('%s saved to file: %s' %(sufix.capitalize().replace('-', ' '), path)) except: display_error("Error when saving data!") return
def export(self): if self.net is None: display_error("Network neither created nor loaded!") return wildcard = 'Fortran file (*.f)|*.f|Any file (*.*)|*.*' outfile = os.path.splitext(self.filename)[0] + '.f' dialog = pyface.FileDialog(parent=None, title='Export as', action='save as', wildcard=wildcard, default_path=outfile ) if dialog.open() == pyface.OK: # path is given path = dialog.path if not os.path.basename(path).endswith('.f'): path += '.f' exportnet(self.net, path) self.app.logs.logger.info('Network exported as: %s' %path)
def save_as(self): if self.net is None: display_error("Network neither created nor loaded!") return wildcard = 'Network file (*.net)|*.net|Any file (*.*)|*.*' dialog = pyface.FileDialog(parent=None, title='Save as', action='save as', wildcard=wildcard, default_path=self.filename ) if dialog.open() == pyface.OK: # path is given path = dialog.path if not os.path.basename(path).endswith('.net'): path += '.net' savenet(self.net, path) self.filename = path self.app.logs.logger.info('Network saved as: %s' %self.filename)
def load(self): wildcard = 'Network file (*.net)|*.net|Any file (*.*)|*.*' dialog = pyface.FileDialog(parent=None, title='Load network', action='open', wildcard=wildcard, ) if dialog.open() == pyface.OK: path = dialog.path if not os.path.isfile(path): display_error("File '%s' does not exist."%path) return try: net = loadnet(path) net.weights # is this network? self.close() # close old network self.net = net self.filename = path self.app.logs.logger.info('Network loaded: %s' %self.filename) return net except: display_error("Wrong network file.") return
def validate(self, data): if not len(data): display_error("No data loaded! Empty file?") return data