tensorflow模型冻结

查看模型输入输出节点名称

saved_model_cli show --dir ./xxx --all
如:
在这里插入图片描述

冻结模型

freeze_graph --input_saved_model_dir --output_node_names --output_graph
在这里插入图片描述

问题

模型冻结时出现的BUG:
tensorflow.python.framework.errors_impl.InternalError: Dst tensor is not initialized.
[[{ {node save/RestoreV2/_379}} = _Recvclient_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name=“edge_383_save/RestoreV2”, tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]]
[[{ {node save/RestoreV2/_226}} = _Send

### 如何加载和读取 TensorFlow 模型 #### 加载 `.pb` 文件格式的模型 对于 `pb` 格式的文件,在不同版本的 TensorFlow 中有不同的处理方式。 在 TensorFlow 1.x 版本中,加载 `pb` 文件通常涉及创建一个新的计算图,并从中导入元图定义。而在 TensorFlow 2.x 中则更加简便,可以直接通过 `tf.saved_model.load` 函数来完成这一操作[^1]。 ```python import tensorflow as tf # 对于 TF 2.x 的情况 loaded_pb_model = tf.saved_model.load('path_to_saved_model_directory') infer = loaded_pb_model.signatures['serving_default'] print(infer.structured_outputs) ``` 上述代码展示了如何使用 TensorFlow 2.x 来加载保存为 `SavedModel` 格式的目录中的模型,并打印其输出结构。 #### 加载 `.h5` 文件格式的模型 `.h5` 是 Keras 默认使用的文件扩展名之一用于存储完整的模型架构及其权重。可以通过简单的命令将其恢复到 Python 运行环境中: ```python from tensorflow import keras # 加载 H5 模型非常简单 loaded_h5_model = keras.models.load_model('my_model.h5') ``` 这段代码片段说明了怎样利用 Keras API 轻松地从磁盘上读入一个之前已经训练好的 `.h5` 模型实例[^2]。 #### 使用 OpenCV 打开 PB 模型 除了直接基于 TensorFlow 或者 Keras 外,还可以借助其他库比如 OpenCV 来加载这些预训练过的深度学习模型。特别是当目标是在 C++ 应用程序里集成 AI 功能的时候,这种方法显得尤为有用[^4]。 ```cpp #include <opencv2/dnn.hpp> using namespace cv; dnn::Net net = dnn::readNetFromTensorflow("frozen_graph.pb"); Mat inputBlob = blobFromImage(image, scalefactor, size, mean); net.setInput(inputBlob); Mat detection = net.forward(); ``` 此部分提供了关于如何采用 OpenCV DNN 模块解析由 TensorFlow 导出的冻结图 (`frozen_graph.pb`) 并执行推理过程的一个基本例子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值