Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

ufris

tensorflow import_meta_graph를 이용한 image test 본문

딥러닝

tensorflow import_meta_graph를 이용한 image test

ufris 2020. 8. 20. 18:09

tensorflow에서 ckpt를 저장하면 weigh(.ckpt)과 model graph(.meta)가 저장되는데

 

test 시에 사용했던 model을 다시 코드로 작성하지 않고 import_meta_graph를 통해 model을 생성할 수 있습니다

 

그렇게 되면 placeholder 부분을 어떻게 설정할지 감이 잡히지 않았는데

 

get_tensor_by_name을 통해 placeholder 부분을 불러올 수 있습니다

 

 

tf.reset_default_graph()
sess = tf.Session()
sess.run(tf.global_variables_initializer())

 

# import_meta_graph를 통해 model load
saver = tf.train.import_meta_graph(os.path.join('model', 'model.meta'))   
saver.restore(sess, tf.train.latest_checkpoint('model'))

graph = tf.get_default_graph()

# get_tensor_by_name에 학습 시 사용했던 placeholder layer name을 넣어주면 설정이 가능함
X = graph.get_tensor_by_name('X:0')
Y = graph.get_tensor_by_name('Y:0')
Xs = graph.get_tensor_by_name('generator/xs:0')

for i in range(len(makeups)):
    makeup = cv2.resize(imread(makeups[i]), (img_size, img_size))
    Y_img = np.expand_dims(preprocess(makeup), 0)

    # get_tensor_by_name에서 설정한 placeholder에 feed_dict을 통해 이미지를 test
    Xs_ = sess.run(Xs, feed_dict={X: X_img, Y: Y_img})

 

get_tensor_by_name을 통해 해당 layer를 가져오려면 학습 시 layer name을 기억하셔야 사용하실 수 있습니다