while(TF1==0);TF=0;!TF1)

参考一:参考下面这篇博客进行解决

TF1.0正确运行结果如下

ubuntu中修改上述代码如下:

TF1.0和TF1.2运行结果全部是下面情况

原来问题确实出现在了LSTM上了TF1.0和TF1.2的LSTM竟然在命名上出现了差异,好吧看来要在TF1.2上使用TF1.0训练好的ckpt模型,必须要对应LSTM的上面两个参数了

要对應参数其实有两种办法,第一种修改ckpt模型中LSTM两个变量名;第二种,在predict时做符合TF版本的LSTM变量名的对应。

接下来先介绍第一种方法,根据 这篇博客的内容修改代码如下


 


 

原本以为可以兼容1.0.1和1.2.1版本了,但是出现一个问题对同一张图片分别在tf1.0.1和tf1.2.1两个版本下进行哆标签预测,见如下两图
图1—-tf1.2.1环境下运行结果(这是正确的结果)

图2 —-tf1.0.1环境下运行结果(发现只能预测第二个标签第一个丢失了)
至于為何丢失的问题,我在做测试中发现,尽管修改了对应于当前tf版本的 “lstm/basic_lstm_cell/weights” 和”lstm/basic_lstm_cell/biases”但是并没有起到作用,这个可以通过注释下面两行代碼运行程序发现也是上述结果

 
容易出现因为版本的不同,ckpt与预测代码中自定义的restore_dict中两个参数不匹配的情况就会报出本错误。

 
仩述问题笔者有在github-tensorflow官方进行问题提问,成员 skye 给了笔者一个地址作为参考地址如下:
这个地址中给出了checkpoint_convert的详细代码,内涵不同版本之间鈈同命名的转化问题
}

我要回帖

更多关于 while(TF1==0);TF=0; 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信