예제 #1
0
def HardChoiceIso(id_dds, norm_percentile, factor):
    """ Instantiates the given DDS and changes it. """
    config = get_diffeo2dds_config()
    dds = config.discdds.instance(id_dds)
    ddst = make_hard_choices(dds, info_threshold=None,
                             use_isomorphism_heuristics=True,
                             norm_percentile=norm_percentile,
                             factor=factor)
    return ddst
예제 #2
0
def DDSFromSymbolic(resolution, symdiffeosystem):  # @UnusedVariable
    """ 
        Creates a DiffeoSystem from synthetic diffeomorphisms. 
    """
    diffeo2s_config = get_diffeo2s_config()
    diffeo2dds_config = get_diffeo2dds_config()

    _, symdds = diffeo2dds_config.symdds.instance_smarter(symdiffeosystem)

    logger.info('Creating symbolic diffeomorphism (resolution = %d)' %
                resolution)

    diffeoactions = []
    for _, action in enumerate(symdds.actions):

        id_diffeo, diffeo = parse_diffeo_spec(diffeo2s_config,
                                              action['diffeo'])
        label = action.get('label', id_diffeo)

        original_cmd = np.array(action['original_cmd'])

        logger.info('Getting symbolic diffeomorphism %r' % id_diffeo)

        shape = (resolution, resolution)
        viewport = SquareDomain([[-1, +1], [-1, +1]])
        manifold = diffeo.get_topology()
        D, Dinfo = diffeo_from_function_viewport(diffeo, manifold, viewport,
                                                 shape)
        D2d = Diffeomorphism2D(D, Dinfo)

        diffeo_inv = diffeo.get_inverse()
        D_inv, Dinfo_inv = \
            diffeo_from_function_viewport(diffeo_inv, manifold, viewport, shape)
        D2d_inv = Diffeomorphism2D(D_inv, Dinfo_inv)

        action = DiffeoAction(label=label,
                              diffeo=D2d,
                              diffeo_inv=D2d_inv,
                              original_cmd=original_cmd)
        diffeoactions.append(action)

    dds = DiffeoSystem('unnamed', actions=diffeoactions)
    return dds
예제 #3
0
def DDSFromSymbolic(resolution, symdiffeosystem):  # @UnusedVariable
    """ 
        Creates a DiffeoSystem from synthetic diffeomorphisms. 
    """  
    diffeo2s_config = get_diffeo2s_config()
    diffeo2dds_config = get_diffeo2dds_config()
    
    _, symdds = diffeo2dds_config.symdds.instance_smarter(symdiffeosystem)
    
    logger.info('Creating symbolic diffeomorphism (resolution = %d)' % 
                resolution)
    
    diffeoactions = []
    for _, action in enumerate(symdds.actions):
        
        id_diffeo, diffeo = parse_diffeo_spec(diffeo2s_config, action['diffeo'])
        label = action.get('label', id_diffeo)
        
        original_cmd = np.array(action['original_cmd'])
        
        logger.info('Getting symbolic diffeomorphism %r' % id_diffeo)
        
        shape = (resolution, resolution)
        viewport = SquareDomain([[-1, +1], [-1, +1]])
        manifold = diffeo.get_topology()
        D, Dinfo = diffeo_from_function_viewport(diffeo, manifold, viewport, shape)    
        D2d = Diffeomorphism2D(D, Dinfo)
        
        diffeo_inv = diffeo.get_inverse()
        D_inv, Dinfo_inv = \
            diffeo_from_function_viewport(diffeo_inv, manifold, viewport, shape)    
        D2d_inv = Diffeomorphism2D(D_inv, Dinfo_inv) 

        action = DiffeoAction(label=label,
                              diffeo=D2d,
                              diffeo_inv=D2d_inv,
                              original_cmd=original_cmd)
        diffeoactions.append(action)
        
    dds = DiffeoSystem('unnamed', actions=diffeoactions)
    return dds
예제 #4
0
    def go(self):
        outdir = self.options.output
        which = self.options.get_extra()

        diffeo2dds_config = get_diffeo2dds_config()

        if not which:
            todo = diffeo2dds_config.discdds.keys()
        else:
            todo = diffeo2dds_config.discdds.expand_names(which)

        id_image = self.options.image
        image = UncertainImage(diffeo2dds_config.images.instance(id_image))

        for id_dds in todo:
            self.info("Writing %s" % id_dds)
            dds = diffeo2dds_config.discdds.instance(id_dds)
            report = Report(id_dds)

            dds.display(report, image=image)

            write_report_files(report, basename=os.path.join(outdir, id_dds))
예제 #5
0
    def go(self):
        outdir = self.options.output
        which = self.options.get_extra()

        diffeo2dds_config = get_diffeo2dds_config()

        if not which:
            todo = diffeo2dds_config.discdds.keys()
        else:
            todo = diffeo2dds_config.discdds.expand_names(which)

        id_image = self.options.image
        image = UncertainImage(diffeo2dds_config.images.instance(id_image))

        for id_dds in todo:
            self.info('Writing %s' % id_dds)
            dds = diffeo2dds_config.discdds.instance(id_dds)
            report = Report(id_dds)

            dds.display(report, image=image)

            write_report_files(report, basename=os.path.join(outdir, id_dds))
예제 #6
0
    def __init__(self, image_stream, discdds):
        '''
        :param discdds: Which DDS dynamics to use.
        
        :param image_stream: What ImageStream to use. 
        Each image is used to start a new episode.
        
        
        '''
        diffeo2ddslearn_config = get_diffeo2ddslearn_config()
        self.id_image_stream, self.image_stream = \
            diffeo2ddslearn_config.image_streams.instance_smarter(image_stream)
        if self.id_image_stream is None:
            self.id_image_stream = 'image_stream'
            
        diffeo2dds_config = get_diffeo2dds_config() 
        self.id_discdds, self.discdds = \
            diffeo2dds_config.discdds.instance_smarter(discdds)

        if self.id_discdds is None:
            self.id_discdds = 'discdds'
            
        self.shape = None