国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-15 21:18:07
字體:
來源:轉載
供稿:網友

一. valid卷積的梯度

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

1.已知卷積核,對未知張量求導

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

Tensorflow提供函數tf.nn.conv2d_backprop_input實現了valid卷積中對未知變量的求導,以上示例對應的代碼如下:

import tensorflow as tf# 卷積核kernel=tf.constant(  [    [[[3]],[[4]]],    [[[5]],[[6]]]  ]  ,tf.float32)# 某一函數針對sigma的導數out=tf.constant(  [    [      [[-1],[1]],      [[2],[-2]]    ]  ]  ,tf.float32)# 針對未知變量的導數的方向計算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.已知輸入張量,對未知卷積核求導

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

Tensorflow提供函數tf.nn.conv2d_backprop_filter實現valid卷積對未知卷積核的求導,以上示例的代碼如下:

import tensorflow as tf# 輸入張量x=tf.constant(  [    [      [[1],[2],[3]],      [[4],[5],[6]],      [[7],[8],[9]]    ]  ]  ,tf.float32)# 某一個函數F對sigma的導數partial_sigma=tf.constant(  [    [      [[-1],[-2]],      [[-3],[-4]]    ]  ]  ,tf.float32)# 某一個函數F對卷積核k的導數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.已知卷積核,對輸入張量求導

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

import tensorflow as tf# 卷積核kernel=tf.constant(  [    [[[3]],[[4]]],    [[[5]],[[6]]]  ]  ,tf.float32)# 某一函數針對sigma的導數partial_sigma=tf.constant(  [    [      [[-1],[1],[3]],      [[2],[-2],[-4]],      [[-3],[4],[1]]    ]  ]  ,tf.float32)# 針對未知變量的導數的方向計算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.已知輸入張量,對未知卷積核求導

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

import tensorflow as tf# 卷積核x=tf.constant(  [    [      [[1],[2],[3]],      [[4],[5],[6]],      [[7],[8],[9]]    ]  ]  ,tf.float32)# 某一函數針對sigma的導數partial_sigma=tf.constant(  [    [      [[-1],[-2],[1]],      [[-3],[-4],[2]],      [[-2],[1],[3]]    ]  ]  ,tf.float32)# 針對未知變量的導數的方向計算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.]]]]            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝阳县| 上栗县| 北票市| 徐汇区| 东台市| 新龙县| 德昌县| 齐齐哈尔市| 汉中市| 宽甸| 浮梁县| 会理县| 房产| 霞浦县| 上饶市| 肇庆市| 尼勒克县| 宾阳县| 金沙县| 黔西县| 长沙市| 南靖县| 海阳市| 辽宁省| 龙口市| 阿克陶县| 长顺县| 柳林县| 河池市| 黄浦区| 泾川县| 临澧县| 长泰县| 万源市| 永登县| 青冈县| 象州县| 兴宁市| 金乡县| 万安县| 明光市|