激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 淺談keras中Dropout在預測過程中是否仍要起作用

淺談keras中Dropout在預測過程中是否仍要起作用

2020-07-09 10:25zyl681327 Python

這篇文章主要介紹了淺談keras中Dropout在預測過程中是否仍要起作用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

因為需要,要重寫訓練好的keras模型,雖然只具備預測功能,但是發現還是有很多坑要趟過。其中Dropout這個坑,我記憶猶新。

一開始,我以為預測時要保持和訓練時完全一樣的網絡結構,也就是預測時用的網絡也是有丟棄的網絡節點,但是這樣想就掉進了一個大坑!因為無法通過已經訓練好的模型,來獲取其訓練時隨機丟棄的網絡節點是那些,這本身就根本不可能。

更重要的是:我發現每一個迭代周期丟棄的神經元也不完全一樣。

假若迭代500次,網絡共有1000個神經元, 在第n(1<= n <500)個迭代周期內,從1000個神經元里隨機丟棄了200個神經元,在n+1個迭代周期內,會在這1000個神經元里(不是在剩余得800個)重新隨機丟棄200個神經元。

訓練過程中,使用Dropout,其實就是對部分權重和偏置在某次迭代訓練過程中,不參與計算和更新而已,并不是不再使用這些權重和偏置了(預測時,會使用全部的神經元,包括使用訓練時丟棄的神經元)。

也就是說在預測過程中完全沒有Dropout什么事了,他只是在訓練時有用,特別是針對訓練集比較小時防止過擬合非常有用。

補充知識:TensorFlow直接使用ckpt模型predict不用restore

我就廢話不多說了,大家還是直接看代碼吧~

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# -*- 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在預測過程中是否仍要起作用就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/zyl681327/article/details/95597687

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色网址入口 | 九九热精品视频在线 | 超级av在线 | 欧美a级在线免费观看 | 欧美熟videos肥婆 | 欧美成人一二区 | 亚洲第一成网站 | 精品国产乱码久久久久久久久 | 中文亚洲视频 | 日本aaaa片毛片免费观看视频 | 精品亚洲视频在线观看 | 91社影院在线观看 | 精品一区二区三区欧美 | 日本一道aⅴ不卡免费播放 日日草夜夜操 | 欧洲a级片 | 广州毛片 | 日韩字幕在线观看 | 一级黄片毛片免费看 | 九九热久久免费视频 | 国产精品99久久久久久久女警 | 看片一区 | 黄色特级大片 | 日韩视频网址 | 国产在线观看一区二区三区 | 99riav国产在线观看 | 九九精品视频观看 | 欧美 中文字幕 | 欧美日韩网站在线观看 | 黄色成人在线 | 精品亚洲va在线va天堂资源站 | 久久久精品视 | 成人在线观看免费观看 | 亚洲啪 | 日韩视频在线免费 | 日日夜av | 777sesese| 一级电影免费在线观看 | 56av国产精品久久久久久久 | 日本高清在线免费 | 久久久久久久久久久久久久av | 成人在线视频黄色 |