2017-05-16 1 views
0

CASUS (얼굴 인식 데이터 세트)를 학습 데이터 세트로 사용하여 TensorFlow 슬림 모델 vgg를 사용한 분류 모델을 교육했습니다. LFW 데이터 세트를 사용하여 모델을 테스트하고 싶습니다. 얼굴 일치 작업입니다. 그래서 softmax 레이어가 아닌 fc7/fc8과 같은 넷 기능을 추출하고 기능 간의 거리를 비교하여 동일한 사람인지 여부를 결정해야합니다. 슬림 모델의 기능을 추출하려면 어떻게해야합니까?앞으로 달리는 경우 tensorflow 슬림 모델 VGG에서 피쳐를 추출하는 방법은 무엇입니까?

여기 훈련 코드의 일부입니다.

import tensorflow as tf 
from tensorflow.contrib.slim.python.slim.nets import vgg 
slim = tf.contrib.slim 
FLAGS = tf.app.flags.FLAGS 

def tower_loss(scope): 
    images, labels = read_and_decode() 
    with slim.arg_scope(vgg.vgg_arg_scope()): 
     logits, end_points = vgg.vgg_16(images, num_classes=FLAGS.num_classes) 
    _ = cal_loss(logits, labels) 
    losses = tf.get_collection('losses', scope) 
    total_loss = tf.add_n(losses, name='total_loss') 
    return total_loss 

답변

0

당신은 어떤 텐서 추출 할 특정 기능의 이름 tf.get_default_graph().get_tensor_by_name("VGG16/fc16:0") 또는를 사용하여 시도 할 수 있습니다.

, 당신은 그들이 당신이 검색중인 항목이 텐서 표시로

for operation in graph.get_operations(): 
    print operation.values() 

가 이름의 끝에 :0을 넣어 기억 시도 할 수 있습니다 당신이 추출 된 텐서의 이름을 확인합니다.

0

슬림 모델 end_points을 가져와 해당 기능을 추출하십시오.

관련 문제