-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
paddlepaddle删除embedding层参数文件,再加载模型文件失败? #2844
Comments
现在是不支持直接删除层然后加载的。考虑如果这个是一个通用的需求,可以增加。 Related: #2812 |
调用init_from_tar加载参数文件。替换可以构造一个fake emebedding dict,注意name和embedding dim相同。 |
@dzhwinter @Jarlonyan 不太确定这样的接口是否会比较通用,比如: parameters.from_tar(skip_layers=["__embedding_1__"]) |
@typhoonzero, parameters.from_tar的参数列表没有skip_layers,只有('f', 'params', 'tar', 'finfo', 'conf', 'param_name') |
从模型加载的skip_layers正在开发中 |
可以参考这个issue:#2663 , |
@qingqing01 , init_from_tar不是我想要的。因为这个init_from_tar还是调用了 from_tar这个函数,它会将所有的层的参数都加载进去,然后我需要哪些部分层的参数,它就给我返回。但问题是,我压根就不想用from_tar加载所有层的参数,因为embedding层参数太大,加载会太慢。 tar_param = Parameters.from_tar(f)
for pname in tar_param.names():
if pname in self.names():
self.set(pname, tar_param.get(pname)) |
demo for skip layer #164 |
@Jarlonyan @qingqing01 提供的方法中,可以先解压输出的模型tar包,并删除期望不加载的参数文件,然后重新打包,再调用 |
@typhoonzero ,我的版本是v2版,升级过。但是源码中并没有 |
这个功能是18天前merge的,需要更新到最近的版本才行。 |
@Jarlonyan 用
例如原始配置为:
可以更改为:
然后
但是第2种方法 |
maybe we can add this script demo to embedding demo? |
Currently Closing this issue for now, feel free to reoopen it. |
我们的问题是: 将paddle训练得到的模型文件中的embedding层的参数文件删除,再用paddle.parameters加载剩余层的参数文件,结果是加载不了。为什么?怎么可以实现加载?
The text was updated successfully, but these errors were encountered: