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
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
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