2017-04-21 106 views
1

我正在尋找類似於python "numpy.where()"命令的Keras命令。基本上,我的想法是從張量中提取指數。在Python中,我可以簡單地使用f_j=(np.where(X==j)),它給出了具體indices(f_j)的值jKeras:如何從張量中找到類似於numpy.where()的特定值的索引

例如:

X= [0 1 1 0 0 2 3 ] 

f_j=(np.where(X==1)) 

f_j= [1 2] 

是有,我可以使用此目的的任何類似的功能?

我試圖在張量內寫入數組搜索。

from keras import backend as K 
value = 5 
wh = K.tf.where(K.tf.equal(x,value)) 

當你的後臺是tensorflow:不過,我打電話"if K.equal():"線時爲

TypeError: Using a tf.Tensor as a Python bool is not allowed. Use if t is not None: instead of if t: to test if a tensor is defined, and use TensorFlow ops such as tf.cond to execute subgraphs conditioned on the value of a tensor.

def loss(y_true, y_pred: 

b=K.equal(y_true,0) 

b=K.cast(b,dtype='float32') 

for i in range(0,5): 

if K.equal(b[i],1): 

........ 

y_true = [0 1 1 0 0 2 3 ] 
+0

如果if條件得到滿足,你想要做什麼? – putonspectacles

+0

我想找到等於數字的索引。如實施例: y_true = [0 1 1 0 0 2 3] 對於i在範圍(0,7) 一個= [] 如果y_true(ⅰ)== 1個 a.append(ⅰ) 然後a = [1,2] 我想用keras做。但是,keras布爾張量不支持if命令 – Rithmax

回答

2

你應該嘗試像結了錯誤。

希望有幫助

相關問題