2016-06-13 67 views
1

我有一個問題,即輸入X可以有多個正確答案創建張量,其中每個輸入可以有多個答案

X1 -> Y1 
X1 -> Y2 
X1 -> Y3 
X2 -> Y2 
X2 -> Y4 
X3 -> Y1 

這裏X1具有(Y1,Y2,Y3)作爲標記,X2具有(Y2 ,Y4)作爲標籤。

如果我們創建了一個MLP它預測

# tf Graph input                          
x = tf.placeholder("float", [None, n_input]) 
y = tf.placeholder("float", [None, n_classes]) 

# Construct model                         
pred = multilayer_perceptron(x, activation_fn, weights, biases, dbg) 

# Define loss and optimizer                       
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y)) 

這裏,成本函數比較與Y向量的X向量的模型預測。

我在檢查是否該模型可以預測任何輸入的任何正確標籤。給定X1,如果模型預測(Y1或Y2或Y3),我很好。我怎樣才能爲此構建問題?

+0

Calc的所有費用(Y對Y1和Y對Y2等等),然後取這些成本的最小值 – friesel

回答

0

我認爲有多個標籤如X1 -> Y1, X1 -> Y2可能會傷害您的模型。如果任何正確的標籤是正確的,那麼只需使用一個標籤輸入功能:X1->Y1

如果你沒有太多的標籤,你可以把它們組合爲好:

Z1: Y1, Y2, Y3 
Z2: Y2, Y4 

然後,您可以輸入功能只有一個標籤:

X1-> Z1 
X2-> Z2 
+0

我知道多個標籤可能會傷害模型。我想嘗試一下。我可以用線性來做。儘管組合是可能的,但我的數據中組合太多了。請注意組合比他們中的任何一個都更嚴格。我希望X1的標籤是Y1或Y2或Y3。 Z1更嚴格 – trialcritic

+0

@trialcritic聽起來不錯。你也可以嘗試所有的想法,看看哪一個是最好的。請讓我知道結果。 –

+0

@Sung_Kim我盡我所能來做到這一點,不能。有什麼建議麼?如果我有一個飼料字典張量,我不能更新張量的每一行。 – trialcritic