Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python InvalidArgumentError:当前图形与来自检查点的图形之间不匹配_Python_Tensorflow_Tensor_Transformer - Fatal编程技术网

Python InvalidArgumentError:当前图形与来自检查点的图形之间不匹配

Python InvalidArgumentError:当前图形与来自检查点的图形之间不匹配,python,tensorflow,tensor,transformer,Python,Tensorflow,Tensor,Transformer,因此,我基本上是在我的项目中使用此transformer实现:。 它在最初为其编写的德语到英语的翻译中非常有效,我修改了处理python脚本,以便为我要翻译的语言创建词汇表文件。这似乎很有效 但是,当涉及到培训时,我会遇到以下错误: InvalidArgumentError(回溯见上文):从恢复 检查点失败。这很可能是由于 当前图形和来自检查点的图形。请确保 您尚未根据检查点更改预期的图形。 原始错误: Assign需要两个张量的形状匹配。lhs形状=[9796512] rhs形状=[97865

因此,我基本上是在我的项目中使用此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:
除了de和en加载的vocab是不同的(它们实际上是以单个字母作为单词的vocab文件)之外,没有任何修改。然而,正如我提到的,即使回到前面的工作示例中,我也会在不同的lhs和rhs尺寸下得到相同的错误

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


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

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

导出/保存模型时,我遇到了相同的问题。我指的是这个URL中给出的示例:

如果您面临上述问题,您必须确保以下三件事是正确的:

  • 清理模型目录并提取新模型

  • 确保您使用的管道配置文件及其对应的TF模型对正确

  • 使用正确的模型检查点。请参见下面的示例:

  • 我将我训练的前缀值更新到我模型的保存点,它从我这里起作用(参见下面的示例):

    在您的情况下,请使用您的储蓄点数在我的情况下,它是139


    以前我只使用了不起作用的
    /data/model.ckpt

    你能举个例子吗?您是否正在使用一个保留状态的
    Jupyter笔记本
    ?@user49593嗨,我会这样做并编辑它,谢谢。但同时,是的,我相信这一定与它有关,指向一个旧的图形模型或其他东西。但我重新启动了终端,并试图清除某种缓存,但没有成功:(@user49593我刚刚通过github添加了一个指向该文件的特定链接,不认为创建一个较短的代码段是可行的。谢谢
    TRAINED_CKPT_PREFIX=./data/model.ckpt-139