我是NN API和TensorFlow的初学者.
我试图以protobuff格式(.pb)保存我训练过的模型,有很多博客解释如何将模型保存为protobuff.我不明白的一件事是在将图形保存为protobuff之前冻结图形的重要性是什么?我读到冻结隐蔽变量为常数,这是否意味着该模型不再可训练?
模特还会冻结什么?
冻结后该模型失去了什么?
任何人都可以解释或给出关于冻结细节的一些指示吗?
最佳答案 这只是您问题的部分答案.
冻结图表很容易优化.例如,当进行推理(向前传播)时,您可以将一些层融合在一起.这不能用变量和操作之间分离的图形(非冻结图形).为什么要将层融合在一起?原因有很多.特定于硬件:在一组张量中一起计算多个操作可能更容易,特定于cpu或gpu的结构. TensorRT是一个图优化器,例如从冻结图开始工作(这里有关于tensorRT:https://devblogs.nvidia.com/tensorrt-integration-speeds-tensorflow-inference/完成的图优化的更多信息).该软件可以进行图形优化以及硬件特定的优化.
据我所知,你可以解冻图表.我只是优化它们,所以我没有使用这个功能.但这里有代码:https://gist.github.com/tokestermw/795cc1fd6d0c9069b20204cbd133e36b
这是另一个可能有用的问题:
TensorFlow: Is there a way to convert a frozen graph into a checkpoint model?
但它尚未得到解答.