tensorflow 只恢復部分模型參數


 

 

import tensorflow as tf

def model_1():
    with tf.variable_scope("var_a"):
        a = tf.Variable(initial_value=[1, 2, 3], name="a")

    vars = [var for var in tf.trainable_variables() if var.name.startswith("var_a")]
    print(len(vars))
    return vars

def model_2():

    vars1 = model_1()

    with tf.variable_scope("var_b"):
        a = tf.Variable(initial_value=[1, 2, 3], name="a")

    vars2 = [var for var in tf.trainable_variables() if var.name.startswith("var")]
    print(len(vars2))
    return vars1


def pretrain_model1():
    print("-------- model 1 ------")
    vars = model_1()

    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        saver = tf.train.Saver()
        saver.save(sess, "./model.ckpt")

def train_model2():
    print("-------- model 2 ------")

    model1_vars = model_2()

    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        saver = tf.train.Saver(var_list=model1_vars)
        saver.restore(sess, "./model.ckpt")
        vars = sess.run([model1_vars])
        for var in vars:
            print(var)

step = 2
if step == 1:
    pretrain_model1()
else:
    train_model2()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM