- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近尝试将模型(tf1.x)转换为saved_model,关注官方migrate document .但是在我的用例中,我手中的大部分模型或 tensorflow 模型动物园通常是 pb 文件,根据 official document说
There is no straightforward way to upgrade a raw Graph.pb file to TensorFlow 2.0, but if you have a "Frozen graph" (a tf.Graph where the variables have been turned into constants), then it is possible to convert this to a concrete_function using v1.wrap_function:
最佳答案
在 TF1 模式下:
import tensorflow as tf
from tensorflow.python.saved_model import signature_constants
from tensorflow.python.saved_model import tag_constants
def convert_pb_to_server_model(pb_model_path, export_dir, input_name='input:0', output_name='output:0'):
graph_def = read_pb_model(pb_model_path)
convert_pb_saved_model(graph_def, export_dir, input_name, output_name)
def read_pb_model(pb_model_path):
with tf.gfile.GFile(pb_model_path, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
return graph_def
def convert_pb_saved_model(graph_def, export_dir, input_name='input:0', output_name='output:0'):
builder = tf.saved_model.builder.SavedModelBuilder(export_dir)
sigs = {}
with tf.Session(graph=tf.Graph()) as sess:
tf.import_graph_def(graph_def, name="")
g = tf.get_default_graph()
inp = g.get_tensor_by_name(input_name)
out = g.get_tensor_by_name(output_name)
sigs[signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY] = \
tf.saved_model.signature_def_utils.predict_signature_def(
{"input": inp}, {"output": out})
builder.add_meta_graph_and_variables(sess,
[tag_constants.SERVING],
signature_def_map=sigs)
builder.save()
在 TF2 模式下:
import tensorflow as tf
from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2_as_graph
from tensorflow.lite.python.util import run_graph_optimizations, get_grappler_config
import numpy as np
def frozen_keras_graph(func_model):
frozen_func, graph_def = convert_variables_to_constants_v2_as_graph(func_model)
input_tensors = [
tensor for tensor in frozen_func.inputs
if tensor.dtype != tf.resource
]
output_tensors = frozen_func.outputs
graph_def = run_graph_optimizations(
graph_def,
input_tensors,
output_tensors,
config=get_grappler_config(["constfold", "function"]),
graph=frozen_func.graph)
return graph_def
def convert_keras_model_to_pb():
keras_model = train_model()
func_model = tf.function(keras_model).get_concrete_function(tf.TensorSpec(keras_model.inputs[0].shape, keras_model.inputs[0].dtype))
graph_def = frozen_keras_graph(func_model)
tf.io.write_graph(graph_def, '/tmp/tf_model3', 'frozen_graph.pb')
def convert_saved_model_to_pb():
model_dir = '/tmp/saved_model'
model = tf.saved_model.load(model_dir)
func_model = model.signatures["serving_default"]
graph_def = frozen_keras_graph(func_model)
tf.io.write_graph(graph_def, '/tmp/tf_model3', 'frozen_graph.pb')
或者:
def convert_saved_model_to_pb(output_node_names, input_saved_model_dir, output_graph_dir):
from tensorflow.python.tools import freeze_graph
output_node_names = ','.join(output_node_names)
freeze_graph.freeze_graph(input_graph=None, input_saver=None,
input_binary=None,
input_checkpoint=None,
output_node_names=output_node_names,
restore_op_name=None,
filename_tensor_name=None,
output_graph=output_graph_dir,
clear_devices=None,
initializer_nodes=None,
input_saved_model_dir=input_saved_model_dir)
def save_output_tensor_to_pb():
output_names = ['StatefulPartitionedCall']
save_pb_model_path = '/tmp/pb_model/freeze_graph.pb'
model_dir = '/tmp/saved_model'
convert_saved_model_to_pb(output_names, model_dir, save_pb_model_path)
关于tensorflow - 将卡住模型(.pb)转换为保存模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59657166/
我有一个经过训练的模型 (Faster R-CNN),我使用 export_inference_graph.py 将其导出以用于推理。我试图了解创建的 frozen_inference_graph.p
我正在开发一个使用Google Protocol Buffer (protobuf)和CMake的库。该项目具有以下目录树。 MyProject/ MyProject/include/myprojec
我有一个旧的训练有素的 tf1.x 模型(让它成为 Model1 ),用占位符、tf.contrib 等构建。我可以通过从 tf.Session(在 tf1.x 中)中的 .ckpt 检查点恢复图形来
我想预先执行查询并将结果存储在@query中: BEGIN DECLARE @query VARCHAR(50); SET @table = 'top20-img-link'; SET @query
有了这个玩具数据:: df = pd.DataFrame(pd.np.random.randint(2, 9, size=(8, 3))) df.index = pd.date_range(start
我使用的是 Twisted 16.1.1 和 python 3.4。在 twisted 的 16.1.1 版文档中,there is a tutorial上面写着“from twisted.sprea
最近尝试将模型(tf1.x)转换为saved_model,关注官方migrate document .但是在我的用例中,我手中的大部分模型或 tensorflow 模型动物园通常是 pb 文件,根据
有谁知道tensorflow_inception_graph.pb的原始源代码。 真不想知道示例项目中的操作 tensorflow/example/android - 读我。 Tensorflow A
完整的错误说: cv2.error:OpenCV(4.1.0)C:\ projects \ opencv-python \ opencv \ modules \ dnn \ src \ caffe \
我已将模型保存在图表(.pb 文件)中。但现在这个模型不准确,我想开发它。我有其他数据的图片需要学习,但我不知道是否可能或如何做到这一点?结果必须是新数据pb图的修改。 最佳答案 这是个好问题。实际上
假设我有模型(tf.keras.Model): class ContextExtractor(tf.keras.Model): def __init__(self): supe
我正在尝试加载取自 https://github.com/tensorflow/models/tree/master/official/resnet 的已训练模型,但是当我尝试加载 .pb 时,我在
我计划将 .aab 上传到 Play 商店进行发布,在发布之前,我正在尝试反编译以查看在逆向工程过程中哪些数据可能会暴露给用户。 在 .aab_FILES/base/中,我看到了 assets.pb
libphonenumber 中没有phonenumber.pb.h 和phonemetadata.pb.h (CPP) 库 那么有什么办法可以找出来吗? 谢谢! 最佳答案 这些是由 Google p
我需要在 CSV 甲酸盐文件中搜索超过 PB 的数据。使用 LUCENE 建立索引后,索引文件的大小是原始文件的两倍。是否可以减少索引文件的大小??? HADOOP中如何分发LUCENE索引文
我公司的产品每年将在我们的客户站点产生数 PB 的数据。我想填满一个多 PB 的 NAS 来模拟一个已经运行了很长时间(3 个月、6 个月、一年等)的系统。我们希望在我们的软件在负载下的存储系统上运行
我在 Windows 10 机器上创建了一个 tensorflow 模型并使用以下方法保存它: model.save('myfolder') 文件夹内myfolder我得到: - saved_mode
我使用 Pytorch 创建了一个对象检测模型然后从 .pth 转换而来至 .onnx然后 .pb , 但现在我需要将其转换为 .tflite对于安卓应用程序!怎么做?这是我的第一次。 input_a
在这种情况下,大文件会发生什么? 1)Spark从NameNode获取数据位置。 Spark是否会在同一时间停止,因为根据NameNode的信息,数据大小太长? 2)Spark根据数据节点块大小对数据
我在对象检测 API 中使用 ssd_mobilenets 来训练我自己的模型,并获取 .ckpt 文件。它在我的电脑上运行良好,但现在我想在我的手机上使用该模型。所以,我需要将它转换为 .pb 文件
我是一名优秀的程序员,十分优秀!