浅谈keras中Dropout在预测过程中是否仍要起作用


Posted in Python onJuly 09, 2020

因为需要,要重写训练好的keras模型,虽然只具备预测功能,但是发现还是有很多坑要趟过。其中Dropout这个坑,我记忆犹新。

一开始,我以为预测时要保持和训练时完全一样的网络结构,也就是预测时用的网络也是有丢弃的网络节点,但是这样想就掉进了一个大坑!因为无法通过已经训练好的模型,来获取其训练时随机丢弃的网络节点是那些,这本身就根本不可能。

更重要的是:我发现每一个迭代周期丢弃的神经元也不完全一样。

假若迭代500次,网络共有1000个神经元, 在第n(1<= n <500)个迭代周期内,从1000个神经元里随机丢弃了200个神经元,在n+1个迭代周期内,会在这1000个神经元里(不是在剩余得800个)重新随机丢弃200个神经元。

训练过程中,使用Dropout,其实就是对部分权重和偏置在某次迭代训练过程中,不参与计算和更新而已,并不是不再使用这些权重和偏置了(预测时,会使用全部的神经元,包括使用训练时丢弃的神经元)。

也就是说在预测过程中完全没有Dropout什么事了,他只是在训练时有用,特别是针对训练集比较小时防止过拟合非常有用。

补充知识:TensorFlow直接使用ckpt模型predict不用restore

我就废话不多说了,大家还是直接看代码吧~

# -*- coding: utf-8 -*-
# from util import *
import cv2
import numpy as np
import tensorflow as tf
# from tensorflow.python.framework import graph_util
import os

os.environ['CUDA_DEVICE_ORDER'] = 'PCI_BUS_ID'
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
image_path = './8760.pgm'

input_checkpoint = './model/xu_spatial_model_1340.ckpt'

sess = tf.Session()
saver = tf.train.import_meta_graph(input_checkpoint + '.meta')
saver.restore(sess, input_checkpoint)

# input:0作为输入图像,keep_prob:0作为dropout的参数,测试时值为1,is_training:0训练参数
input_image_tensor = sess.graph.get_tensor_by_name("coef_input:0")
is_training = sess.graph.get_tensor_by_name('is_training:0')
batch_size = sess.graph.get_tensor_by_name('batch_size:0')
# 定义输出的张量名称
output_tensor_name = sess.graph.get_tensor_by_name("xuNet/logits:0") # xuNet/Logits/logits
image = cv2.imread(image_path, 0)
# 读取测试图片
out = sess.run(output_tensor_name, feed_dict={input_image_tensor: np.reshape(image, (1, 512, 512, 1)),
                       is_training: False,
                       batch_size: 1})
print(out)

ckpt模型中的所有节点名称,可以这样查看

[n.name for n in tf.get_default_graph().as_graph_def().node]

以上这篇浅谈keras中Dropout在预测过程中是否仍要起作用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python读写文件方法总结
Jun 09 Python
Django中模型Model添加JSON类型字段的方法
Jun 17 Python
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
Python3字符串学习教程
Aug 20 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
Python模拟随机游走图形效果示例
Feb 06 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
Python 元组操作总结
Sep 18 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
Opencv python 图片生成视频的方法示例
Nov 18 Python
python爬虫请求头的使用
Dec 01 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 #Python
python求解汉诺塔游戏
Jul 09 #Python
Django中Aggregation聚合的基本使用方法
Jul 09 #Python
Python  word实现读取及导出代码解析
Jul 09 #Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 #Python
实例讲解Python 迭代器与生成器
Jul 08 #Python
opencv 阈值分割的具体使用
Jul 08 #Python
You might like
在PHP中使用XML
2006/10/09 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
js中作用域的实例解析
2017/03/16 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
react路由配置方式详解
2017/08/07 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
在IPython中执行Python程序文件的示例
2018/11/01 Python
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
交通安全演讲稿
2014/01/07 职场文书
人事助理自荐信
2014/02/02 职场文书
人力资源总监工作说明
2014/03/03 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
美术教师求职信范文
2015/03/20 职场文书