基于tensorflow加载部分层的方法

yipeiwu_com6年前Python基础

一般使用

saver.restore(sess, modeldir + "model.ckpt")

即可加载已经训练好的网络,可是有时候想值使用部分层的参数,这时候可以选择在加载网络之后重新初始化剩下的层

var_list = [weights['wd1'], weights['out'], biases['bd1'], biases['out'], global_step]
initfc = tf.variables_initializer(var_list, name='init')

比如我们想从新初始化var_list中的各个层,在restore之后,再初始化即可

sess.run(init)
saver.restore(sess, modeldir + "model.ckpt")
print sess.run(global_step)
#initialize several layer
sess.run(initfc)
print sess.run(global_step)

即可发现部分变量重新初始化了

以上这篇基于tensorflow加载部分层的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中使用多进程来实现并行处理的方法小结

进程和线程是计算机软件领域里很重要的概念,进程和线程有区别,也有着密切的联系,先来辨析一下这两个概念: 1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系...

如何在Python中编写并发程序

GIL 在Python中,由于历史原因(GIL),使得Python中多线程的效果非常不理想.GIL使得任何时刻Python只能利用一个CPU核,并且它的调度算法简单粗暴:多线程中,让每...

Python urllib模块urlopen()与urlretrieve()详解

1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远...

深入浅析Python传值与传址

1. 传值与传址的区别 传值就是传入一个参数的值,传址就是传入一个参数的地址,也就是内存的地址(相当于指针)。他们的区别是如果函数里面对传入的参数重新赋值,函数外的全局变量是否相应改变:...

树莓派动作捕捉抓拍存储图像脚本

本文实例为大家分享了树莓派动作捕捉抓拍存储图像的具体代码,供大家参考,具体内容如下 #!/usr/bin/python # original script by brainflak...