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

noo*_*oob 10 python transformer-model tensorflow tensor

所以我基本上将这个变换器实现用于我的项目:https://github.com/Kyubyong/transformer.它最初编写的德语到英语翻译效果很好,我修改了处理python脚本,以便为我想要翻译的语言创建词汇表文件.这似乎工作正常.

但是,当涉及到培训时,我收到以下错误:

InvalidArgumentError(请参阅上面的回溯):从检查点恢复失败.这很可能是由于当前图表与检查点图表不匹配造成的.请确保您没有根据检查点更改预期的图表.原始错误:

分配要求两个张量的形状匹配.lhs shape = [9796,512] rhs shape = [9786,512] [[{{node save/Assign_412}} =分配[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张量形状当然不同),在它工作之前!

关于为什么会发生这种情况的任何想法?

提前致谢

编辑:这是有问题的特定文件在这里,train.py当它运行:https://github.com/Kyubyong/transformer/blob/master/train.py 什么也没有比一个事实,即词汇修饰等为de和en加载的是不同的(它们实际上是单个字母作为单词的词汇文件).然而,正如我所提到的那样,即使回到流行的工作示例,我也会得到与不同的lhs和rhs尺寸相同的错误.

for*_*ger 0

这个数字几乎可以肯定是你的词汇量的大小。初始矩阵的大小为 [vocab_size,hidden_​​dim]。因此,通过改变词汇量的大小,你就会破坏事物。

据推测,解决方案只是确保清除所有检查点,以便您只查看使用所需词汇训练的模型。