Как восстановить модель и запустить ее на одном образе? - PullRequest
0 голосов
/ 03 июля 2019

Я изменил код свертки по следующей ссылке. https://github.com/navoshta/kaggle-facial-keypoints-detection Я обучил модель, на которой она работала без ошибок, у меня возник вопрос: я использовал следующий код для восстановления модели, однако вывод, когда я пытаюсь увидеть, что слои графиков (просто хотел посмотреть, правильно ли она загружена) он говорит 0, так что я в замешательстве, поскольку он загружает модель из метафайла и переменные из model.ckpt. Кроме того, я был бы рад, если кто-нибудь может помочь в том, как я могу использовать эту модель на одном изображении, вне изображения - массив размером 152 (обнаружение 76 ориентиров), обученный на наборе данных MUCT

get_ipython().run_line_magic('matplotlib', 'inline')

import numpy as np
import matplotlib
matplotlib.use('TkAgg', warn = False)
from matplotlib import pyplot
import os
import time
from PIL import Image

from pandas import DataFrame
from pandas.io.parsers import read_csv
from sklearn.utils import shuffle
from sklearn.model_selection import train_test_split
from nolearn.lasagne import BatchIterator
import tensorflow as tf

print("done loading libraries")


# In[23]:


FROOT = os.getcwd() # Path to your project folder
Fimage = FROOT + '\image.jpg'
print(Fimage)
#FModel=FROOT+'\MUCTmodel_3con_2fc_b36_e100_aug_lrdec_mominc_dr\model.ckpt.meta'
#Fses=FROOT+'\MUCTmodel_3con_2fc_b36_e100_aug_lrdec_mominc_dr\model.ckpt'
Irows=640
Icols=480


# In[24]:


#loads image


# In[25]:


#loads image
img=Image.open(Fimage).convert('LA')
img.show()


# In[26]:


print(img)


# In[27]:


#convert to numpy array
img_arr=np.array(img)[:,:,0]
img_arrnormal=img_arr/255
X = img_arrnormal.astype(np.float32)
XR=X.reshape(-1,Irows,Icols,1)
XR.shape


# In[28]:


#display X
print(XR)


# In[29]:


y_pred=[]


# In[37]:


#loading model

#with tf.Session() as sess:
#    saver = tf.train.import_meta_graph('/models/model.ckpt.meta')
#    saver.restore(sess,Fses)
#    y_pred=sess.run(pred,feed_dict={
#        x:X
#    })

#sess = tf.Session('', tf.Graph())
#with sess.graph.as_default():
#    # Read meta graph and checkpoint to restore tf session
#    saver = tf.train.import_meta_graph(".\models\model.ckpt.meta")
#    saver.restore(sess, ".\models\model.ckpt")
#    y_pred=sess.run('softmax_linear/softmax_linear:0',feed_dict={hash(tuple(XR))})
#    print("done")


sess=tf.Session()
saver = tf.train.import_meta_graph(".\muctdata\models\MUCTmodel_3con_2fc_b36_e100_aug_lrdec_mominc_dr\model.ckpt.meta")
saver.restore(sess,'.\muctdata\models\MUCTmodel_3con_2fc_b36_e100_aug_lrdec_mominc_dr\model.ckpt')
print("done")

layers = [op.name for op in graph.get_operations() if op.type=='Conv2D' and 'import/' in op.name]
feature_nums = [int(graph.get_tensor_by_name(name+':0').get_shape()[-1]) for name in layers]

print('Number of layers', len(layers))
print('Total number of feature channels:', sum(feature_nums))
...