最近在使用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 合并通道及加载子模型的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
上一篇 :
正式上云!一文读懂阿里音视频会议系统
下一篇 :
2019云栖大会70+份顶级大咖演讲PPT分享!
-
Java Rest请求工具
2026-05-16栏目: 教程
-
带你读《计算思维导论实验 与习题指导》之三:计算机原理与硬件组装
2026-05-16栏目: 教程
-
基于 Spark 和 TensorFlow 的机器学习实践
2026-05-16栏目: 教程
-
[转]国内首款蒙古文人工智能AI平台发布
2026-05-16栏目: 教程
-
Java单例模式
2026-05-16栏目: 教程
