目前我是在load_vars后实现save_vars的
def load_test_weights_file(self, exe, weights, prog, place):
"""
load_test_weights_file
"""
load_vars = [x for x in prog.list_vars() \
if isinstance(x, fluid.framework.Parameter)]
fluid.io.load_vars(exe,
dirname=weights,
vars=load_vars,
filename="param")
def name_has_fc(var):
return True
fluid.io.save_vars(executor=exe, dirname="save_vars_tmp", main_program=prog, predicate=name_has_fc)
出现了以下的错误:
File "./scenario_lib/models/attention_lstm_ernie.py", line 416, in load_test_weights_file
fluid.io.save_vars(executor=exe, dirname="save_vars_tmp", main_program=prog, predicate=name_has_fc)
File "<decorator-gen-118>", line 2, in save_vars
File "/lib/python3.7/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
return wrapped_func(*args, **kwargs)
File "/lib/python3.7/site-packages/paddle/fluid/framework.py", line 425, in __impl__
return func(*args, **kwargs)
File "/lib/python3.7/site-packages/paddle/fluid/io.py", line 376, in save_vars
filename=filename)
File "<decorator-gen-118>", line 2, in save_vars
File "/lib/python3.7/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
return wrapped_func(*args, **kwargs)
File "/lib/python3.7/site-packages/paddle/fluid/framework.py", line 425, in __impl__
return func(*args, **kwargs)
File "/lib/python3.7/site-packages/paddle/fluid/io.py", line 394, in save_vars
new_var = _clone_var_in_block_(save_block, each_var)
File "/lib/python3.7/site-packages/paddle/fluid/io.py", line 249, in _clone_var_in_block_
shape=var.shape,
File "/lib/python3.7/site-packages/paddle/fluid/framework.py", line 1841, in shape
return tuple(self.desc.shape())
RuntimeError: (Unavailable) Getting 'tensor_desc' is not supported by the _generated_var_0 type variable. (at /paddle/paddle/fluid/framework/var_desc.cc:224)