Ejemplo n.º 1
0
    def vcall(self, module : 'Field', graph : 'Graph', inst : 'values.Object', args : 'functions.FunctionArgInput', line = -1):
        node = nodes.NodeCall(self, [inst.get_value()], line)

        value = values.ListValue()
        value.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([value])

        # TODO should make tuple
        graph.add_node(node)
        return values.Object(value)
Ejemplo n.º 2
0
    def vcall(self, module : 'Field', graph : 'Graph', inst : 'values.Object', args = [], line = -1):
        funcArgs = self.parse_args(args)
        vargs = self.get_values(funcArgs)

        node = nodes.NodeCall(self, vargs, line)
        graph.add_node(node)
        value = functions.generate_value_with_same_type(vargs[0])
        value.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([value])
        return values.Object(value)
    def vcall(self, module: 'Field', graph: 'Graph', inst: 'values.ValueRef', args: 'functions.FunctionArgInput', line=-1):
        funcArgs = self.args.merge_inputs(inst, args)

        node = nodes.NodeCall(self, funcArgs, line)
        graph.add_node(node)
        #value = functions.generate_value_with_same_type(vargs[0])
        value = self.ret_value_func()
        value.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([value])
        return values.ValueRef(value)
Ejemplo n.º 4
0
    def vcall(self, module : 'Field', graph : 'Graph', inst : 'values.Object', args = [], line = -1):
        assert(len(args) == 0)
        node = nodes.NodeCall(self, [inst.get_value()] + [v.obj.get_value() for v in args], line)

        value = values.ListValue()
        value.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([value])

        # TODO should make tuple
        graph.add_node(node)
        return values.Object(value)
    def vcall(self,
              module: 'values.Field',
              graph: 'core.Graph',
              inst: 'values.Value',
              args=[],
              line=-1):
        assert (len(args) == 1)

        node = nodes.NodeCall(self, [v.value for v in args], line)
        inst.modify(node, None)
        graph.add_node(node)
        return values.NoneValue()
 def vcall(self,
           module: 'values.Field',
           graph: 'core.Graph',
           inst: 'Value',
           args=[],
           line=-1):
     funcArgs = self.parse_args(args)
     node = nodes.NodeCall(self, [v.value for v in funcArgs], line)
     graph.add_node(node)
     value = functions.generate_value_with_same_type(funcArgs[0].value)
     node.set_outputs([value])
     return value
Ejemplo n.º 7
0
    def vcall(self, module : 'Field', graph : 'Graph', inst : 'values.Object', args = [], line = -1):
        assert(len(args) == 1)

        node = nodes.NodeCall(self, [inst.get_value()] + [v.obj.get_value() for v in args], line)

        old_v = inst.get_value()
        new_v = functions.generate_value_with_same_type(old_v)
        inst.revise(new_v)

        new_v.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([new_v])

        graph.add_node(node)
        return values.NoneValue()
    def vcall(self, module: 'Field', graph: 'Graph', inst: 'values.ValueRef', args: 'functions.FunctionArgInput', line=-1):
        funcArgs = self.args.merge_inputs(inst, args)

        node = nodes.NodeCall(self, funcArgs, line)

        old_v = inst.get_value()
        new_v = functions.generate_value_with_same_type(old_v)
        inst.revise(new_v)

        new_v.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([new_v])

        graph.add_node(node)
        return values.NoneValue()
Ejemplo n.º 9
0
    def vcall(self,
              module: 'values.Field',
              graph: 'Graph',
              inst: 'Object',
              args: 'functions.FunctionArgInput',
              line=-1):
        node = nodes.NodeCall(self, [v.get_value() for v in args.inputs], line)
        graph.add_node(node)
        value = values.TensorValue()

        estimate_shape = chainer_links[type(self.owner.inst)].estimate_shape
        if estimate_shape is not None:
            value.shape = estimate_shape(self.owner.inst, args)

        node.set_outputs([value])
        return values.Object(value)
Ejemplo n.º 10
0
    def vcall(self,
              module: 'values.Field',
              graph: 'Graph',
              inst: 'values.ValueRef',
              args: 'functions.FunctionArgInput',
              line=-1):
        vargs = self.args.merge_inputs(inst, args)

        node = nodes.NodeCall(self, vargs, line)
        graph.add_node(node)
        value = values.TensorValue()

        estimate_shape = chainer_links[type(self.owner.inst)].estimate_shape
        if estimate_shape is not None:
            value.shape = estimate_shape(self.owner.inst, vargs)

        node.set_outputs([value])
        return values.ValueRef(value)
Ejemplo n.º 11
0
    def vcall(self,
              module: 'Field',
              graph: 'Graph',
              inst: 'values.ValueRef',
              args: 'functions.FunctionArgInput',
              line=-1):
        args = functions.FunctionArgInput()
        args.inputs.append(inst)
        args.keywords['self'] = inst

        node = nodes.NodeCall(self, args, line)

        value = values.NumberValue(None)
        value.dtype = np.array(0).dtype
        value.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([value])

        graph.add_node(node)
        return values.ValueRef(value)
Ejemplo n.º 12
0
    def vcall(self,
              module: 'Field',
              graph: 'Graph',
              inst: 'values.ValueRef',
              args: 'functions.FunctionArgInput',
              line=-1):
        args = functions.FunctionArgInput()
        args.inputs.append(inst)
        args.keywords['self'] = inst

        node = nodes.NodeCall(self, args, line)

        value = values.ListValue()
        value.name = '@F.{}.{}'.format(line, self.name)
        node.set_outputs([value])

        # TODO should make tuple
        graph.add_node(node)
        return values.ValueRef(value)
Ejemplo n.º 13
0
    def vcall(self,
              module: 'values.Field',
              graph: 'Graph',
              inst: 'Object',
              args=[],
              line=-1):
        node = nodes.NodeCall(self, [v.obj.get_value() for v in args], line)
        graph.add_node(node)
        value = values.TensorValue()

        # TODO refactor
        if (isinstance(self.owner.inst, chainer.links.Linear)):
            cn = self.owner.inst  # type: chainer.links.Linear
            if isinstance(args[0].obj.get_value(), values.TensorValue) and len(
                    args[0].obj.get_value().shape) >= 2:
                value.shape = (args[0].obj.get_value().shape[0], cn.out_size)

        if (isinstance(self.owner.inst, chainer.links.Convolution2D)):
            value = functions.generate_tensor_value_with_undefined_shape_size(
                args[0].obj.get_value())

        node.set_outputs([value])
        return values.Object(value)