ufris
tensorflow import_meta_graph를 이용한 image test 본문
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을 기억하셔야 사용하실 수 있습니다
'딥러닝' 카테고리의 다른 글
Softmax cross entropy 구현(tensorflow) (0) | 2020.11.19 |
---|---|
CARPE DIEM, SEIZE THE SAMPLES UNCERTAIN “ATTHE MOMENT” FOR ADAPTIVE BATCH SELECTION (0) | 2020.10.22 |
성능 최적화 tensorRT / tflite (0) | 2020.06.05 |
Tensorflow : failed to create session (0) | 2019.04.30 |
Focal loss (0) | 2019.03.19 |