Tensorflow:简单音频识别网络教程错误:Assign要求两个张量的形状匹配。左侧形状=[12]右侧形状=[3]

Tensorflow:简单音频识别网络教程错误:Assign要求两个张量的形状匹配。左侧形状=[12]右侧形状=[3],tensorflow,speech-recognition,Tensorflow,Speech Recognition,当我第一次使用开发人员自己提供的数据运行上述程序时,培训和后续命令将在培训完成后获得模型(python tensorflow/examples/speech_commands/freeze.py)\ --启动检查点=/tmp/speech\u命令\u train/conv.ckpt-18000\ --output\u file=/tmp/my\u freezed\u graph.pb )很好。我能够获得模型并对其进行测试 但是,当我将自己的数据文件夹(其中包含一个单词的多个音频文件)添加到现有的

当我第一次使用开发人员自己提供的数据运行上述程序时,培训和后续命令将在培训完成后获得模型(python tensorflow/examples/speech_commands/freeze.py)\ --启动检查点=/tmp/speech\u命令\u train/conv.ckpt-18000\ --output\u file=/tmp/my\u freezed\u graph.pb )很好。我能够获得模型并对其进行测试

但是,当我将自己的数据文件夹(其中包含一个单词的多个音频文件)添加到现有的文件夹中,并在--want word标志中选择该单词并运行必要的命令时,培训进行得很顺利,但在获取模型(上面再次提到的命令)时,我得到以下错误:

InvalidArgumentError(回溯见上文):Assign要求两个张量的形状匹配。左侧形状=[12]右侧形状=[3]

我如何克服这个问题?这是tensorflow中的一个bug吗?我检查了一下,发现以前培训的检查点文件可能会干扰新的培训。但是,即使我创建一个新文件夹来存储最新的检查点文件,问题仍然存在


谢谢。

这是因为您只有一个音频文件夹,即只有一个培训集,并且在freeze.py中,您没有将其更改为标签,因此默认情况下,它将使用现有的(10个标签+未知和静音)13


您只需转到freeze.py并将其更改为您的数据集,而不是默认值。

您解决了这个问题吗?@Nati Krisi,是的,问题解决了。如果你打开freeze.py,他们会提到that@Nati克里斯,是的,问题解决了。如果打开freeze.py,它们会提到训练命令中使用的标志和此模型冻结应该相同。因此,,我们必须在上面的命令中添加--want\u words=*提及培训命令*标志中提到的任何内容。因此,该命令变为:python tensorflow/examples/speech\u commands/freeze.py \--start\u checkpoint=/tmp/speech\u commands\u train/conv.ckpt-18000 \--在培训期间选择的want\u words=*output_file=/tmp/my_freezed_graph.pb问题是,一切都在1000ms下工作,但当我更改它时(同时保留您提到的参数),我会得到一个如上所述的异常。ok。my bad在培训部分出错