最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Tensorflow實現(xiàn)可視化中間層和卷積層

 更新時間:2020年01月24日 10:44:55   作者:nini_coded  
今天小編就為大家分享一篇使用Tensorflow實現(xiàn)可視化中間層和卷積層,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

為了查看網(wǎng)絡(luò)訓(xùn)練的效果或者便于調(diào)參、更改結(jié)構(gòu)等,我們常常將訓(xùn)練網(wǎng)絡(luò)過程中的loss、accurcy等參數(shù)。

除此之外,有時我們也想要查看訓(xùn)練好的網(wǎng)絡(luò)中間層輸出和卷積核上面表達(dá)了什么內(nèi)容,這可以幫助我們思考CNN的內(nèi)在機制、調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)或者把這些可視化內(nèi)容貼在論文當(dāng)中輔助說明訓(xùn)練的效果等。

中間層和卷積核的可視化有多種方法,整理如下:

1. 以矩陣(matrix)格式手動輸出圖像:

用簡單的LeNet網(wǎng)絡(luò)訓(xùn)練MNIST數(shù)據(jù)集作為示例:

x = tf.placeholder(tf.float32, [None, 784]) 

x_image = tf.reshape(x, [-1,28,28,1])    
W_conv1 = weight_variable([5, 5, 1, 32]) # 第一個卷積層的32個卷積核  
b_conv1 = bias_variable([32])  
# 第一個卷積層:  
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
h_pool1 = max_pool(h_conv1)  # 第一個池化層    

訓(xùn)練結(jié)束后,第一個卷積層共有32個5*5大小的卷積核:W_conv1,要可視化第10個卷積核:

from PIL import Image
import numpy as np
#from mnist_try001 import W_conv1

img1 = (W_conv1.eval()) # 將張量轉(zhuǎn)換為numpy數(shù)組
W_conv1_10 = img1[:,:,:,9] 

W_conv1_10 = np.asmatrix(W_conv1_10) # 將數(shù)組轉(zhuǎn)換為矩陣格式
W_conv1_10_visual = Image.fromarray(W_conv1_10 * 255.0 / W_conv1_10.max()) # 像素值歸一化,Image.fromarray方法的輸入范圍是[0~255]
W_conv1_10_visual.show()

2. 通過反卷積方式輸出中間層和卷積核圖像:

import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data

x = tf.placeholder(tf.float32, [None, 784])
mnist = input_data.read_data_sets('/TensorflowCode/MNIST_data', one_hot=True)

h_conv2 = tf.nn.relu(tf.nn.conv2d(h_pool1, W_conv2, strides=[1, 1, 1, 1], padding='SAME') + b_conv2) #14*14*64
# 可視化第二層輸出的圖像
input_image = mnist.train.images[100] # 輸入一幅指定圖像,mnist.train.images[100]尺寸為[784,],即1維:[1,784]
conv2 = sess.run(h_conv2, feed_dict={x:input_image}) # [64, 14, 14 ,1] 若前面網(wǎng)絡(luò)中加入了dropout,這里的feed_dict中不要忘記加上keep_prob: 0.5
conv2 = sess.run(tf.reshape(conv2 , [64, 1, 14, 14]))
conv2 = np.sum(conv2,axis = 0) # 對中間層圖像各通道求和,作為輸出圖像
h_conv1 = np.asmatrix(h_conv1) # 將conv2數(shù)組轉(zhuǎn)換成矩陣格式
h_conv1 = Image.fromarray(h_conv1 * 255.0 / h_conv1.max()) # 矩陣數(shù)值歸一化
h_conv1.show() # 輸出14*14的灰度圖像

可視化卷積核和上面的方法完全一樣,把h_conv2改成卷積核就可以了(如W_conv1_10),可以同是輸出多個卷積核。

中間層圖像如下:(已經(jīng)完全看不出是數(shù)字了)

或者用 matplotlib.pyplot代替上面的Image方法,可以直接輸出彩色圖像:

# 輸出第一層的32個卷積核(5×5*32)
import matplotlib.pyplot as plt

input_image = mnist.train.images[100]
W_conv1 = sess.run(W_conv1, feed_dict={x:input_image})   
W_conv1 = sess.run(tf.reshape(conv1_16, [32, 1, 5, 5]))
fig1,ax1 = plt.subplots(nrows=1, ncols=32, figsize = (32,1))
for i in range(32):
  ax1[i].imshow( W_conv1[i][0])           
plt.title('W_conv1 32×5×5')
plt.show()

以上這篇使用Tensorflow實現(xiàn)可視化中間層和卷積層就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python變量作用域LEGB用法解析

    Python變量作用域LEGB用法解析

    這篇文章主要介紹了Python變量作用域LEGB用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • python一行sql太長折成多行并且有多個參數(shù)的方法

    python一行sql太長折成多行并且有多個參數(shù)的方法

    今天小編就為大家分享一篇python一行sql太長折成多行并且有多個參數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • pandas數(shù)據(jù)的合并與拼接的實現(xiàn)

    pandas數(shù)據(jù)的合并與拼接的實現(xiàn)

    Pandas包的merge、join、concat方法可以完成數(shù)據(jù)的合并和拼接,本文主要介紹了這三種實現(xiàn)方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • python破解bilibili滑動驗證碼登錄功能

    python破解bilibili滑動驗證碼登錄功能

    這篇文章主要介紹了python破解bilibili滑動驗證碼登錄功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Django自定義分頁與bootstrap分頁結(jié)合

    Django自定義分頁與bootstrap分頁結(jié)合

    這篇文章主要為大家詳細(xì)介紹了Django自定義分頁與bootstrap分頁結(jié)合使用的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Python輕量級web框架bottle使用方法解析

    Python輕量級web框架bottle使用方法解析

    這篇文章主要介紹了Python輕量級web框架bottle使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 淺談python3打包與拆包在函數(shù)的應(yīng)用詳解

    淺談python3打包與拆包在函數(shù)的應(yīng)用詳解

    這篇文章主要介紹了淺談python3打包與拆包在函數(shù)的應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python3.5基礎(chǔ)之NumPy模塊的使用圖文與實例詳解

    Python3.5基礎(chǔ)之NumPy模塊的使用圖文與實例詳解

    這篇文章主要介紹了Python3.5基礎(chǔ)之NumPy模塊的使用,結(jié)合圖文與實例形式詳細(xì)分析了Python3.5中Numpy模塊的原理、功能、使用方法及操作注意事項,需要的朋友可以參考下
    2019-04-04
  • pandas調(diào)整列的順序以及添加列的實現(xiàn)

    pandas調(diào)整列的順序以及添加列的實現(xiàn)

    這篇文章主要介紹了pandas調(diào)整列的順序以及添加列的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 神經(jīng)網(wǎng)絡(luò)(BP)算法Python實現(xiàn)及應(yīng)用

    神經(jīng)網(wǎng)絡(luò)(BP)算法Python實現(xiàn)及應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)神經(jīng)網(wǎng)絡(luò)(BP)算法及簡單應(yīng)用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評論

西青区| 泗水县| 卓尼县| 临泽县| 上高县| 许昌县| 临夏县| 珲春市| 阳山县| 湟源县| 金堂县| 南康市| 许昌县| 丰县| 双牌县| 庆城县| 行唐县| 类乌齐县| 金寨县| 丹东市| 濉溪县| 雷州市| 金阳县| 吉隆县| 贡嘎县| 沂水县| 阜南县| 水城县| 抚顺市| 务川| 卓尼县| 洛阳市| 武义县| 丘北县| 彰武县| 手游| 海原县| 万州区| 太湖县| 郴州市| 永州市|