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

yipeiwu_com6年前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和pygame实现简单俄罗斯方块游戏

python和pygame实现简单俄罗斯方块游戏

本文为大家分享了python实现俄罗斯方块游戏的具体代码,供大家参考,具体内容如下 Github:Tetris 代码: # -*- coding:utf-8 -*- import...

详解Django+Uwsgi+Nginx的生产环境部署

详解Django+Uwsgi+Nginx的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等,...

Cpy和Python的效率对比

Python 语言的初学者, 特别是"惊奇者"(也就是那种第一眼就被毫无意义的某些特性吸引, 之后持续说服自己的人)认为 Python 不需要 C 语言的 for 语句, 因为他们能用优...

Python 实现 贪吃蛇大作战 代码分享

Python 实现 贪吃蛇大作战 代码分享

感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核。媒体们除了之前竞相追捧《Pokemon Go》热闹了一把,似乎也听不到什么声音了。直到最近几天,突然听见好...

node.js获取参数的常用方法(总结)

1、req.body 2、req.query 3、req.params 一、req.body例子 body不是nodejs默认提供的,你需要载入body-parser中间件才可以使用re...