Example #1
0
    def __call__(self, rec):
        assert not self._frozen
        prefix = NetBuilder.current().name + '/'
        blob_remap = {}
        for net in self.thread_init_nets:
            new_net, _ = core.clone_and_bind_net(net,
                                                 str(net) + prefix, prefix,
                                                 blob_remap)
            self._cloned_init_nets.append(new_net)

        new_net, remappings = core.clone_and_bind_net(self.net,
                                                      str(self.net) + prefix,
                                                      prefix, blob_remap, rec)

        if self._stop_signal is None:
            stop_signal = None
        elif str(self._stop_signal) in remappings:
            stop_signal = core.BlobReference(remappings[str(
                self._stop_signal)],
                                             net=new_net)
        else:
            stop_signal = self._stop_signal

        self._blob_maps.append(remappings)
        return Output([new_net], new_net.output_record(), stop_signal)
Example #2
0
 def __init__(self, nets=None, record=None, should_stop=None):
     builder_children = NetBuilder.current().get()
     assert nets is None or len(builder_children) == 0, (
         'Cannot both use `ops` syntax and return a list of nets.')
     if nets is None:
         nets = builder_children
     if isinstance(nets, core.Net):
         nets = [nets]
     self.nets = [] if nets is None else list(nets)
     self.record = None if record is None else as_record(record)
     self.should_stop = should_stop
Example #3
0
    def __call__(self, rec):
        assert not self._frozen
        prefix = NetBuilder.current().name + '/'
        blob_remap = {}
        for net in self.thread_init_nets:
            new_net, _ = core.clone_and_bind_net(
                net, str(net) + prefix, prefix, blob_remap)
            self._cloned_init_nets.append(new_net)

        new_net, remappings = core.clone_and_bind_net(
            self.net, str(self.net) + prefix, prefix, blob_remap, rec)

        if self._stop_signal is None:
            stop_signal = None
        elif str(self._stop_signal) in remappings:
            stop_signal = core.BlobReference(
                remappings[str(self._stop_signal)],
                net=new_net)
        else:
            stop_signal = self._stop_signal

        self._blob_maps.append(remappings)
        return Output([new_net], new_net.output_record(), stop_signal)