[英]External loss function in Tensorflow
我有一個簡單的2層密集型NN,我想使用回歸模型來計算4個給定的~ 700
個圖像特征。 不幸的是,我沒有基本事實要素,因此我使用自定義損失函數。 這是函數的來源:
def loss_function(logits, img, g, compare_img):
final_img = img_pipeline(vga_8b=img, g=g%external color gamma function%)
with tf.name_scope('Loss'):
loss = score(gt_image=compare_img, curr_img=final_img)
return loss
其中logits
是當前評估的4個數字,g只是一個插值函數,用作圖像的顏色伽瑪,img是外部灰度圖像,用於生成用於score
函數的最終結果圖像。 compare_img
不是真實的圖像,而是評分函數中用於評估當前生成圖像的一些統計值(kept in python dict)
。 不幸的是,我無法提供g
和compare_img
因為它們是無法轉換為張量的python函數和python字典。
有沒有辦法以某種方式破解它並達到預期的結果?
提前致謝!
您可以在帶有tf.map的tf.map
使用外部函數,但我要說的是,這些函數無法通過它計算梯度。 但是損失函數在每種情況下都必須是可導出的。 因此您必須在tensorflow中編寫函數。
對於您的dict值,您可以使用
table = tf.contrib.lookup.HashTable( tf.contrib.lookup.KeyValueTensorInitializer(keys, values), -1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.