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简单获取本机计算机名和IP地址的方法

本文实例讲述了python简单获取本机计算机名和IP地址的方法。分享给大家供大家参考。具体实现方法如下: 方法一: >>> import socket >&...

python 用opencv调用训练好的模型进行识别的方法

此程序为先调用opencv自带的人脸检测模型,检测到人脸后,再调用我自己训练好的模型去识别人脸,使用时更改模型地址即可 #!usr/bin/env python import cv2...

python利用openpyxl拆分多个工作表的工作簿的方法

python利用openpyxl拆分多个工作表的工作簿的方法

实现按目录拆分工作簿,源数据如下图 按目录拆分成N个文件。 上代码,没有找是否有整个sheet 复制的,先逐个cell复制解决问题。: # encoding: utf-8 """...

padas 生成excel 增加sheet表的实例

padas 生成excel 增加sheet表的实例

基本介绍 pandas是Python数据挖掘、数据分析中常用的库。而DataFrame生成excel中的sheet表,以及在excel中增加sheet表,在数据分 析中也经常用到。这里以...

Python在不同目录下导入模块的实现方法

python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。 1. 同级目录下的调用...