Giter VIP home page Giter VIP logo

Comments (7)

wanghaoshuang avatar wanghaoshuang commented on May 12, 2024

@lcy-seso Do you have a v2 doc for nested_sequence. hierarchical-rnn

from models.

wanghaoshuang avatar wanghaoshuang commented on May 12, 2024

hi, @lcy-seso :
I got an err when i run a sequence_nest_rnn demo, which is translated from v1 demo sequence_nest_rnn.conf
Can you help me check the code?

my sequence_nest_rnn configuration:

import paddle.v2 as paddle

__all__ = ['nested_sequence_net']

def outer_step(x):
    outer_mem = paddle.layer.memory(name="outer_rnn_state", size=128)
    def inner_step(y):
        inner_mem = paddle.layer.memory(name="inner_rnn_state",
                size=128,
                boot_layer=outer_mem)
        #return resnet.residual_net(ipt=[y, inner_mem], depth=32)
        return paddle.layer.fc(input=[y, inner_mem],
                size=128,
                act=paddle.activation.Relu(),
                name="inner_rnn_state",
                bias_attr=None)
    inner_rnn_output = paddle.layer.recurrent_group(step=inner_step,
            input=x,
            name="inner")
    last = paddle.layer.last_seq(input=inner_rnn_output,
            name="outer_rnn_state")
    return inner_rnn_output

def nested_sequence_net(ipt):
    return paddle.layer.recurrent_group(step=outer_step, input=ipt)

and my data layer:

data = paddle.layer.data("word", paddle.data_type.integer_value_sub_sequence(dict_dim))
emb = paddle.layer.embedding(input=data, size=emb_dim)
net = nested_sequence_net(emb)

and err log:

finish load word_dict, word_dict dim: 5147
I0502 19:05:28.741672 10743 Util.cpp:166] commandline:  --use_gpu=False --trainer_count=1
Traceback (most recent call last):
  File "train.py", line 90, in <module>
    main()
  File "train.py", line 48, in main
    parameters = paddle.parameters.create(cost)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/parameters.py", line 19, in create
    topology = Topology(layers)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/topology.py", line 69, in __init__
    layers, extra_layers=extra_layers)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/layer.py", line 96, in parse_network
    return __parse__(__real_func__)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer_config_helpers/config_parser_utils.py", line 32, in parse_network_config
    config = config_parser.parse_config(network_conf, config_arg_str)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer/config_parser.py", line 3598, in parse_config
    trainer_config()
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/layer.py", line 89, in __real_func__
    real_output = [each.to_proto(context=context) for each in output_layers]
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 109, in to_proto
    context=context)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 109, in to_proto
    context=context)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 109, in to_proto
    context=context)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 112, in to_proto
    self.__parent_layers__[layer_name])
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 111, in <lambda>
    v1_layer = map(lambda x: x.to_proto(context=context),
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 112, in to_proto
    self.__parent_layers__[layer_name])
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 111, in <lambda>
    v1_layer = map(lambda x: x.to_proto(context=context),
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 112, in to_proto
    self.__parent_layers__[layer_name])
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 111, in <lambda>
    v1_layer = map(lambda x: x.to_proto(context=context),
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 100, in to_proto
    p.to_proto(context=context)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/config_base.py", line 116, in to_proto
    ret_val = self.to_proto_impl(**kwargs)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/v2/layer.py", line 197, in to_proto_impl
    return conf_helps.memory(name=self.name, **args)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer_config_helpers/default_decorators.py", line 53, in __wrapper__
    return func(*args, **kwargs)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer_config_helpers/layers.py", line 2929, in memory
    memory_name=memory_name)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer/config_parser.py", line 2338, in Memory
    agent_layer = AgentLayer(agent_name, size)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer/config_parser.py", line 2244, in __init__
    name, 'agent', size, inputs=[], device=device)
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer/config_parser.py", line 1441, in __init__
    height = self.get_input_layer(0).height
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer/config_parser.py", line 1447, in get_input_layer
    return g_layer_map[self.config.inputs[input_index].input_layer_name]
  File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/google/protobuf/internal/containers.py", line 204, in __getitem__
    return self._values[key]
IndexError: list index out of range

from models.

luotao1 avatar luotao1 commented on May 12, 2024

在v1中:

out = recurrent_group(
    name="outer",
    step=outer_step,
    input=SubsequenceInput(emb))

双层序列的输入要用SubsequenceInput标记,同时recurrent_group必须要有name。

from models.

wanghaoshuang avatar wanghaoshuang commented on May 12, 2024

hi,@luotao1

emb = paddle.layer.embedding(input=data, size=emb_dim)
...
out = recurrent_group(
    name="outer",
    step=outer_step,
    input=SubsequenceInput(emb))

如上,我加上SubsequenceInput标记,会有如下错误:

File "/home/work/wanghaoshuang/workspace/paddle_dev/env/idl/paddle/output/python27-gcc482/lib/python2.7/site-packages/paddle/trainer_config_helpers/layers.py", line 3220, in __init__
    assert isinstance(input, LayerOutput)
AssertionError 

SubsequenceInput要求input必须是LayerOutput,我查看了下embedding_layer的文档,返回的确实是Type<LayerOutput>

@wrap_name_default("embedding")
@wrap_param_attr_default()
@layer_support(ERROR_CLIPPING)
def embedding_layer(input, size, name=None, param_attr=None, layer_attr=None):
    """
    Define a embedding Layer.
    ...
    ...
    :return: LayerOutput object.
    :rtype: LayerOutput
    """

或者V2的embedding_layer和V1返回类型不一样?如果不一样,V2怎么使用SubsequenceInput呢?

from models.

luotao1 avatar luotao1 commented on May 12, 2024

因为V1的layer.py的SubsequenceInput在V2的layers.py里面还未单独写过,所以需要加上。

from models.

wanghaoshuang avatar wanghaoshuang commented on May 12, 2024

V2的recurrent_group里没有涉及SubsequenceInput的逻辑,是不是V2的recurrent_group暂不支持双层RNN?
@reyoung 于老师帮忙确认下?

from models.

shanyi15 avatar shanyi15 commented on May 12, 2024

您好,此issue在近一个月内暂无更新,我们将于今天内关闭。若在关闭后您仍需跟进提问,可重新开启此问题,我们将在24小时内回复您。因关闭带来的不便我们深表歉意,请您谅解~感谢您对PaddlePaddle的支持!
Hello, this issue has not been updated in the past month. We will close it today for the sake of other user‘s experience. If you still need to follow up on this question after closing, please feel free to reopen it. In that case, we will get back to you within 24 hours. We apologize for the inconvenience caused by the closure and thank you so much for your support of PaddlePaddle Group!

from models.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.