Python InvalidArgumentError:当前图形与来自检查点的图形之间不匹配
因此,我基本上是在我的项目中使用此transformer实现:。 它在最初为其编写的德语到英语的翻译中非常有效,我修改了处理python脚本,以便为我要翻译的语言创建词汇表文件。这似乎很有效 但是,当涉及到培训时,我会遇到以下错误: InvalidArgumentError(回溯见上文):从恢复 检查点失败。这很可能是由于 当前图形和来自检查点的图形。请确保 您尚未根据检查点更改预期的图形。 原始错误: Assign需要两个张量的形状匹配。lhs形状=[9796512] rhs形状=[9786512][{{{node save/Assign_412}= 分配[T=DT_FLOAT,[u class=[“loc:@encoder/enc_embed/lookup_table”], 使用\u locking=true,验证\u shape=true, _device=“/job:localhost/replica:0/task:0/device:CPU:0”](编码器/enc_嵌入/查找_表/Adam_1, 保存/恢复(2:412)]] 现在我不知道为什么会出现上述错误。我还恢复了原来的代码,将德语翻译成英语,现在我得到了相同的错误(当然除了lhs和rhs张量形状不同),在它工作之前 你知道为什么会这样吗 提前谢谢 编辑:这是此处讨论的特定文件,运行时的train.py:Python InvalidArgumentError:当前图形与来自检查点的图形之间不匹配,python,tensorflow,tensor,transformer,Python,Tensorflow,Tensor,Transformer,因此,我基本上是在我的项目中使用此transformer实现:。 它在最初为其编写的德语到英语的翻译中非常有效,我修改了处理python脚本,以便为我要翻译的语言创建词汇表文件。这似乎很有效 但是,当涉及到培训时,我会遇到以下错误: InvalidArgumentError(回溯见上文):从恢复 检查点失败。这很可能是由于 当前图形和来自检查点的图形。请确保 您尚未根据检查点更改预期的图形。 原始错误: Assign需要两个张量的形状匹配。lhs形状=[9796512] rhs形状=[97865
除了de和en加载的vocab是不同的(它们实际上是以单个字母作为单词的vocab文件)之外,没有任何修改。然而,正如我提到的,即使回到前面的工作示例中,我也会在不同的lhs和rhs尺寸下得到相同的错误 这个大数字几乎可以肯定是你词汇量的大小。初始矩阵的大小为[vocab_size,hidden_dim]。所以通过改变你的声音的大小,你是在破坏东西
想必解决方案只是确保清除所有检查点,以便只查看使用所需词汇训练的模型。我遇到了类似的错误,在我的案例中,以前失败的作业的输出似乎仍保留在输出目录上,并且在保存/恢复新作业的检查点时存在一些不兼容,因此我只是清理了输出目录,然后新作业正常工作 导出/保存模型时,我遇到了相同的问题。我指的是这个URL中给出的示例: 如果您面临上述问题,您必须确保以下三件事是正确的:
以前我只使用了不起作用的
/data/model.ckpt
。你能举个例子吗?您是否正在使用一个保留状态的Jupyter笔记本
?@user49593嗨,我会这样做并编辑它,谢谢。但同时,是的,我相信这一定与它有关,指向一个旧的图形模型或其他东西。但我重新启动了终端,并试图清除某种缓存,但没有成功:(@user49593我刚刚通过github添加了一个指向该文件的特定链接,不认为创建一个较短的代码段是可行的。谢谢
TRAINED_CKPT_PREFIX=./data/model.ckpt-139