コード例 #1
0
def maybe_compile(arguments, expression, compile):
    "Either returns a raw Theano expression, or compiles it to a function."
    if not compile:
        return lambda new_args, arguments=arguments, expression=expression: conservative_clone(
            expression,
            replace=dict(zip(arguments, new_args)),
            reuse_shared=True)
    else:
        return th.function(arguments, expression, no_default_updates=True)
コード例 #2
0
ファイル: model.py プロジェクト: apatil/pymc-theano
def logp_difference(model, replacements, arguments=None, compile=True):
    """
    Returns a function that takes current values for some stochastic variables in the model,
    and new values for some stochastic variables in the model, and returns the new logp minus
    the current logp.
    """

    all_stochastics = stochastics(model)
    arguments = arguments or all_stochastics
    check_no_deterministics(arguments, 'logp_difference')
    
    differences = []
    for f in model['factors']:
        f_new = conservative_clone(f, replace=replacements, reuse_shared=True)
        differences.append(f_new - f)

    return maybe_compile(arguments + replacements.values(), logp_or_neginf(differences), compile)
コード例 #3
0
def logp_difference(model, replacements, arguments=None, compile=True):
    """
    Returns a function that takes current values for some stochastic variables in the model,
    and new values for some stochastic variables in the model, and returns the new logp minus
    the current logp.
    """

    all_stochastics = stochastics(model)
    arguments = arguments or all_stochastics
    check_no_deterministics(arguments, 'logp_difference')

    differences = []
    for f in model['factors']:
        f_new = conservative_clone(f, replace=replacements, reuse_shared=True)
        differences.append(f_new - f)

    return maybe_compile(arguments + replacements.values(),
                         logp_or_neginf(differences), compile)
コード例 #4
0
ファイル: model.py プロジェクト: apatil/pymc-theano
def maybe_compile(arguments, expression, compile):
    "Either returns a raw Theano expression, or compiles it to a function."
    if not compile:
        return lambda new_args, arguments=arguments, expression=expression: conservative_clone(expression, replace=dict(zip(arguments, new_args)), reuse_shared=True)
    else:
        return th.function(arguments, expression, no_default_updates=True)