我试图将训练有素的模型保存到文件中,以发送到推理服务器,然后对其进行基准测试。唯一的问题是我的模型(使用keras)仍然具有init层(例如conv1 / weights / RandomUniform),无法在我正在进行基准测试的设备上运行。
那么,如何从图形中删除所有这些图层?
我尝试使用tfgraph.finalize()
,convert_variables_to_constants
和remove_training_nodes
,但似乎没有一个删除这些节点。
它打破的确切层是:
'res_net50/conv1/kernel/Initializer/random_uniform/RandomUniform'
答案 0 :(得分:0)
通过strip_unused_nodes
转换,您可以提供一组输入和输出节点。图转换工具将删除图的所有不馈入输出节点的分支。
话虽如此,我的直觉是删除初始化节点不会对推理时间产生重大影响,因为不会评估操作。但是,如果不修剪它们,确实会消耗一些内存。