Re: [問題] TensorFlow如何設定複雜的loss function?

看板Python作者 (蘿莉大好)時間6年前 (2019/02/02 13:43), 6年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《dogs1231992 (河豚)》之銘言: : 標題: [問題] TensorFlow如何設定複雜的loss function? : 時間: Fri Feb 1 05:02:10 2019 : : 各位大家好,小弟最近想用TensorFlow來完成NN的部分 : : 目前數據都準備好了,TensorFlow的部分則是上網查了一些資料,層及進出都設定好了 : : 只是我遇到一個關於loss function的問題 : : 一般訓練都是N個數據進去,M個數據出來,用這M個數據與參考值求誤差 : : 但我的狀況是: : : 我有一個三維的資料: N x M x P : : 裡面有 N 個images,每個images有 M 個原子,每個原子有 P 個參數 : : 希望可以利用同一個 (或者依照原子不同而分類成多個) NN : : 在我輸入P個數據後,可以得到答案Ep : : 同一個image裡面所有原子M的Ep加總後會得到一個值 En : : 全部資料會有N個En,這些En與參考值求誤差後即為我的loss : : 目前卡在不知道該如何將M次計算後的Ep全部加總在一起 : : 推 yoyololicon: 我會建議你不要用一個個原子去想 而是用image的角度 02/02 07:39 : → yoyololicon: 因為你的目標En單位是每個image 02/02 07:39 : → yoyololicon: 就直接用(N, M, P)大小的矩陣直接去train不用拆開 02/02 07:41 : → yoyololicon: 對應的label為長度(N,)的矩陣 這邊N就是batch size 02/02 07:42 : : Y大,想請問您的意思是是否為: : : 我的單一個input就是 M x P 的矩陣 : : 輸出則為 M個參數 或者 直接把所有輸出加總在一起變成一個En? : : N個images在訓練後就會得到 N個 En : 都可以 這樣的話你的輸入可以縮減成二維 (N, M x P) 經過NN (可能的架構: (M x P) x .... x M) 後輸出變成(N, M) 再用tf.reduce_sum加總成(N,),再來算loss; 或者用原本的架構也可以(2 x 15 x 1) 輸入 (N, M, P) >> NN >> (N, M, 1),之後的步驟一樣 我不確定你的M是固定的還是變數 如果是變動的,可以做padding讓大小變成一樣 : 如果是這樣的話,想請問是否有辦法在輸入 M x P 的矩陣時分辨誰要走NN1,誰要走NN2? 應該在一開始就把資料分成兩群,而不是在輸入的時候做分辨 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.108.207 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1549086223.A.F05.html ※ 編輯: yoyololicon (118.167.108.207), 02/02/2019 13:44:42
文章代碼(AID): #1SLIuFy5 (Python)
文章代碼(AID): #1SLIuFy5 (Python)