-

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  11 随笔 :: 0 文章 :: 0 评论 :: 1003 阅读

定义 TensorFlow 图形并将其保存到磁盘上。

使用 TensorFlow 的 tf.Graph()tf.Session() 函数来定义和运行 TensorFlow 图形,并使用 tf.train.write_graph() 函数将其保存到磁盘上。

1
2
3
4
5
6
7
8
9
10
11
12
13
import tensorflow as tf
 
# Define a TensorFlow graph
graph = tf.Graph()
with graph.as_default():
    x = tf.placeholder(tf.float32, shape=[None, 200])
    W = tf.Variable(tf.zeros([200, 10]))
    b = tf.Variable(tf.zeros([10]))
    y = tf.nn.softmax(tf.matmul(x, W) + b)
 
# Save the graph to disk
with tf.Session(graph=graph) as sess:
    tf.train.write_graph(sess.graph_def, './', 'graph.pb', as_text=False)

 

使用 TensorFlow 的 tf.lite.TFLiteConverter 类加载图形,并设置转换器的选项。

使用 tf.lite.TFLiteConverter.from_frozen_graph() 函数加载保存的 TensorFlow 图形,并设置转换器的选项。

1
2
3
4
5
6
7
8
9
10
# Load the graph and create a converter
converter = tf.lite.TFLiteConverter.from_frozen_graph(
    graph_def_file='./graph.pb',
    output_arrays=['Softmax'],
    output_dtype=tf.float32.as_datatype_enum,
    inference_type=tf.lite.constants.QUANTIZED_UINT8,
    mean=[0.],
    std=[255.],
    optimizations=[tf.lite.Optimize.DEFAULT]
)

 

 

可以调用转换器的 convert() 方法将 TensorFlow 图形转换为 TensorFlow Lite 模型。

1
2
3
4
5
6
# Convert the graph to a TensorFlow Lite model
tflite_model = converter.convert()
 
# Save the TensorFlow Lite model to disk
with open('./model.tflite', 'wb') as f:
    f.write(tflite_model)

 

加载模型执行推理

1
2
3
4
5
6
7
8
9
10
11
import tflite_runtime.interpreter as tflite
 
# Load the TensorFlow Lite model and create an interpreter
interpreter = tflite.Interpreter(model_path='./model.tflite', num_threads=4)
interpreter.allocate_tensors()
 
# Perform inference on a sample input
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
input_data = np.zeros(input_details[0]['shape'], dtype=np.float32)
interpreter

 

posted on   p_xcn  阅读(55)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示