コード例 #1
0
 def __init__(self, *args, **kwargs):
     super(Parameter, self).__init__()
     if 'scope' in kwargs.keys():
         with nn.parameter_scope(kwargs['scope']):
             set_parameter(self.__repr__(), self)
     else:
         set_parameter(self.__repr__(), self)
コード例 #2
0
def load_param_in_txt(name, filepath):
    with open(filepath, 'r') as input:
        ds = input.read()
    ds = ds.split("\n")
    shape = eval(ds.pop(0))
    variable = nn.Variable(shape, need_grad=True)
    variable.d = np.fromstring("\n".join(ds), dtype=np.float32,
                               sep="\n").reshape(shape)
    set_parameter(name, variable)
コード例 #3
0
ファイル: encode_decode_param.py プロジェクト: zwsong/nnabla
def load_param_in_txt(name, filepath):
    with open(filepath, 'r') as input:
        ds = input.read()
    ds = ds.split("\n")
    shape = eval(ds.pop(0))
    variable = nn.Variable(shape, need_grad=True)
    variable.d = np.fromstring("\n".join(ds),
                               dtype=np.float32,
                               sep="\n").reshape(shape)
    set_parameter(name, variable)
コード例 #4
0
ファイル: nnp_graph.py プロジェクト: ssgalitsky/nnabla
    def _get_variable_or_create(self, v, callback, current_scope):

        if v.variable is not None:
            return v.variable

        v = callback._apply_generate_variable(v)

        if v.variable is not None:
            return v.variable

        pvar = v.proto
        name = pvar.name
        shape = list(pvar.shape.dim)
        if shape[0] < 0:
            shape[0] = self.batch_size
        shape = tuple(shape)
        assert np.all(np.array(shape) > 0
                      ), "Shape must be positive. Given {}.".format(shape)

        if pvar.type != 'Parameter':
            # Create a new variable and returns.
            var = nn.Variable(shape)
            v.variable = var
            var.name = name
            return var

        # Trying to load the parameter from .nnp file.
        callback.verbose('Loading parameter `{}` from .nnp.'.format(name))
        try:
            param = get_parameter(name)
            if param is None:
                logger.info(
                    'Parameter `{}` is not found. Initializing.'.format(name))
                tmp = _create_variable(pvar, name, shape, self.rng)
                param = tmp.variable_instance
                set_parameter(name, param)
            # Always copy param to current scope even if it already exists.
            with nn.parameter_scope('', current_scope):
                set_parameter(name, param)
        except:
            import sys
            import traceback
            raise ValueError(
                'An error occurs during creation of a variable `{}` as a'
                ' parameter variable. The error was:\n----\n{}\n----\n'
                'The parameters registered was {}'.format(
                    name, traceback.format_exc(), '\n'.join(
                        list(nn.get_parameters(grad_only=False).keys()))))
        assert shape == param.shape
        param = param.get_unlinked_variable(need_grad=v.need_grad)
        v.variable = param
        param.name = name
        return param
コード例 #5
0
ファイル: test_parameter.py プロジェクト: ss-jp/nnabla
def test_get_set_pop_parameter():
    import nnabla as nn
    from nnabla.parameter import set_parameter, pop_parameter, get_parameter
    nn.clear_parameters()
    x = nn.Variable((2, 3, 4, 5))
    key = 'a/b/c'
    set_parameter(key, x)
    x2 = get_parameter(key)
    assert x is x2
    x3 = pop_parameter(key)
    assert x is x3
    x4 = get_parameter(key)
    assert x4 is None
コード例 #6
0
def yolov2_image_coordinate(t_xy, t_wh, biases):
    import numpy as np
    from nnabla.parameter import pop_parameter, set_parameter
    h, w = t_xy.shape[-2:]
    xs = pop_parameter('xs')
    ys = pop_parameter('ys')
    if xs is None or (h != xs.shape[-1]):
        xs = nn.Variable.from_numpy_array(np.arange(w).reshape(1, 1, 1, -1))
        xs.need_grad = False
        set_parameter('xs', xs)
    if ys is None or (h != ys.shape[-2]):
        ys = nn.Variable.from_numpy_array(np.arange(h).reshape(1, 1, -1, 1))
        ys.need_grad = False
        set_parameter('ys', ys)
    t_x, t_y = F.split(t_xy, axis=2)
    oshape = list(t_x.shape)
    oshape.insert(2, 1)
    t_x = F.reshape((t_x + xs) / w, oshape)
    t_y = F.reshape((t_y + ys) / h, oshape)
    pop_parameter('biases')
    biases = biases.reshape(1, biases.shape[0], biases.shape[1], 1,
                            1) / np.array([w, h]).reshape(1, 1, 2, 1, 1)
    b = nn.Variable.from_numpy_array(biases)
    b.need_grad = False
    set_parameter('biases', b)
    t_wh = t_wh * b
    return t_x, t_y, t_wh