tensorflow模型压缩——ckpt转pb

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/SPESEG/article/details/100532154

ckpt模型转pb是项目落地的关键,如果你仅仅是想在服务器部署,也可忽略此步。人生的艰难有很多坑,不从坑里爬出来体会不到生命中的乐趣所在。简单的说,原来ckpt模型有4个文件(分别为checkpoint,index,data,meta),转成pb后就一个文件,至少方便了很多。然而其大小并无明显变化,甚至没有变化,想要有明显变化,还需要转tf lite,但首先第一步是转成pb格式。

pb格式的转化其实也有很多参考,然后不同模型的inference写起来可能不是那么简单,在其中都是要定义一个入口和一个出口,也就是必需input和output,这样图结构才可以方便的拿起来用。本人先前所见的都是分类模型的pb转化,未见有回归模型的pb转化,有人说这不都一样吗?你别瞎逼逼,你先甩给我个回归的链接,我跪谢你。

其中的难点在于回归的inference中output不好定义,而分类的只是定义一个softmax就OK了。目前只有发挥我的聪明才智,或者广泛搜索了。

人生不易,请你珍惜眼前的我。随时更新,欢迎关注。

补充一:寡人得到了模型的节点名字,但是也不知道该怎么定义输出,因为模型中的输出结果并不是想要的直接输出,还要经过运算,而这种运算不是tf定义的,是不是先定义下tf的加减乘除为好?

tensor_name:  beta1_power
tensor_name:  beta2_power
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/candidate/bias/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/candidate/bias/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/candidate/kernel/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/candidate/kernel/Adam_1
tensor_name:  net/y_hat_src2/kernel/Adam
tensor_name:  net/y_hat_src2/bias/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/gates/kernel/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/gates/bias/Adam
tensor_name:  global_step
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/candidate/bias
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/candidate/kernel
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/gates/kernel/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/gates/kernel/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/gates/bias
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/gates/bias/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/gates/kernel
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/gates/bias/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/gates/kernel
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/gates/kernel/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_0/gru_cell/gates/kernel/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/candidate/kernel
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/candidate/bias
tensor_name:  net/y_hat_src1/kernel/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/candidate/kernel/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/candidate/bias/Adam
tensor_name:  net/y_hat_src1/kernel/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/candidate/kernel/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/candidate/bias/Adam_1
tensor_name:  net/y_hat_src2/kernel
tensor_name:  net/y_hat_src2/bias
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/gates/kernel
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/gates/bias
tensor_name:  net/y_hat_src2/kernel/Adam_1
tensor_name:  net/y_hat_src2/bias/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/gates/kernel/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_1/gru_cell/gates/bias/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/candidate/bias
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/candidate/bias/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/candidate/bias/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/candidate/kernel
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/candidate/kernel/Adam
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/candidate/kernel/Adam_1
tensor_name:  net/y_hat_src1/bias/Adam_1
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/gates/bias
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/gates/bias/Adam
tensor_name:  net/y_hat_src1/bias
tensor_name:  net/rnn/multi_rnn_cell/cell_2/gru_cell/gates/bias/Adam_1
tensor_name:  net/y_hat_src1/bias/Adam
tensor_name:  net/y_hat_src1/kernel

节点名字应该重新用tf定义。

补充二:刚发现,input的定义也不是简单的直接输入数据就对了,而应该是fft后的结果,整个网络的处理是针对fft来做的,因此输出的也是fft,中间要保留相位信息,用于恢复之用,掩蔽在网络结构外做。现在考虑的是到底是直接用tf来求fft还是直接传入fft后的结果?不妨都试试看了。这个真是不简单啊。

补充三:苦苦寻觅,就是找不到出口在哪里?如何定义真是麻烦。网络中似乎在训练时就缺少了某些节点,而且也没默认节点,因为不全是tf定义的运算,应该重新从网络设置上找结果,或许应该重新写一下网络。不妨试试看。

另外有相关问题可以加入QQ群讨论,不设微信群

QQ群:868373192 

语音深度学习群

猜你喜欢

转载自blog.csdn.net/SPESEG/article/details/100532154