我是 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:有没有办法将冻结图转换为检查点模型? 但尚未得到答复。
| 归档时间: |
|
| 查看次数: |
2471 次 |
| 最近记录: |