InvalidArgumentError:当前图形与检查点中的图形不匹配

2024-10-01 11:27:55 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我基本上在我的项目中使用这个转换器实现:https://github.com/Kyubyong/transformer。 它在德语到英语的翻译上很好地工作,我修改了处理python脚本,以便为我要翻译的语言创建词汇表文件。这似乎很管用。在

但是,在培训方面,我遇到了以下错误:

InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

Assign requires shapes of both tensors to match. lhs shape= [9796,512] rhs shape= [9786,512] [[{{node save/Assign_412}} = Assign[T=DT_FLOAT, _class=["loc:@encoder/enc_embed/lookup_table"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](encoder/enc_embed/lookup_table/Adam_1, save/RestoreV2:412)]]

现在我不知道为什么会出现上述错误。我还恢复了原来的代码从德语翻译成英语,现在我得到了同样的错误(除了lhs和rhs张量形状当然是不同的),当它工作之前!在

你知道为什么会这样吗?在

提前谢谢

编辑:这是这里讨论的特定文件火车.py运行时:https://github.com/Kyubyong/transformer/blob/master/train.py 除了de和en加载的vocab不同(它们实际上是以单个字母作为单词的vocab文件),没有任何修改。然而,正如我提到的,即使回到前面的工作示例,我也会在不同的lhs和rhs维度上得到相同的错误。在


Tags: 文件thefromhttpsgithubcom错误graph
2条回答

这个大数字几乎可以肯定是你的词汇量。初始矩阵的大小为[vocab_size,hidden_dim]。所以通过改变你的声音大小,你是在破坏东西。在

大概解决方案就是确保清除所有的检查点,这样您就只查看使用您想要的词汇表训练过的模型。在

我也遇到了一个类似的错误,我的情况是以前失败的作业的输出仍然保留在输出目录上,并且在保存/恢复新作业的检查点时存在一些不兼容的情况,所以我只是清理了输出目录,然后新作业正常工作。在

相关问题 更多 >