如何使用会话的权重初始化新会话的权重?

时间:2019-06-12 04:34:19

标签: python tensorflow deep-learning

我对张量流有疑问; 我的网络状况是固定的,但是由于每种情况的某些局部特征,我想在许多不同的情况下进行培训;由于输入(不同的情况)是“相似的”,因此我想使用上一个的训练结果来初始化此新学习。 我试过的是以下内容(我简化了代码),是否有人有更好的实现此想法?谢谢

   cae_in = tf.placeholder(tf.float32,(some size))

   cae_out = tf.placeholder(tf.float32,(None,(some size))

   out = some_function(cae_in) 

   loss = tf.reduce_mean(tf.square(out-cae_out))

   optimiser = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss)

   init_op = tf.global_variables_initializer()

   with tf.Session() as sess:
       init_op.run()

       for inx in range(all_cases):
           feed_in = some array[i]
           feed_in2 = some array[i]

           for iteration in range(0,n_iterations):
               sess.run([optimiser], feed_dict = {cae_in: feed_in,cae_out:feed_in2})

1 个答案:

答案 0 :(得分:1)

在检查点完成一个会话后,您可以尝试保存可训练的变量:

saver = tf.train.Saver(tf.trainable_variables())

with tf.Session():
    ...
    saver.save()

在开始另一项训练之前,从该检查点恢复。