Exemplo n.º 1
0
    def interact(self):
        dump_stacktraces()
        from veles.interaction import Shell

        Shell.fix_netcat_colors()
        shell = Shell(self.workflow, name="Manhole")
        shell.thread_pool.pause()
        shell.initialize()
        try:
            shell.interact({
                'dump_stacktraces': dump_stacktraces,
                'sys': sys,
                'os': os,
                'socket': socket,
                'traceback': traceback,
                'pause': shell.thread_pool.pause,
                'resume': shell.thread_pool.resume,
            })
        except (EOFError, BrokenPipeError):
            cry("Client has been dropped.")
        finally:
            shell.workflow.del_ref(shell)
            shell.thread_pool.resume()
        """
Exemplo n.º 2
0
    def interact(self):
        dump_stacktraces()
        from veles.interaction import Shell

        Shell.fix_netcat_colors()
        shell = Shell(self.workflow, name="Manhole")
        shell.thread_pool.pause()
        shell.initialize()
        try:
            shell.interact({
                'dump_stacktraces': dump_stacktraces,
                'sys': sys,
                'os': os,
                'socket': socket,
                'traceback': traceback,
                'pause': shell.thread_pool.pause,
                'resume': shell.thread_pool.resume,
            })
        except (EOFError, BrokenPipeError):
            cry("Client has been dropped.")
        finally:
            shell.workflow.del_ref(shell)
            shell.thread_pool.resume()
        """
Exemplo n.º 3
0
    def __init__(self, workflow, **kwargs):
        kwargs["name"] = kwargs.get("name", "Kohonen")
        super(KohonenWorkflow, self).__init__(workflow, **kwargs)

        self.downloader = Downloader(
            self, url=root.kohonen.downloader.url,
            directory=root.kohonen.downloader.directory,
            files=root.kohonen.downloader.files)
        self.downloader.link_from(self.start_point)

        self.repeater.link_from(self.downloader)

        self.loader = KohonenLoader(
            self, name="Kohonen fullbatch loader",
            minibatch_size=root.kohonen.loader.minibatch_size,
            force_numpy=root.kohonen.loader.force_numpy)
        self.loader.link_from(self.repeater)

        # Kohonen training layer
        self.trainer = kohonen.KohonenTrainer(
            self, shape=root.kohonen.forward.shape,
            weights_filling=root.kohonen.forward.weights_filling,
            weights_stddev=root.kohonen.forward.weights_stddev,
            gradient_decay=root.kohonen.train.gradient_decay,
            radius_decay=root.kohonen.train.radius_decay)
        self.trainer.link_from(self.loader)
        self.trainer.link_attrs(self.loader, ("input", "minibatch_data"))

        # Loop decision
        self.decision = kohonen.KohonenDecision(
            self, max_epochs=root.kohonen.decision.epochs)
        self.decision.link_from(self.trainer)
        self.decision.link_attrs(self.loader,
                                 "minibatch_class",
                                 "last_minibatch",
                                 "class_lengths",
                                 "epoch_ended",
                                 "epoch_number")
        self.decision.link_attrs(self.trainer, "weights", "winners")

        self.ipython = Shell(self)
        self.ipython.link_from(self.decision)
        self.ipython.gate_skip = ~self.decision.epoch_ended

        self.repeater.link_from(self.ipython)
        self.ipython.gate_block = self.decision.complete

        self.end_point.link_from(self.decision)
        self.end_point.gate_block = ~self.decision.complete

        self.loader.gate_block = self.decision.complete

        # Error plotter
        self.plotters = [nn_plotting_units.KohonenHits(self),
                         nn_plotting_units.KohonenInputMaps(self),
                         nn_plotting_units.KohonenNeighborMap(self)]
        self.plotters[0].link_attrs(self.trainer, "shape") \
            .link_from(self.ipython)
        self.plotters[0].input = self.decision.winners_mem
        self.plotters[0].gate_block = ~self.decision.epoch_ended
        self.plotters[1].link_attrs(self.trainer, "shape") \
            .link_from(self.ipython)
        self.plotters[1].input = self.decision.weights_mem
        self.plotters[1].gate_block = ~self.decision.epoch_ended
        self.plotters[2].link_attrs(self.trainer, "shape") \
            .link_from(self.ipython)
        self.plotters[2].input = self.decision.weights_mem
        self.plotters[2].gate_block = ~self.decision.epoch_ended
Exemplo n.º 4
0
    def __init__(self, workflow, **kwargs):
        kwargs["name"] = kwargs.get("name", "Kohonen")
        super(KohonenWorkflow, self).__init__(workflow, **kwargs)

        self.downloader = Downloader(
            self,
            url=root.kohonen.downloader.url,
            directory=root.kohonen.downloader.directory,
            files=root.kohonen.downloader.files)
        self.downloader.link_from(self.start_point)

        self.repeater.link_from(self.downloader)

        self.loader = KohonenLoader(
            self,
            name="Kohonen fullbatch loader",
            minibatch_size=root.kohonen.loader.minibatch_size,
            force_numpy=root.kohonen.loader.force_numpy)
        self.loader.link_from(self.repeater)

        # Kohonen training layer
        self.trainer = kohonen.KohonenTrainer(
            self,
            shape=root.kohonen.forward.shape,
            weights_filling=root.kohonen.forward.weights_filling,
            weights_stddev=root.kohonen.forward.weights_stddev,
            gradient_decay=root.kohonen.train.gradient_decay,
            radius_decay=root.kohonen.train.radius_decay)
        self.trainer.link_from(self.loader)
        self.trainer.link_attrs(self.loader, ("input", "minibatch_data"))

        # Loop decision
        self.decision = kohonen.KohonenDecision(
            self, max_epochs=root.kohonen.decision.epochs)
        self.decision.link_from(self.trainer)
        self.decision.link_attrs(self.loader, "minibatch_class",
                                 "last_minibatch", "class_lengths",
                                 "epoch_ended", "epoch_number")
        self.decision.link_attrs(self.trainer, "weights", "winners")

        self.ipython = Shell(self)
        self.ipython.link_from(self.decision)
        self.ipython.gate_skip = ~self.decision.epoch_ended

        self.repeater.link_from(self.ipython)
        self.ipython.gate_block = self.decision.complete

        self.end_point.link_from(self.decision)
        self.end_point.gate_block = ~self.decision.complete

        self.loader.gate_block = self.decision.complete

        # Error plotter
        self.plotters = [
            nn_plotting_units.KohonenHits(self),
            nn_plotting_units.KohonenInputMaps(self),
            nn_plotting_units.KohonenNeighborMap(self)
        ]
        self.plotters[0].link_attrs(self.trainer, "shape") \
            .link_from(self.ipython)
        self.plotters[0].input = self.decision.winners_mem
        self.plotters[0].gate_block = ~self.decision.epoch_ended
        self.plotters[1].link_attrs(self.trainer, "shape") \
            .link_from(self.ipython)
        self.plotters[1].input = self.decision.weights_mem
        self.plotters[1].gate_block = ~self.decision.epoch_ended
        self.plotters[2].link_attrs(self.trainer, "shape") \
            .link_from(self.ipython)
        self.plotters[2].input = self.decision.weights_mem
        self.plotters[2].gate_block = ~self.decision.epoch_ended