[問題] tensorflow gradients 對多維output

看板DataScience作者 (x_x)時間5年前 (2019/07/16 13:20), 編輯推噓3(307)
留言10則, 3人參與, 5年前最新討論串1/1
作業系統:win10 使用工具:tensorflow 問題內容: 一個input為 M 維, output為 N 維的DNN model 希望得到個別維度對input的梯度 也就是 δn1/δm1 , δn1/δm2 , ... ,δn2/δm1, δn2/δm2 , ... 所以我就用tf.gradients(output,input) 試圖要得到上面的東西 預期要得到一個 M*N 維的矩陣 結果他回傳是一個 M*1 維的矩陣 檢查了一下發現他"似乎"是回傳 [δsum(output)/δm1 , δsum(output)/δm2, ...] 這樣的一個向量給我 我也不是很確定他回傳的到底是甚麼 我google了一下發現也有類似的問題 但沒有解答 https://stackoverflow.com/questions/50454095/tf-gradients-dimensions-of-output 希望版上高手能給予解答 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.64.55.167 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1563254421.A.E11.html

07/16 22:29, 5年前 , 1F
你想拿jacobian matrix是ㄇ
07/16 22:29, 1F

07/16 22:33, 5年前 , 2F
07/16 22:33, 2F

07/16 22:36, 5年前 , 3F
from tensorflow.python.ops.parallel_for.gradients
07/16 22:36, 3F

07/16 22:36, 5年前 , 4F
import jacobian
07/16 22:36, 4F

07/17 00:00, 5年前 , 5F
用GradientTape,1.14後很好用的,tape.gradient就是取
07/17 00:00, 5F

07/17 00:00, 5年前 , 6F
得微分變量,tape.jacobian就是取得各自的微分,即jacob
07/17 00:00, 6F

07/17 00:00, 5年前 , 7F
ian。
07/17 00:00, 7F

07/17 00:02, 5年前 , 8F
尤其是以後tf 2.0,官方guideline 推薦指定用gradientTa
07/17 00:02, 8F

07/17 00:02, 5年前 , 9F
pe
07/17 00:02, 9F

07/18 10:26, 5年前 , 10F
感謝兩位的解答,問題解決了
07/18 10:26, 10F
文章代碼(AID): #1TBLwLuH (DataScience)
文章代碼(AID): #1TBLwLuH (DataScience)