2017-03-01 74 views
0

我必须在初始化中加载模型,然后通过某个函数重用它。在我的架构函数中,通过一个模型运行预测多个数据集,我认为每个数据集的硬盘驱动器负载模型不是一个好的解决方案。加载Tensorflow模型并通过其他函数重用它

我需要这样的事情,即功能之间共享会话(或模型):

def __init__(self): 
    self.graph = tf.Graph() 
    with self.graph.as_default(): 
     self.sess = tf.Session() 
     with sess.as_default(): 
      saver.restore(tf.get_default_session(), path_to_checkpoint) 

def some_func(): 
    with self.graph.as_default(): 
     with self.sess.as_default(): 
      self.sess.run() 

有没有做到这一点任何适当的方式?

回答

0

您可以定义模型架构并将其权重作为类加载。将其用于不同功能的各种数据集。

class vgg16: 
def __init__(self, imgs, weights=None, sess=None): 
    self.imgs = imgs 
    self.convlayers() 
    self.fc_layers() 
    self.probs = tf.nn.softmax(self.fc3l) 
    if weights is not None and sess is not None: 
     self.load_weights(weights, sess) 

def convlayers(self): 
    self.parameters = [] 
     :: 
     :: 

if __name__ == '__main__': 
    sess = tf.Session() 
    imgs = tf.placeholder(tf.float32, [None, 224, 224, 3]) 
    vgg = vgg16(imgs, 'vgg16_weights.npz', sess) 

    # run inference here on multiple datasets 

入住这里:https://www.cs.toronto.edu/~frossard/vgg16/vgg16.py

这是否可以帮助你吗?

相关问题