【问题标题】:Integrating Tensorflow object detection with keras cnn classifier将 TensorFlow 对象检测与 keras cnn 分类器集成
【发布时间】:2018-12-10 12:36:58
【问题描述】:

我的问题是使用 mobilenet SSD 检测对象,然后使用在 Keras 中训练的 CNN 分类器从边界框中读取数据。每次获得边界框后,都必须使用 CNN 分类器对其进行评估。 在引用 git 和堆栈中的问题数量时,我开始编写自己的编码。但是在使用 tf.reset_default_graph() 重置 tf 图并从 keras 加载 .h5 后,它会引发错误,因为

"ValueError: 
 Tensor("loss/dense_6_loss/Const:0", shape=(), 
 dtype=float32) must be from the same graph as 
 Tensor("truediv_19:0", shape=(?, 36), 
 dtype=float32)."

我正在使用 Keras 和 Tensorflow 作为后端进行实例检测和图像检索任务。

show:ValueError: 张量 a 必须与张量 b 来自同一个图。

代码如下:

Merge.py
from keras import backend as K

g1=tf.Graph()
g2=Graph()
sess1=tf.Session(graph=g1)
sess2=Session(graph=g2)

def intiMaskrcnn():
     with g1.as_default():
          with sess1.as_default():
               Model1=........
tf.rest_defaut_graph()
def instanceDetect():
     K.set_session(sess1)
     with g1.as_default():
           Model1.predit()
            ............
k.clear_session()

def intiMobilenet():
    with g2.as_default():
         with sess2.as_default():
              Model2=........

def Retrieval():
    K.set_session(sess2)
     with g2.as_default():
         Model2.predit()
           ............

我需要知道是否可以同时将 tf 和 Keras 集成到一个管道中..如果可能的话如何?提前谢谢

【问题讨论】:

    标签: python tensorflow machine-learning keras deep-learning


    【解决方案1】:

    这有助于我在 tensorflow SSD 对象检测中运行 keras 模型。

    * Use Seperate Graph.
    * Use Seperate Session.
    * reset the default Graph using tf.reset_default_graph()
    * for keras Use K.clear
    
    from keras.models import load_model
    with tf.Session(graph=K.get_session().graph) as session:
        session.run(tf.global_variables_initializer())
        model = load_model('model.h5')
        predictions = model.predict(input)
    

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 2017-06-12
      • 2019-07-28
      • 1970-01-01
      • 2020-03-06
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多