定义 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

TensorFlow 的 Graph 模式转换的更多相关文章

  1. Linux中的模式转换

    模式转换: 编辑-->输入: i: 在当前光标所在字符的前面,转为输入模式: a: 在当前光标所在字符的后面,转为输入模式: o: 在当前光标所在行的下方,新建一行,并转为输入模式: I:在当前 ...

  2. 如何使用tensorboard查看tensorflow  graph****.pb文件的模型结构

    参考网上的:https://github.com/tensorflow/tensorflow/issues/8854 import tensorflow as tf from tensorflow.p ...

  3. imx lcd HV和DE模式转换

    有些时候拿到的lcd手册中关于芯片的时序使用的DE模式的,而imx6内核中使用的参数设置趋势HV模式,应此就需要将DE模式的参数转化为HV模式. 参考链接: https://community.nxp ...

  4. Linux大小端模式转换函数

    转自 http://www.cnblogs.com/kungfupanda/archive/2013/04/24/3040785.html 不同机器内部对变量的字节存储顺序不同,有的采用大端模式(bi ...

  5. htonl(),htons(),ntohl(),ntons()--大小端模式转换函数

    不同机器内部对变量的字节存储顺序不同,有的采用大端模式(big-endian),有的采用小端模式(little-endian). 大端模式是指高字节数据存放在低地址处,低字节数据放在高地址处. 小端模 ...

  6. 命令和python模式转换

    安装完paython成功之后,就必须了解一下:命令模式和python交互模式 1.我们输入  cmd  之后进入的运行环境就是命令模式 2.在命令模式下输入  python,看到>>> ...

  7. adg的数据传输应用三大模式转换

    1.最大可用性模式(Maximum Availability) 1)该模式提供了仅次于"最大保护模式"的数据保护能力: 2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交 ...

  8. HTML连载30-CSS显示模式&模式转换

    一.CSS显示模式​ 1.在HTML中HTML将所有的标签分为两类,分别是容器类和文本级.在CSS中CSS也将所有的标签分为两类,分别是块级元素和行内元素 2.什么是块级元素呢?什么是行内元素​? ( ...

  9. TensorFlow的图切割模块——Graph Partitioner

    背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在经过TensorFlow的Placer策略模块调整之后,下一步就是根据Pla ...

  10. TensorFlow中的Session、Graph、operation、tensor

    TensorFlow中的Session.Graph.operation.tensor

随机推荐

  1. paramiko 文件传输失败 Sftp put 方法 踩坑点

    转载自https://www.cnblogs.com/zhangchen5/p/16064335.html 1. 找不到文件报错 Traceback (most recent call last): ...

  2. 剪裁圆形图片cropie

    <!DOCTYPE html> <html> <head> <script src="https://cdn.bootcss.com/jquery/ ...

  3. python读取、写入txt文本

    1. 读取txt文本 1.1 read()    一次性读全部内容 一次性读取文本中全部的内容,以字符串的形式返回结果 with open("text.txt", "r& ...

  4. Django 之 ORM1

    1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  5. C/C++:printf 函数格式化输出,用法详细记录

    printf ( print format )函数是接触C/C++之后接触的第一个函数,它的功能除了输出hello world外,更重要的是进行格式化输出,比如输出整数的%d,输出小数的%f,%lf ...

  6. 进程间通信-信号-pipe-fifo

    一.实验截图 (一)fifo (二)pipe (三)signal 二.实验代码 fifo //consumer #include <stdio.h> #include <stdlib ...

  7. vim 基础

    光标移动(命令模式的上下左右):k,j,h,l 保存/退出 仅保存::w 退出::q(如果有修改要先保存) 保存并退出::wq(x效果一致) 强制退出::q! 模式 命令模式:esc(当前需要处于插入 ...

  8. [2001年NOIP普及组] 求先序排列

    给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入 第一行输入一个字符串表示二叉树的中序排列,第二行输入一个字符串表示二叉树的后序排列. 输 ...

  9. Java的学前准备(2021.7.29)

    前言:Emm...已经是编程学习的Day2了(好像Day1不知道哪去了,或许是在考验我的记忆力呢 ).但所幸我依然可继续学习,内容如下. 一.J课程 电脑快捷键 Ctrl+ shift / C/ V/ ...

  10. HashMap长度为什么是2的幂

    虽然hash值很多,范围很大,但是内存存不了那么大的数组,所以取hash的散列值的时候,需要用hash值,除以数组长度取余数.又由于取余数(%)的性能不如与运算(&),所以想用与运算来代替取余 ...