Tensorflow迁移学习

Tensorflow迁移学习

  • finetune

    https://zhuanlan.zhihu.com/p/42183653

    步骤:构建图结构,截取目标张量,添加新层;加载目标张量以及预训练好的权重;训练新层;全局微调

    权重初始化的顺序需要注意一下:先利用全局初始化tf.global_variables_initializer(),再利用saver.restore顺序不能错,否则加载的权重会被重新初始化 。

    1
    2
    sess.run(tf.global_variables_initializer())
    saver.restore(sess,tf.train.latest_checkpoint("./model_ckpt/mobilenet_v2"))

    先利用saver.restore从模型中加载权重,再利用tf.variable_initializaer()初始化指定的var_list,顺序可以调换.

    1
    2
    saver.restore(sess,tf.train.latest_checkpoint("./model_ckpt/mobilenet_v2"))
    sess.run(tf.variables_initializer(var_list=train_var))