Example #1
0
def create_pattern_reconstruct_fn(layers,
                                  patterns,
                                  patterns_flipped,
                                  return_all=False,
                                  enforce_positivity_after_relu=True,
                                  enforce_positivity_everywhere=False):
    """ Attempts to reconstruct given input from specific layer
    by first computing feature representation..."""
    assert patterns_flipped == False, "Otherwise implement it"

    inputs = create_suitable_theano_input_var(layers[-1])
    outputs = lasagne.layers.get_output(layers[-1],
                                        deterministic=True,
                                        input_var=inputs,
                                        inputs=inputs)

    n_patterns = len([l for l in layers if hasattr(l, 'W')])
    deconved_var = pattern_deconv(
        outputs,
        inputs,
        layers,
        patterns[:n_patterns],
        patterns_flipped=patterns_flipped,
        return_all=return_all,
        enforce_positivity_after_relu=enforce_positivity_after_relu,
        enforce_positivity_everywhere=enforce_positivity_everywhere)
    pattern_deconv_fn = theano.function([inputs], deconved_var)
    return pattern_deconv_fn
Example #2
0
def create_pattern_deconv_fn(layers,
                             patterns,
                             patterns_flipped,
                             return_all=False,
                             enforce_positivity_after_relu=True,
                             enforce_positivity_everywhere=False):
    assert patterns_flipped == False, "Otherwise implement it"

    inputs = create_suitable_theano_input_var(layers[-1])
    outputs = create_suitable_theano_output_var(layers[-1])

    n_patterns = len([l for l in layers if hasattr(l, 'W')])
    deconved_var = pattern_deconv(
        outputs,
        inputs,
        layers,
        patterns[:n_patterns],
        patterns_flipped=patterns_flipped,
        return_all=return_all,
        enforce_positivity_after_relu=enforce_positivity_after_relu,
        enforce_positivity_everywhere=enforce_positivity_everywhere)
    try:
        pattern_deconv_fn = theano.function([outputs, inputs], deconved_var)
    except UnusedInputError:
        pattern_deconv_fn = theano.function([outputs], deconved_var)
    return pattern_deconv_fn
Example #3
0
def create_pattern_reconstruct_fn(layers, patterns, patterns_flipped,
                             return_all=False, 
                             enforce_positivity_after_relu=True,
                             enforce_positivity_everywhere=False):
    """ Attempts to reconstruct given input from specific layer
    by first computing feature representation..."""
    assert patterns_flipped == False, "Otherwise implement it"

    inputs = create_suitable_theano_input_var(layers[-1])
    outputs = lasagne.layers.get_output(layers[-1], 
        deterministic=True, input_var=inputs, inputs=inputs)
    
    n_patterns = len([l for l in layers if hasattr(l, 'W')])
    deconved_var = pattern_deconv(outputs, inputs, layers, patterns[:n_patterns],
                                  patterns_flipped=patterns_flipped,
                                  return_all=return_all,
                                  enforce_positivity_after_relu=enforce_positivity_after_relu,
                                 enforce_positivity_everywhere=enforce_positivity_everywhere)
    pattern_deconv_fn = theano.function([inputs], deconved_var)
    return pattern_deconv_fn
Example #4
0
def create_pattern_deconv_fn(layers, patterns, patterns_flipped,
                             return_all=False, 
                             enforce_positivity_after_relu=True,
                             enforce_positivity_everywhere=False):
    assert patterns_flipped == False, "Otherwise implement it"

    inputs = create_suitable_theano_input_var(layers[-1])
    outputs = create_suitable_theano_output_var(layers[-1])
    
    n_patterns = len([l for l in layers if hasattr(l, 'W')])
    deconved_var = pattern_deconv(outputs, inputs, layers, patterns[:n_patterns],
                                  patterns_flipped=patterns_flipped,
                                  return_all=return_all,
                                  enforce_positivity_after_relu=enforce_positivity_after_relu,
                                 enforce_positivity_everywhere=enforce_positivity_everywhere)
    try:
        pattern_deconv_fn = theano.function([outputs, inputs], deconved_var)
    except UnusedInputError:
        pattern_deconv_fn = theano.function([outputs], deconved_var)
    return pattern_deconv_fn