我已经从tensorflow slim / nets培训了mobilenet v2,以解决二进制分类问题。
在培训期间,我获得了不错的验证准确性(96%),但是当我尝试恢复保存的检查点以在相同的验证集上运行它时,无论输入的图像如何,mobilenet都会返回完全相同的概率。
我认为恢复模型的方式可能有问题。
class Detector1(object):
def __init__(self, index,config):#, data_size, batch_size, model_path):
net_factory = mtcnn_model.mobilenet
model_path = '/logs/'
graph = tf.Graph()
with graph.as_default():
self.image_op = tf.placeholder(tf.float32, shape=[1, 48, 48, 3], name='input_image')
self.cls_prob = net_factory(self.image_op, training=False)
self.sess = tf.Session(
config=tf.ConfigProto(allow_soft_placement=True, gpu_options=tf.GPUOptions(allow_growth=True)))
saver = tf.train.Saver()
saver.restore(self.sess, '/logs/-600')
def predict(self,image):
cls_prob = self.sess.run([self.cls_prob], feed_dict={self.image_op: image})
return cls_prob
我使用这个确切的代码来还原我定义的其他模型,它们可以正常工作。问题仅在于当我尝试恢复通过研究/瘦身/网络训练的模型时,无论输入什么图像,我都能获得完全相同的概率。
我错过了什么吗?如何正确还原此类模型?