Exemple #1
0
def _create_executor(ctx, executor):
    '''
    '''
    name, network, remap = \
        executor['name'], ctx.networks[executor['network']], \
        executor.get('remp', {})

    generator_variables = executor.get('generator_variables', [])

    proto_network = ctx.proto_graphs[executor['network']].default_graph()

    e = nnabla_pb2.Executor()
    e.name = name
    e.network_name = network.name
    for vname in executor.get('data', proto_network.inputs):
        if vname not in proto_network.variables:
            raise ValueError("{} is not found in networks!".format(vname))
        dv = e.data_variable.add()
        dv.variable_name = vname
        dv.data_name = remap.get(vname, vname)
    for vname in executor.get('output', proto_network.outputs):
        if vname not in proto_network.variables:
            raise ValueError("{} is not found in networks!".format(vname))
        ov = e.output_variable.add()
        ov.variable_name = vname
        ov.data_name = remap.get(vname, vname)
    for param in proto_network.parameters.keys():
        d = e.parameter_variable.add()
        d.variable_name = param
    for vname in generator_variables:
        d = e.generator_variable.add()
        d.type = 'Constant'
        d.multiplier = 0
        d.variable_name = vname
    return e
Exemple #2
0
def _create_executor(name, network, data, output, remap=None):
    '''
    '''
    if remap is None:
        remap = {}
    e = nnabla_pb2.Executor()
    e.name = name
    e.network_name = network.name
    _, _, params = _get_net_variables(network)
    var_dict = {v.name: v for v in network.variable}
    for vname in data:
        try:
            _ = var_dict[vname]
        except KeyError:
            raise KeyError("{} not found in {}".format(vname, network.name))
        dv = e.data_variable.add()
        dv.variable_name = vname
        dv.data_name = remap.get(vname, vname)
    for vname in output:
        try:
            _ = var_dict[vname]
        except KeyError:
            raise KeyError("{} not found in {}".format(vname, network.name))
        ov = e.output_variable.add()
        ov.variable_name = vname
        ov.data_name = remap.get(vname, vname)
    for param in params:
        d = e.parameter_variable.add()
        d.variable_name = param
    return e
Exemple #3
0
def _create_executor(name, network, input_names):
    e = nnabla_pb2.Executor()
    e.name = name
    e.network_name = network.name
    inputs, outputs, params = _get_net_variables(network)
    count = 0
    for inp in inputs:
        d = e.data_variable.add()
        d.variable_name = inp
        d.data_name = input_names[count]
        count += 1
    for out in outputs:
        d = e.output_variable.add()
        d.variable_name = out
        d.data_name = input_names[count]
        count += 1
    for param in params:
        d = e.parameter_variable.add()
        d.variable_name = param

    return e