TensorFlow 的 Graph 模式转换
2024-10-22 14:39:14
定义 TensorFlow 图形并将其保存到磁盘上。
使用 TensorFlow 的 tf.Graph()
和 tf.Session()
函数来定义和运行 TensorFlow 图形,并使用 tf.train.write_graph()
函数将其保存到磁盘上。
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 图形,并设置转换器的选项。
# 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 模型。
# 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)
加载模型执行推理
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
最新文章
- c++ 虚函数和纯虚函数
- eclipse导入项目前面有感叹号
- ERROR: HHH000123: IllegalArgumentException in class: com.tt.hibernate.helloworld.News, setter method of property: date
- 每日学习心得:UEditor样式被过滤无法显示问题
- 20145218 《Java程序设计》课程总结
- CSS其他
- UVaLive 7267 Mysterious Antiques in Sackler Museum (if-else,枚举)
- 黑马程序员-hashtable
- Android 数据库读取数据显示 [5]
- JQuery easyui (2)Droppable(放置)组件
- 关于C++中字符的转换
- cd命令使用详解
- netcore webapi帮助文档设置
- Centos7 系统下搭建.NET Core2.0+Nginx+Supervisor+Mysql环境
- python大法好——Python 面向对象
- 深入理解Adaboost算法
- Spring 4 中重定向RedirectAttributes的使用
- zabbix 3.2.6+centos 7 +nginx 1.12+ mysql 5.6+ Grafana +php 5.6
- MySQL/Oracle视图的创建与使用
- C++之基于排序方法求一组数的中位数