欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Tensorflow 卷積的梯度反向傳播過程

 更新時(shí)間:2020年02月10日 08:42:06   作者:LQ6H  
今天小編就為大家分享一篇Tensorflow 卷積的梯度反向傳播過程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

一. valid卷積的梯度

我們分兩種不同的情況討論valid卷積的梯度:第一種情況,在已知卷積核的情況下,對未知張量求導(dǎo)(即對張量中每一個(gè)變量求導(dǎo));第二種情況,在已知張量的情況下,對未知卷積核求導(dǎo)(即對卷積核中每一個(gè)變量求導(dǎo))

1.已知卷積核,對未知張量求導(dǎo)

我們用一個(gè)簡單的例子理解valid卷積的梯度反向傳播。假設(shè)有一個(gè)3x3的未知張量x,以及已知的2x2的卷積核K

Tensorflow提供函數(shù)tf.nn.conv2d_backprop_input實(shí)現(xiàn)了valid卷積中對未知變量的求導(dǎo),以上示例對應(yīng)的代碼如下:

import tensorflow as tf

# 卷積核
kernel=tf.constant(
  [
    [[[3]],[[4]]],
    [[[5]],[[6]]]
  ]
  ,tf.float32
)

# 某一函數(shù)針對sigma的導(dǎo)數(shù)
out=tf.constant(
  [
    [
      [[-1],[1]],
      [[2],[-2]]
    ]
  ]
  ,tf.float32
)


# 針對未知變量的導(dǎo)數(shù)的方向計(jì)算
inputValue=tf.nn.conv2d_backprop_input((1,3,3,1),kernel,out,[1,1,1,1],'VALID')

session=tf.Session()

print(session.run(inputValue))
[[[[ -3.]
  [ -1.]
  [ 4.]]

 [[ 1.]
  [ 1.]
  [ -2.]]

 [[ 10.]
  [ 2.]
  [-12.]]]]

2.已知輸入張量,對未知卷積核求導(dǎo)

假設(shè)已知3行3列的張量x和未知的2行2列的卷積核K

Tensorflow提供函數(shù)tf.nn.conv2d_backprop_filter實(shí)現(xiàn)valid卷積對未知卷積核的求導(dǎo),以上示例的代碼如下:

import tensorflow as tf

# 輸入張量
x=tf.constant(
  [
    [
      [[1],[2],[3]],
      [[4],[5],[6]],
      [[7],[8],[9]]
    ]
  ]
  ,tf.float32
)

# 某一個(gè)函數(shù)F對sigma的導(dǎo)數(shù)
partial_sigma=tf.constant(
  [
    [
      [[-1],[-2]],
      [[-3],[-4]]
    ]
  ]
  ,tf.float32
)

# 某一個(gè)函數(shù)F對卷積核k的導(dǎo)數(shù)
partial_sigma_k=tf.nn.conv2d_backprop_filter(x,(2,2,1,1),partial_sigma,[1,1,1,1],'VALID')

session=tf.Session()

print(session.run(partial_sigma_k))
[[[[-37.]]

 [[-47.]]]


 [[[-67.]]

 [[-77.]]]]

二. same卷積的梯度

1.已知卷積核,對輸入張量求導(dǎo)

假設(shè)有3行3列的已知張量x,2行2列的未知卷積核K

import tensorflow as tf

# 卷積核
kernel=tf.constant(
  [
    [[[3]],[[4]]],
    [[[5]],[[6]]]
  ]
  ,tf.float32
)

# 某一函數(shù)針對sigma的導(dǎo)數(shù)
partial_sigma=tf.constant(
  [
    [
      [[-1],[1],[3]],
      [[2],[-2],[-4]],
      [[-3],[4],[1]]
    ]
  ]
  ,tf.float32
)


# 針對未知變量的導(dǎo)數(shù)的方向計(jì)算
partial_x=tf.nn.conv2d_backprop_input((1,3,3,1),kernel,partial_sigma,[1,1,1,1],'SAME')

session=tf.Session()

print(session.run(inputValue))
[[[[ -3.]
  [ -1.]
  [ 4.]]

 [[ 1.]
  [ 1.]
  [ -2.]]

 [[ 10.]
  [ 2.]
  [-12.]]]]

2.已知輸入張量,對未知卷積核求導(dǎo)

假設(shè)已知3行3列的張量x和未知的2行2列的卷積核K

import tensorflow as tf

# 卷積核
x=tf.constant(
  [
    [
      [[1],[2],[3]],
      [[4],[5],[6]],
      [[7],[8],[9]]
    ]
  ]
  ,tf.float32
)

# 某一函數(shù)針對sigma的導(dǎo)數(shù)
partial_sigma=tf.constant(
  [
    [
      [[-1],[-2],[1]],
      [[-3],[-4],[2]],
      [[-2],[1],[3]]
    ]
  ]
  ,tf.float32
)


# 針對未知變量的導(dǎo)數(shù)的方向計(jì)算
partial_sigma_k=tf.nn.conv2d_backprop_filter(x,(2,2,1,1),partial_sigma,[1,1,1,1],'SAME')

session=tf.Session()

print(session.run(partial_sigma_k))
[[[[ -1.]]

 [[-54.]]]


 [[[-43.]]

 [[-77.]]]]

以上這篇Tensorflow 卷積的梯度反向傳播過程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入淺析ImageMagick命令執(zhí)行漏洞

    深入淺析ImageMagick命令執(zhí)行漏洞

    ImageMagick是一個(gè)功能強(qiáng)大的開源圖形處理軟件,可以用來讀、寫和處理超過90種的圖片文件,包括流行的JPEG、GIF、 PNG、PDF以及PhotoCD等格式。接下來通過本文給大家淺析ImageMagick命令執(zhí)行漏洞的知識,一起看看吧
    2016-10-10
  • Python實(shí)現(xiàn)PS濾鏡特效Marble Filter玻璃條紋扭曲效果示例

    Python實(shí)現(xiàn)PS濾鏡特效Marble Filter玻璃條紋扭曲效果示例

    這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡特效Marble Filter玻璃條紋扭曲效果,涉及Python基于skimage庫實(shí)現(xiàn)圖形條紋扭曲效果的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • python創(chuàng)建模板文件及使用教程示例

    python創(chuàng)建模板文件及使用教程示例

    這篇文章主要介紹了python創(chuàng)建模板文件及使用教程示例
    2021-10-10
  • 使用 Python 查找本月的最后一天的方法匯總

    使用 Python 查找本月的最后一天的方法匯總

    這篇文章主要介紹了使用 Python 查找本月的最后一天,在本文中,我們學(xué)習(xí)了使用 datetime 和 calendar 等內(nèi)置庫以及 arrow 和 pandas 等第三方庫在 Python 中查找月份最后一天的各種方法,需要的朋友可以參考下
    2023-05-05
  • pytorch下的unsqueeze和squeeze的用法說明

    pytorch下的unsqueeze和squeeze的用法說明

    這篇文章主要介紹了pytorch下的unsqueeze和squeeze的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • python thrift搭建服務(wù)端和客戶端測試程序

    python thrift搭建服務(wù)端和客戶端測試程序

    這篇文章主要為大家詳細(xì)介紹了python thrift搭建服務(wù)端和客戶端測試程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python是一個(gè)很有趣的語言,可以在命令行窗口運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于python中如何利用matplotlib畫多個(gè)并列的柱狀圖的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Python3交互式shell ipython3安裝及使用詳解

    Python3交互式shell ipython3安裝及使用詳解

    這篇文章主要介紹了Python3交互式shell ipython3安裝及使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • pycharm全局修改方式

    pycharm全局修改方式

    這篇文章主要介紹了pycharm全局修改方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 老生常談python中的重載

    老生常談python中的重載

    所謂重載,就是多個(gè)相同函數(shù)名的函數(shù),根據(jù)傳入的參數(shù)個(gè)數(shù),參數(shù)類型而執(zhí)行不同的功能。所以函數(shù)重載實(shí)質(zhì)上是為了解決編程中參數(shù)可變不統(tǒng)一的問題。這篇文章主要介紹了老生常談python中的重載,需要的朋友可以參考下
    2018-11-11

最新評論