Closed nickyoungforu closed 3 years ago
这个需要使用 padddlepaddle 1.6 来运行. 新版在 shape 上的要求发生了一些变化.
这个需要使用 padddlepaddle 1.6 来运行. 新版在 shape 上的要求发生了一些变化.
请问是对dynamic_decode的inits的shape要求变了吗? 我看基于2.0版本的代码 https://github.com/PaddlePaddle/models/tree/release/2.0-beta/PaddleNLP/examples/text_generation/vae-seq2seq里面跟这里的好像看不出什么区别,对dec_initial_states的定义是类似的。
https://github.com/PaddlePaddle/models/tree/release/2.0-beta/PaddleNLP/examples/text_generation/vae-seq2seq/model.py下: dec_first_hidden_cell = self.fc(latent_z) dec_first_hidden, dec_first_cell = paddle.split( dec_first_hidden_cell, 2, axis=-1) if self.num_layers > 1: dec_first_hidden = paddle.split(dec_first_hidden, self.num_layers) dec_first_cell = paddle.split(dec_first_cell, self.num_layers) else: dec_first_hidden = [dec_first_hidden] dec_first_cell = [dec_first_cell] dec_initial_states = [[h, c] for h, c in zip(dec_first_hidden, dec_first_cell)]
https://github.com/PaddlePaddle/models/blob/release/2.0-beta/PaddleNLP/legacy/seq2seq/variational_seq2seq/model.py下: dec_first_hidden_cell = layers.fc(latent_z, 2 self.hidden_size self.num_layers, name='fc_hc') dec_first_hidden, dec_first_cell = layers.split(dec_first_hidden_cell, 2) if self.num_layers > 1: dec_first_hidden = layers.split(dec_first_hidden, self.num_layers) dec_first_cell = layers.split(dec_first_cell, self.num_layers) else: dec_first_hidden = [dec_first_hidden] dec_first_cell = [dec_first_cell] dec_initial_states = [[h, c] for h, c in zip(dec_first_hidden, dec_first_cell)]
看起来是 stack 里面的 tensor 的形状不尽相同.
可能是更前面的 op 的计算结果出现了不符合预期的行为. 你是在用 1.6 来运行吗?
看起来是 stack 里面的 tensor 的形状不尽相同.
可能是更前面的 op 的计算结果出现了不符合预期的行为. 你是在用 1.6 来运行吗?
你好,我现在是1.8的环境,我想在不换版本的前提下跑通这份代码。请问这个应该怎么debug? 之前在paddle答疑群里有同学告诉我应该跑这份代码:https://github.com/PaddlePaddle/models/tree/release/2.0-beta/PaddleNLP/examples/text_generation/vae-seq2seq/ 那这份代码在2.0下应该是通的吧。两份代码进入decode前的逻辑看上去好像没什么区别。
我们 debug 主要靠打印形状来看是否符合要求。但是建议先用 1.6 版本来运行。因为跨版本的一些差异范围可能需要看 release note 才清楚。
@nickyoungforu 可否试用下我们最新的2.0版本的vae-seq2seq? https://github.com/PaddlePaddle/models/tree/release/2.0-beta/PaddleNLP/examples/machine_translation/seq2seq https://github.com/PaddlePaddle/models/tree/release/2.0-beta/PaddleNLP/examples/text_generation/vae-seq2seq 欢迎使用我们的新版本继续给提反馈意见。
@nickyoungforu hello,解决方法建议是先把这一行
的unsqueeze
函数去掉,sample_output_layer
变成下面这样:
sample_output_layer = lambda x: layers.unsqueeze(fluid.one_hot(
layers.sampling_id(
layers.softmax(
layers.squeeze(output_layer(x),[1])
),dtype='int'),
depth=self.tar_vocab_size), [1])
同时建议使用我们2.0版本的模型,都是基于PaddlePaddle2.0开发的,会比之前的版本更好用~~
同时建议使用我们2.0版本的模型,都是基于PaddlePaddle2.0开发的,会比之前的版本更好用~~
嗯嗯 之前已经解决 忘记close了 感谢回复 会尝试2.0版本
in models/PaddleNLP/legacy/seq2seq/variational_seq2seq/ run sh infer.sh ptb it shows:
Error Message Summary:
InvalidArgumentError: Dims of all Inputs(X) must be the same, but received input 1 dim is:320096, 1 not equal to input 0 dim:32, 1. [Hint: Expected input_dims[i] == input_dims[0], but received input_dims[i]:320096, 1 != input_dims[0]:32, 1.] at (/paddle/paddle/fluid/operators/stackop.cc:46) [operator < stack > error] in model.py
outputs, = dynamic_decode( beam_search_decoder, inits=dec_initial_states, max_step_num=max_length)