Tensorflow 合并通道及加载子模型的方法

yipeiwu_com5年前Python基础

最近在使用Tensorflow 实现DNN网络时,遇到一些问题。目前网上关于Tensorflow的资料还比较少,现把问题和解决方法写出来,仅供参考。

(1)将两个子模型的输出合并到一个通道,例如同时连接到一个全连接层如图

合并方法为 tf.concat()函数。此函数需要两个个参数 concat(0或1,[合并节点1,合并节点2] )。0 或 1 代表节点合并的方式:0 代表合并后列相同,行增加;1 代表合并后行相同,列增加。

上图所示合并方法为: X_20 = tf.concat(1, [X_top, X_down]);

(2)加载预训练好模型的部分参数。例如训练完成了一个五层网络,现在需要训练好一个七层网络,使用已训练好的五层网络参数初始化七层网络的前五层。

首先,五层网络保存模型时的参数变量名要和七层网络的需要初始化的参数变量名保持一致。

然后,定义加载指定变量名的 tf.train.Saver()。

例如:

Saver在restore模型时就会只加载 W_fc1_I, W_fc2_I, b_fc1_I, b_fc2_I 这四个参数,并且初始化当前模型中变量名相同的变量。需要注意的是,其他参数也是需要初始化的,一种避免遗漏初始化变量的方法是首先使用 initialize_all_variables() 函数对所有参数进行初始化之后再调用 restore 函数初始化需要的部分参数。

此方法只是其中一种解决方法,仅供参考。

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

相关文章

python异步编程 使用yield from过程解析

前言 yield from 是 Python3.3 后新加的语言结构。yield from的主要功能是打开双向通道,把最外层的调用方法与最内层的子生成器连接起来。这两者就可以进行发送值和...

python时间整形转标准格式的示例分享

复制代码 代码如下:import osimport sysimport pickleimport stringimport reimport timefrom datetime ...

Python保存MongoDB上的文件到本地的方法

本文实例讲述了Python保存MongoDB上的文件到本地的方法。分享给大家供大家参考,具体如下: MongoDB上的文档通过GridFS来操作,Python也可以通过pymongo连接...

Python3 安装PyQt5及exe打包图文教程

Python3 安装PyQt5及exe打包图文教程

环境: Python 3.6.4 + Pycharm Professional 2017.3.3 + PyQt5 + PyQt5-tools ① Python 3 安装 Python 3...

Python md5与sha1加密算法用法分析

本文实例讲述了Python md5与sha1加密算法。分享给大家供大家参考,具体如下: MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在9...