相关疑难解决方法(0)

如何在Keras模型中获得tensorflow输出节点的名称?

我正在尝试从我的Keras(tensorflow后端)模型创建一个pb文件,以便我可以在iOS上构建它.我正在使用freeze.py,我需要传递输出节点.如何获取Keras模型的输出节点名称?

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py

python keras tensorflow

28
推荐指数
2
解决办法
3万
查看次数

获取 input_array 和 output_array 项,将模型转换为 tflite 格式

附注。请不要指出我将 Keras 模型直接转换为 tflite,因为我的 .h5 文件将无法直接转换为 .tflite。我以某种方式设法将我的 .h5 文件转换为 .pb

我已经按照这个Jupyter notebook 使用 Keras 进行了人脸识别。然后我将我的模型保存到一个model.h5文件中,然后model.pb使用这个.

现在我想在 Android 中使用我的 tensorflow 文件。为此,我需要使用 Tensorflow Lite,这需要我将模型转换为某种.tflite格式。

为此,我试图在此处遵循官方指南。正如你在那里看到的,它需要input_arrayoutput_array数组。如何从我的model.pb文件中获取这些内容的详细信息?

python tensorflow tensorflow-lite

9
推荐指数
1
解决办法
6453
查看次数

无法使用BatchNorm层导入冻结图

我已经训练基于这个模型Keras 回购

训练后,我将模型另存为检查点文件,如下所示:

 sess=tf.keras.backend.get_session() 
 saver = tf.train.Saver()
 saver.save(sess, current_run_path + '/checkpoint_files/model_{}.ckpt'.format(date))
Run Code Online (Sandbox Code Playgroud)

然后,我从检查点文件中还原图形,并使用标准tf Frozen_graph脚本将其冻结。当我想恢复冻结的图时,出现以下错误:

Input 0 of node Conv_BN_1/cond/ReadVariableOp/Switch was passed float from Conv_BN_1/gamma:0 incompatible with expected resource

如何解决此问题?

编辑:我的问题与问题有关。不幸的是,我无法使用替代方法。

编辑2:我在github上打开了一个问题,并创建了要点来重现该错误。 https://github.com/keras-team/keras/issues/11032

keras tensorflow

8
推荐指数
1
解决办法
2078
查看次数

在 OpenCV 上使用 Tensorflow 2.X 模型

我必须使用带有 OpenCV 框架的 Tensorflow 2.X 模型(带有 C++ 的 v.4.X)。

为此,我需要一个.pb文件或一个.pb和一个.pbtxt文件,而不是像我拥有的​​那样的 Tensorflow 保存模型。

所以我的问题是:有没有办法将保存的模型转换为 OpenCV 可以读取的格式?比如,也许,一个caffe模型?

我尝试使用MMdnn但它给了我一个奇怪的错误:

Traceback (most recent call last):
  File "/usr/local/bin/mmconvert", line 8, in <module>
    sys.exit(_main())
  File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/_script/convert.py", line 102, in _main
    ret = convertToIR._convert(ir_args)
  File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/_script/convertToIR.py", line 62, in _convert
    from mmdnn.conversion.tensorflow.tensorflow_parser import TensorflowParser
  File "/usr/local/lib/python3.5/dist-packages/mmdnn/conversion/tensorflow/tensorflow_parser.py", line 15, in <module>
    from tensorflow.tools.graph_transforms import TransformGraph
ImportError: No module named 'tensorflow.tools.graph_transforms'
Run Code Online (Sandbox Code Playgroud)

我想这是因为它是用 Tensorflow 1.X 开发和测试的。


编辑:我也有相对的 Keras 模型(现在它与 Tensorflow …

c++ opencv tensorflow

7
推荐指数
1
解决办法
2591
查看次数

tensorflow.keras 在 python 中保存模型并在 Java 中加载

我有一个经过微调的 vgg 模型,我使用tensorflow.keras功能 API 创建了该模型,并使用tf.contrib.saved_model.save_keras_model保存了模型。因此模型以以下结构保存:assets文件夹,其中包含saved_model.json文件,saved_model.pb文件,以及variables文件夹,其中包含checkpointvariables.data-00000-of-00001variables.index

我可以轻松地在 python 中加载模型并使用tf.contrib.saved_model.load_keras_model(saved_model_path)获得预测,但我不知道如何在 JAVA 中加载模型。我用谷歌搜索了很多,发现了这个 How to export Keras .h5 to tensorflow .pb? 导出为 pb 文件,然后按照此链接Loading in Java加载它。我无法冻结图表,而且我尝试使用 simple_save 但 tensorflow.keras 不支持 simple_save (AttributeError: module 'tensorflow.contrib.saved_model' has no attribute 'simple_save')。那么有人可以帮助我弄清楚在 JAVA 中加载我的模型(tensorflow.keras 功能 API 模型)需要哪些步骤。

我拥有的saved_model.pb 文件是否足够好,可以在JAVA 端加载?我需要创建输入/输出占位符吗?那我该如何导出呢?
我感谢您的帮助。

python java keras tensorflow

5
推荐指数
1
解决办法
4205
查看次数

如何将 tensorflow.js 模型和权重转换为标准 tensorflow?

我想将模型及其各自训练的权重从 tensorflow.js 转换为标准 tensorflow,但无法弄清楚如何做到这一点,tensorflow.js 的文档对此没有任何说明

我有一个 manifest.json 和许多其他文件,对应于每一层的权重和偏差,我想得到一个 .bytes 文件,用于标准版本的 tensorflow

我检查了其他问题的答案,这些问题可能与如何从 tensorflow.js 下载模型和权重 (我问那个问题)有轻微的相关性 ,这只是部分回答,没有给出关于这个问题的任何提示的答案

tensorflow tensorflow.js

4
推荐指数
1
解决办法
1180
查看次数

Keras h5将于2019年在Tensorflow上服?

我试图按照本教程讲解如何转换Keras H5模型zu ProtoBuff并使用Tensorflow服务为其提供服务:https ://towardsdatascience.com/deploying-keras-models-using-tensorflow-serving-and-flask-508ba00f1037

该教程在网络上的许多其他资源中都使用了“ tf.saved_model.simple_save”,该名称现已弃用并删除(2019年3月)。如以下所示,使用freeze_session将h5转换为pb: 如何将Keras .h5导出到tensorflow .pb?

似乎错过了一个“ serv”标签,因为tensorflow_model_server输出:

Loading servable: {name: ImageClassifier version: 1} failed: Not found: Could not find meta graph def matching supplied tags: { serve }. To inspect available tag-sets in the SavedModel, please use the SavedModel CLI: saved_model_cli

使用save_model_cli进行了检查,没有标签。

现在如何使h5模型可在tensorflow_server中使用?

keras tensorflow tensorflow-serving

4
推荐指数
1
解决办法
2008
查看次数

如何从给定模型获取 Graph(或 GraphDef)?

我有一个使用 Tensorflow 2 和 Keras 定义的大模型。该模型在 Python 中运行良好。现在,我想将它导入到 C++ 项目中。

在我的 C++ 项目中,我使用TF_GraphImportGraphDef函数。*.pb如果我使用以下代码准备文件,效果很好:

    with open('load_model.pb', 'wb') as f:
        f.write(tf.compat.v1.get_default_graph().as_graph_def().SerializeToString())
Run Code Online (Sandbox Code Playgroud)

我已经在使用 Tensorflow 1 (使用 tf.compat.v1.* 函数)编写的简单网络上尝试了此代码。效果很好。

现在我想将我的大模型(开头提到的,使用 Tensorflow 2 编写的)导出到 C++ 项目中。为此,我需要从模型中获取一个Graphor对象。GraphDef问题是:如何做到这一点?我没有找到任何属性或函数来获取它。

我还尝试使用来tf.saved_model.save(model, 'model')保存整个模型。它生成一个包含不同文件的目录,包括saved_model.pbfile. 不幸的是,当我尝试使用TF_GraphImportGraphDef函数在 C++ 中加载此文件时,程序抛出异常。

c++ python model keras tensorflow

4
推荐指数
1
解决办法
5434
查看次数

Tensorflow:将模型保存到model.pb中,以便以后可视化

我找到以下代码片段来可视化已保存到*.pb文件中的模型:

model_filename ='saved_model.pb'
with tf.Session() as sess:
    with gfile.FastGFile(path_to_model_pb, 'rb') as f:
        data = compat.as_bytes(f.read())
        sm = saved_model_pb2.SavedModel()
        sm.ParseFromString(data)
        g_in = tf.import_graph_def(sm.meta_graphs[0].graph_def)
        LOGDIR='.'
        train_writer = tf.summary.FileWriter(LOGDIR)
        train_writer.add_graph(sess.graph)
Run Code Online (Sandbox Code Playgroud)

现在,我正在努力创建saved_model.pb。如果我的session.run看起来像这样:

  _, cr_loss = sess.run([train_op,cross_entropy_loss],
                         feed_dict={input_image: images,
                                    correct_label: gt_images,
                                    keep_prob:  KEEP_PROB,
                                    learning_rate: LEARNING_RATE}
                        )
Run Code Online (Sandbox Code Playgroud)

我如何保存图形所含train_opsaved_model.pb

python deep-learning tensorflow

2
推荐指数
1
解决办法
1万
查看次数