tensorflow如何通过深度学习模型计算?

问题描述 投票:0回答:1

我是tensorflow的新手,并试图弄清楚tensorflow如何执行以下任务:

(对齐的面部图像)>(facenet nn模型,训练有素的重量)>(嵌入计算)

https://www.python36.com/face-detection-matching-using-facenet/

如果我理解正确,下面列出的是上述任务的代码,我的问题是计算是否是通过sess.run()执行的?

如果我错了,请纠正我 - (1)xxx.pb包含模型的所有内容:神经网络的层和权重,(2)声明image_placeholder和嵌入用于输入和神经网络的输出张量,(3)赋值'images'通过feed_dict输入,(4)执行sess.run()从输入'feed_dict'传递神经网络(xxx.pb),计算输出'embeddings'。

让我感到困惑的是,执行时“嵌入”没有其他表达方式:

sess.run(embeddings,feed_dict = feed_dict)

顺便说一下,对于输出张量,如果我用“输出”或任何其他名称替换名称“embeddings”,这是否重要?我不认为有用于声明“嵌入”的代码行,与“input:0”相同。

    facenet.load_model("xxx.pb")

    # prepare placeholders for input and output tensors

    images_placeholder = tf.get_default_graph().get_tensor_by_name("input:0")
    embeddings = tf.get_default_graph().get_tensor_by_name("embeddings:0")

    # execute the tensorflow graph with "images" input

    feed_dict = { images_placeholder: images, ... }
    images_embeddings = sess.run(embeddings,feed_dict=feed_dict)

    <facenet.py>
    ......
    def load_model(model):
        model_exp = os.path.expanduser(model)
        if (os.path.isfile(model_exp)):
            print('Model filename: %s' % model_exp)
            with gfile.FastGFile(model_exp,'rb') as f:
                graph_def = tf.GraphDef()
                graph_def.ParseFromString(f.read())
                tf.import_graph_def(graph_def, name='')
        else        
            ......
tensorflow
1个回答
0
投票

是的,上述执行流程(1)〜(4)是正确的。

可以通过运行以下代码来计算“嵌入”

python face_detect_demo.py --img = images / faces.jpg

© www.soinside.com 2019 - 2024. All rights reserved.