tensorflow 只恢复部分模型参数

原文:https://www.cnblogs.com/huwtylv/p/10204295.html

 

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值