91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Dropout在預測中是不是仍要繼續發揮作用

發布時間:2020-07-10 10:57:26 來源:億速云 閱讀:305 作者:清晨 欄目:開發技術

小編給大家分享一下Dropout在預測中是不是仍要繼續發揮作用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

因為需要,要重寫訓練好的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]

看完了這篇文章,相信你對Dropout在預測中是不是仍要繼續發揮作用有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

滦南县| 临猗县| 泉州市| 札达县| 河曲县| 迁西县| 揭西县| 惠安县| 宣化县| 改则县| 双城市| 基隆市| 烟台市| 广平县| 威海市| 宣化县| 黎平县| 科尔| 上杭县| 镇原县| 夏津县| 万源市| 霍州市| 通许县| 项城市| 汉川市| 五莲县| 黑水县| 电白县| 阳山县| 开化县| 铜山县| 平湖市| 专栏| 通州区| 沙雅县| 乡城县| 巢湖市| 霍城县| 格尔木市| 万宁市|