2024-04-27 00:52:30 发布
网友
我有这个配置:
network = {"source_embed_raw": {"class": "linear", ...}}
我想从一些现有的检查点加载层source_embed_raw的参数。 在该检查点中,param的调用方式不同(output/rec/target_embed_raw/W)
source_embed_raw
output/rec/target_embed_raw/W
我知道,我可以用preload_from_files加载参数,但我不确定在我的例子中加载参数的确切方式,因为层的名称不同,因此简单地添加前缀不起作用
preload_from_files
以这种方式使用preload_from_files目前不可能做到这一点。 所以我现在看到了这些可能的选择:
我们可以扩展preload_from_files(和CustomCheckpointLoader)的逻辑以允许类似的东西(一些通用变量/层名称映射)
CustomCheckpointLoader
或者您可以将层从source_embed_raw重命名为old_model__target_embed_raw,然后使用preload_from_files和prefix选项。如果您不想重命名它,您仍然可以添加一个类似old_model__target_embed_raw的层,然后在source_embed_raw中使用参数共享
old_model__target_embed_raw
prefix
如果检查点中的参数实际上被称为类似于output/rec/target_embed_raw/...的参数,那么可以创建一个名为old_model__output的SubnetworkLayer,在另一个名为rec的SubnetworkLayer中创建一个名为target_embed_raw的层
output/rec/target_embed_raw/...
old_model__output
SubnetworkLayer
rec
target_embed_raw
您可以编写一个脚本来加载现有的检查点,并将其存储为一个新的检查点,但使用重命名的变量名(这也完全独立于RETURNN)
LinearLayer(和大多数其他层)允许精确指定参数的初始化方式(forward_weights_init和bias_init)。参数初始化非常灵活。有像load_txt_file_initializer这样的东西可以使用。目前还没有这样的函数直接从现有的检查点加载它,但我们可以添加它。或者你可以简单地在你的配置中实现逻辑(只需要5行左右的代码)
LinearLayer
forward_weights_init
bias_init
load_txt_file_initializer
除了使用preload_from_files,还可以使用SubnetworkLayer和load_on_init选项。然后是与选项2中类似的逻辑
load_on_init
以这种方式使用
preload_from_files
目前不可能做到这一点。 所以我现在看到了这些可能的选择:我们可以扩展
preload_from_files
(和CustomCheckpointLoader
)的逻辑以允许类似的东西(一些通用变量/层名称映射)或者您可以将层从
source_embed_raw
重命名为old_model__target_embed_raw
,然后使用preload_from_files
和prefix
选项。如果您不想重命名它,您仍然可以添加一个类似old_model__target_embed_raw
的层,然后在source_embed_raw
中使用参数共享如果检查点中的参数实际上被称为类似于
output/rec/target_embed_raw/...
的参数,那么可以创建一个名为old_model__output
的SubnetworkLayer
,在另一个名为rec
的SubnetworkLayer
中创建一个名为target_embed_raw
的层您可以编写一个脚本来加载现有的检查点,并将其存储为一个新的检查点,但使用重命名的变量名(这也完全独立于RETURNN)
LinearLayer
(和大多数其他层)允许精确指定参数的初始化方式(forward_weights_init
和bias_init
)。参数初始化非常灵活。有像load_txt_file_initializer
这样的东西可以使用。目前还没有这样的函数直接从现有的检查点加载它,但我们可以添加它。或者你可以简单地在你的配置中实现逻辑(只需要5行左右的代码)除了使用
preload_from_files
,还可以使用SubnetworkLayer
和load_on_init
选项。然后是与选项2中类似的逻辑相关问题 更多 >
编程相关推荐