首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

tf.keras h5 to Tensorflow pb -结果pb缺少输出节点,即使输入明显有它?

tf.keras是TensorFlow的高级API,用于构建和训练深度学习模型。h5是Keras模型保存的文件格式,而Tensorflow pb是TensorFlow模型保存的文件格式。在将h5模型转换为TensorFlow pb模型时,可能会出现结果pb缺少输出节点的情况,即使输入节点是明确存在的。

这个问题通常是由于转换过程中的一些配置或参数设置不正确导致的。为了解决这个问题,可以尝试以下步骤:

  1. 确保使用的是兼容的TensorFlow版本。不同版本的TensorFlow可能对模型转换有不同的要求和支持。
  2. 检查转换代码中的参数设置。确保指定了正确的输入和输出节点名称。可以使用model.summary()函数查看模型的结构和节点名称。
  3. 确保模型的输入和输出节点在转换过程中被正确识别和保存。可以尝试使用TensorFlow的tf.compat.v1.graph_util.import_graph_def函数导入模型的图定义,并检查是否包含正确的输入和输出节点。
  4. 如果转换过程中仍然存在问题,可以尝试使用TensorFlow的其他模型转换工具,如tf.saved_model.savetf.keras.models.save_model,以获得更好的转换结果。

总之,当将tf.keras的h5模型转换为TensorFlow pb模型时,确保使用兼容的TensorFlow版本,并仔细检查转换代码中的参数设置和模型的输入输出节点。如果问题仍然存在,可以尝试使用其他的TensorFlow模型转换工具。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例

Note: 本方法首先有些要求需要满足: 可以拿的到模型的网络结构定义源码 网络结构里面的所有操作都是通过tf.keras完成的, 不能出现类似tf.nn 的tensorflow自己的操作符 tf2.0...下保存的模型是.h5格式的,并且仅保存了weights, 即通过model.save_weights保存的模型....在tf1.x的环境下, 将tf2.0保存的weights转为pb模型: 如果在tf2.0下保存的模型符合上述的三个定义, 那么这个.h5文件在1.x环境下其实是可以直接用的, 因为都是通过tf.keras...= '-1' # 这个代码网上说需要加上, 如果模型里dropout , bn层的话, 我测试过加不加结果都一样, 保险起见还是加上吧 tf.keras.backend.set_learning_phase...以上这篇tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

2.5K20

使用Keras训练好的.h5模型来测试一个实例

/model.h5" --output_model="path/to/save/model.pb" 两个参数,一个输入路径,一个输出路径。...输出路径即使你没创建好,代码也会帮你创建。建议使用绝对地址。...此外作者还做了很多选项,比如如果你的keras模型文件分为网络结构和权重两个文件也可以支持,或者你想给转化后的网络节点编号,或者想在TensorFlow下继续训练等等,这份代码都是支持的,只是使用上需要输入不同的参数来设置...另外还告诉你冻结了多少个变量,以及你输出的模型路径,pb文件就是TensorFlow下的模型文件。...={"input_1:0": img}) # 执行得到结果 pred_index = res[0][0] print('Predict:', pred_index) 在代码中可以看到,我们用到了上面得到的输入层和输出层的名称

4.1K30
  • 将keras的h5模型转换为tensorflowpb模型操作

    tensorflowpb模型并使用tensorflow加载pb模型。...: 4}) print(ret) 补充知识:h5模型转化为pb模型,代码及排坑 我是在实际工程中要用到tensorflow训练的pb模型,但是训练的代码是用keras写的,所以生成keras特定的h5...附上h5_to_pb.py(python3) #*-coding:utf-8-* """ 将keras的.h5的模型文件,转换成TensorFlowpb文件 """ # ==============...下边是两个函数介绍: save()保存的模型结果既保持了模型的图结构,又保存了模型的参数。...save_weights()保存的模型结果只保存了模型的参数,但并没有保存模型的图结构 以上这篇将keras的h5模型转换为tensorflowpb模型操作就是小编分享给大家的全部内容了,希望能给大家一个参考

    3.2K30

    Keras模型转TensorFlow格式及使用

    ="path/to/save/model.pb" 两个参数,一个输入路径,一个输出路径。...输出路径即使你没创建好,代码也会帮你创建。建议使用绝对地址。...此外作者还做了很多选项,比如如果你的keras模型文件分为网络结构和权重两个文件也可以支持,或者你想给转化后的网络节点编号,或者想在TensorFlow下继续训练等等,这份代码都是支持的,只是使用上需要输入不同的参数来设置...另外还告诉你冻结了多少个变量,以及你输出的模型路径,pb文件就是TensorFlow下的模型文件。...) 在代码中可以看到,我们用到了上面得到的输入层和输出层的名称,但是在后面加了一个“:0”,也就是索引,因为名称只是指定了一个层,大部分层的输出都是一个tensor,但依然输出多个tensor的层,所以需要制定是第几个输出

    1.2K20

    tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)

    checkpoint:记录近几次训练好的模型结果(名称)。...2、最常见的ckpt转pb文件的方法 2、ckpt转pb文件(freeze_graph.freeze_graph) 此种方法尝试成功,虽然不知道输出节点名,但是只要模型代码还在就可以操作,直接上代码。...# 设置输出数据类型(特别注意,这里必须要跟输出网络参数的数据格式保持一致,不然会导致模型预测 精度或者预测能力的丢失)以及重新定义输出节点的名字(这样在后面保存pb文件以及之后使用pb文件时直接使用重新定义的节点名字即可...) 没有成功,因为不知道输出节点的名字,使用该方法保存后的pb文件只有几十k,无法使用,写在这里主要是为了总结。.../article/185206.htm 到此这篇关于tensorflow模型文件(ckpt)转pb文件(不知道输出节点名)的文章就介绍到这了,更多相关tensorflow ckpt转pb文件内容请搜索ZaLou.Cn

    5.1K30

    教程 | 如何在手机上使用TensorFlow

    校验 为了确保之前创建的新的优化图能够正常运行,同时也为了移除optimize_for_inference文件中多余的输入输出节点——这些节点不会改变网络的输出,我们需要进行校验。...使用图retrained_graph.pb和optimized_graph.pb中的label_file对相同的输出图像进行对比: retrained_graph.pb使用如下指令 python -m...我们可以从中看到压缩情况明显的改善。...点击,然后可以看到一个Grace Hopper图标。一旦你建立和运行它以后,你应该就能得到一个实时的相机视图,你可以指向物体获得实时的物体识别结果。 注意:我很确定我在iOS部分留下一些疏漏。...文件中的"output_name" 模型的输出节点不同的名字:"final_result"。

    2.6K70

    使用TensorFlow的经验分享

    如何实现机器视觉 目前我学的知识是用卷积神经网络实现机器视觉,搭建一个模型,将图片输入到模型内,模型将处理好的结果输出出来。 3....什么是卷积神经网络 理论方面本人目前学习的不好,所以打个比喻,卷积神经网络就好像一个树状图,将数据从最左面的节点输入进去,节点节点一个数字,数据与这个数字进行运算到下一个节点,以此往复直到最右面的节点...正向传播就是将这个图片与节点间的权重计算后生成结果。反向传播就是根据正向传播生成的结果,去修改节点间的数字。...学习模型保存、加载、预测 1.保存h5模型、pb模型:学习model.save 2.加载h5模型、pb模型:学习model.load 3.使用模型进行预测:学习model. predict 六、学习模型部署...问题九:pb文件保存后加载问题 出现原因: 在模型训练结束后,我打算将h5文件转为pb文件,进行模型的部署,转换后我打算加载pb文件测试是否能使用。

    1.4K12

    tensorflow实现将ckpt转pb文件的方法

    本博客实现将自己训练保存的ckpt模型转换为pb文件,该方法适用于任何ckpt模型,当然你需要确定ckpt模型输入/输出节点名称。...print("%d ops in the final graph." % len(output_graph_def.node)) #得到当前图几个操作节点 调用方法很简单,输入ckpt模型路径,输出...pb模型的路径即可: # 输入ckpt模型路径 input_checkpoint=’models/model.ckpt-10000′ # 输出pb模型的路径 out_pb_path=”models...文件已经固化了网络模型结构,因此,即使不知道原训练模型(train)的源码,我们也可以恢复网络图,并进行预测。...由于InceptionV3模型的输入三个节点,因此这里需要定义输入的张量名称,它对应网络结构的输入张量: input_image_tensor = sess.graph.get_tensor_by_name

    2.5K30

    神经网络可视化(一)——Netron

    在复现别人的模型的时候,有时我们要知道一个模型的输入输出名,可是有时作者并没有告诉我们,要我们自己去查,了这个工具可以清晰地看见网络的输入输出名,具体的网络结构。...而Netron最为强大的功能,就在于它所支持的框架十分广泛,下面是一些支持的框架: ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), CoreML (....mlmodel), Caffe2 (predict_net.pb, predict_net.pbtxt), MXNet (.model, -symbol.json) TensorFlow Lite...(model.json, .pb) TensorFlow (.pb, .meta, .pbtxt)....从图中我们可以看出,每一个网络层的名称,输入输出数据的维度等信息,十分的简单方便,不仅如此,我还可以通过滚动鼠标扩大或者是缩小来查看更多的细节。 在网页的左上角,三个按钮,如下: ?

    9.7K42

    浅谈tensorflow模型保存为pb的各种姿势

    这里稍稍解释下pb:是MetaGraph的protocol buffer格式的文件,MetaGraph包括计算图,数据流,以及相关的变量和输入输出 主要使用tf.SavedModelBuilder来完成这个工作...checkpoint是检查点的文件,文件保存了一个目录下所有的模型文件列表 model.ckpt.meta文件保存了Tensorflow计算图的结果,可以理解为神经网络的网络结构,该文件可以被tf.train.import_meta_graph...,还可以自定义输入节点。...5、output_node_names:(必选)输出节点的名字,多个时用逗号分开。用于指定输出节点,将没有在输出线上的其它节点剔除。...image_path,resize_height,resize_width,normalization=True) im=im[np.newaxis,:] # 测试读出来的模型是否正确,注意这里传入的是输出输入节点

    4.5K20

    小白也可以操作的手机TensorFlow教程:Android版和iOS版

    现在,要确保我们刚刚创建的任何图形文件都包括如下可支持操作: 验证 要确保你的新优化图形正在运行,并且optimize_for_inference文件删除了给定输入输出集不需要的所有节点,但并不改变网络的输出...利用label_file比较retrained_graph.pb和optimized_graph.pb相同图像的输出。...点击,你就会看到格Grace Hopper图像。一旦你建立并运行,你应该得到一个实时的相机视图,你可以指向物体获得实时的识别结果。 注意:我很确定我犯了一些错误,或者在iOS部分留下了一些东西。...Android 步骤4:设置Android Studio和测试运行 两种方法可以实现Android Studio和Bazel。我会用更多人熟悉的方法。 如果你还没有安装,那么就到这里安装。...我们的模型的输出节点一个不同的名称:"final_result"。

    1.4K60

    Tensorflow模型文件中解析并显示网络结构图(pb模型篇)

    pb模型文件后,接下来是加载模型,加载pb模型示例代码如下所示。...(g,input_names,output_name) return OPS 其中,倒数第2行调用到的函数get_ops_from_pb()用于获取网络结构图中指定输入节点和指定输出节点之间的计算节点...之所以要指定输入输出,是为了将输入之前的计算节点(如加载数据队列等相关计算节点)和输出之后的计算节点(如计算loss等相关计算节点)去除,免得碍眼。...我们还需要知道mobilenet_v1_1.0_192_frozen.pb模型对应的输入输出Tensor对象的名称,好在MobileNet_v1_1.0_192压缩包中包含文件mobilenet_v1...了这些信息后,调用函数read_graph_from_pb得到静态图的节点列表对象ops,调用函数gen_graph(ops,"save/path/graph.html")后,在目录save/path

    10.8K60

    tensorflow:AToolDeveloperGuideToTFModelFIles

    Graph对象保存着网络的节点,每个节点代表一个Operation(add, matmul, etc),节点之间由输入输出链接起来。...name用来定义节点之间的连接 ,和在运行时为整个图形设置输入输出。 op 这个属性指明要执行哪个operation,例如"Add", "MatMul", 或者 "Conv2D"。...:0"],说明了,当前node的第一个输入是名字为"some_node_name"的Node的第一个输出,当前node的第二个输入是名字为"another_node_name"的Node的第一个输出。...然后,去掉GraphDef中与 前向过程无关的节点,然后将处理后的GraphDef保存到输出文件中。 部署的时候,用这个玩意感觉爽的很。...翻译完毕,总结 本文中提到了以下几个概念: GraphDef GraphDef中存储的节点列表是模型体系结构的完整定义 NodeDef 用于代表一个op及其 输入输出 name: name属性表示op

    1.4K50

    Tensorflow模型文件中解析并显示网络结构图(CKPT模型篇)

    2 自动将CKPT转pb,并提取网络图中节点 如果将CKPT自动转pb模型,那么就可以复用上一篇文章《从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)》的代码。示例代码如下所示。...我们还需要知道mobilenet_v1_1.0_192.ckpt模型对应的输入输出Tensor对象的名称,官方提供的压缩包文件中并没有告知。一种方法是运行官方代码,把输入Tensor的名称打印出来。...因此,可以先随意填写输入名称和输出名称,待生成ori_network.txt文件后,从文件中可以直观看到原始网络结构。ori_network.txt文件部分内容如下所示。...[ori_network.txt文件部分内容] 通过该文件可知,输入Tensor的名称为:batch:0,输出Tensor名称为:MobilenetV1/Predictions/Reshape_1:0。...了这些信息后,调用函数read_graph_from_ckpt得到静态图的节点列表对象ops,调用函数gen_graph(ops,"save/path/graph.html")后,在目录save/path

    6.6K30

    如何将自己开发的模型转换为TensorFlow Lite可用模型

    通过在支持的设备上利用硬件加速,TensorFlow Lite可以提供更好的性能。它也具有较少的依赖,从而比其前身更小的尺寸。...我们将在本节中引用该代码,大致浏览一下,熟悉。 我们应该对此训练脚本进行一些修改,以便稍后进行转换。 第一个问题是“什么是输入输出层?”...(另外一个好处是,如果您共享模型而没有共享训练脚本,开发人员可以研究模型并快速识别图形的输入输出)。 我开始猜想Logit层是输出层,但那不是我们想要获得推断结果的层。...现在嵌入在推断方法中。作一个简单的修正,将其移出,这样当我们训练此模型时,图形将包含此图层。 显然更好的方法来修改,但这是编辑现有MNIST脚本的简单方法。...为输入输出层命名。不要让TensorFlow为您做。由于我们在训练脚本中做了一些小改动,我们可以轻松填写每个转换工具中的不同选项。

    3K41

    TensorFlow就够了,附实用教程

    这并不是一件容易的任务,因为需要磁力计和加速度计传感器值的融合。不过幸运的是,Android已经了特定的线性加速度传感器以执行这样的计算并返回正确的值。...所以,神经网络输入是[128,2]。 神经网络输出是长度等于标签数量的向量。在我们的例子中是[2]。数据类型是双精度浮点数。...想要运行所描述的命令,需要从源代码编译TensorFlow: 1.删除未使用的节点和常规优化。...在输出方面,我们两个浮点值,它们根据“左”或“右”的手势变化,随不同输入值在0到1的范围内取值。需要注意的是,这些值的总和是1。...因此,举一个例子,如果输入信号与左或右手势不匹配,那么输出将接近[0.5,0.5]。为了进一步简化,最好使用简单的数学方法将这些值转化为绝对值在0到1之间的数。

    3K81

    Tensorflow笔记:模型保存、加载和Fine-tune

    1.3 pb模式 pb模式保存的模型,只有在目标路径pb_dir = "./model_pb/"下孤孤单单的一个文件"test-model.pb",这也是相比于其他几种方式的优势,简单明了。...其中inputs和outputs分别用来获取输入输出向量的信息,在部署服务后来的数据会喂到inputs中,服务吐的结果会以outputs的形式返回;而method_name如果用来部署模型的话需要设置为...这里输出的signature长这样: # signature长什么样 print(signature) # 输出 """ INFO:tensorflow:Restoring parameters from...其实大部分无非就是将模型加载进来之后,使用某一个节点的值,作为我们后续模型的输入呗。...比如我要用前面的模型结果作为特征通过一元罗辑回归去预测z,这样新的网络结构就是这样: import numpy as np import tensorflow as tf # 加载模型部分,直接从pb

    1.8K41
    领券