2017-03-01 7 views
0

モデルを初期化で読み込んだ後、関数によって再利用する必要があります。私のアーキテクチャ機能では、1つのモデルで複数のデータセットを予測して実行し、各データセットのハードドライブからの負荷モデルは良い解決策ではないと考えました。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

ないのに役立ちますか?

関連する問題