PaddlePaddle/PaddleTS

model.save

Wenqianqian123 opened this issue · 6 comments

使用configs.longterm_forecast下的Crossformer_ECL.yml配置文件,运行train.py脚本,执行训练。发现没有保存模型的代码。在model.fit(ts_train,ts_val)代码后加入model.save("./Crossformer",network_model=Ture,dygraph_to_static=True).运行报错:[ERROR] ValueError: error occurred while saving or dygraph_to_static network_model: Crossformer, err: In transformed code:
File "/home/PaddleTS-main/paddlets/models/forecasting/dl/Crossformer.py", line 84, in forward
x_seq = self.enc_value_embedding(x_seq)
File "/home/PaddleTS-main/paddlets/models/forecasting/dl/_crossformer/embedding.py", line 16, in forward
'b (seg_num seg_len) d -> (b d seg_num) seg_len', seg_len=self.
File "/usr/local/lib/python3.7/dist-packages/einops/einops.py", line 483, in rearrange
raise TypeError("Rearrange can't be applied to an empty list")
tensor = get_backend(tensor[0]).stack_on_zeroth_dimension(tensor)
return reduce(cast(Tensor, tensor), pattern, reduction='rearrange', **axes_lengths)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/convert_call_func.py", line 214, in convert_call
converted_call = convert_to_static(func)
File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 140, in convert_to_static
static_func = _FUNCTION_CACHE.convert_with_cache(function)
File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 77, in convert_with_cache
static_func = self._convert(func)
File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 119, in _convert
static_func, file_name = ast_to_func(root_wrapper.node, func)
File "/usr/local/lib/python3.7/dist-packages/paddle/fluid/dygraph/dygraph_to_static/utils.py", line 500, in ast_to_func
module = SourceFileLoader(module_name, f.name).load_module()
File "", line 407, in _check_name_wrapper
File "", line 907, in load_module
File "", line 732, in load_module
File "", line 265, in _load_module_shim
File "", line 696, in _load
File "", line 677, in _load_unlocked
File "", line 728, in exec_module
File "", line 219, in _call_with_frames_removed
File "/tmp/tmpqb2sr_q0.py", line 6, in
def reduce(tensor: Tensor, pattern: str, reduction: Reduction, **
NameError: name 'Reduction' is not defined

您好 目前并不是所有模型支持静态图导出,Crossformer没有做静态图导出的适配。可以直接运行model.save("./Crossformer")尝试保存动态图模型。

您好,RNN,DLinear等早期的模型一般都支持静态导出。

长时间未回复,该issue已关闭,如仍有问题可以reopen或新开issue。