浅谈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批量提交沙箱问题实例
Oct 08 Python
python实现定时同步本机与北京时间的方法
Mar 24 Python
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
python中模块的__all__属性详解
Oct 26 Python
在python中bool函数的取值方法
Nov 01 Python
python 函数内部修改外部变量的方法
Dec 18 Python
Python的Lambda函数用法详解
Sep 03 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 Python
Ubuntu20下的Django安装的方法步骤
Jan 24 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设计模式 Facade(外观模式)
2011/06/26 PHP
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
Javascript的比较汇总
2016/07/25 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
python实现保存网页到本地示例
2014/03/16 Python
Python中的多重装饰器
2015/04/11 Python
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
python实现爬山算法的思路详解
2019/04/09 Python
python字符串格式化方式解析
2019/10/19 Python
python绘制动态曲线教程
2020/02/24 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
包装类的功能、种类、常用方法
2012/01/27 面试题
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
施工安全协议书
2013/12/11 职场文书
创建无烟单位实施方案
2014/03/29 职场文书
新党章的学习心得体会
2014/11/07 职场文书