如何正确还原从苗条/网络培训的移动网络?

时间:2019-01-22 19:09:18

标签: tensorflow deep-learning

我已经从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

我使用这个确切的代码来还原我定义的其他模型,它们可以正常工作。问题仅在于当我尝试恢复通过研究/瘦身/网络训练的模型时,无论输入什么图像,我都能获得完全相同的概率。

我错过了什么吗?如何正确还原此类模型?

0 个答案:

没有答案