3
假設我有以下的張量t
爲SOFTMAX函數的輸出:Softmax矩陣到0/1(OneHot)編碼矩陣?
t = tf.constant(value=[[0.2,0.8], [0.6, 0.4]])
>> [ 0.2, 0.8]
[ 0.6, 0.4]
現在,我想這個矩陣t
轉換成類似於OneHot編碼矩陣的矩陣:
Y.eval()
>> [ 0, 1]
[ 1, 0]
我熟悉c = tf.argmax(t)
這會給我指數t
,應該是1.但從c
到Y
似乎相當困難。
我已經嘗試過使用c
被轉換t
至tf.SparseTensor
,然後使用tf.sparse_tensor_to_dense()
得到Y
。但是,這種轉換涉及相當多的步驟,而且看起來對於這項任務來說是過分的 - 我甚至沒有完成它,但我相信它可以工作。
是否有任何更適當的/簡單的方法來做這個轉換,我缺少。
我需要這個的原因是因爲我有一個Python自定義OneHot編碼器,我可以喂Y
。 tf.one_hot()
不夠廣泛 - 不允許自定義編碼。
相關問題:
這太明顯了!真的感到沮喪,因爲沒有看到更快。我認爲你是對的。雖然'tf.one_hot()'是爲了分類,而不是爲索引分配1,但它似乎實際上做了後者(從我的有限測試中)以及指定深度。謝謝! –