Как я могу получить значения Tensor из бэкэнда keras? - PullRequest
0 голосов
/ 05 августа 2020

Я хочу настроить функцию потерь с бэкендом keras, но у меня возникла проблема. Сначала я хочу получить значения тензора, а затем я хочу выполнить операции numpy с этими значениями и вернуть эти пользовательские значения numpy. Как мне это сделать?

Я пробовал использовать некоторые бэкэнд-функции, такие как keras.backend.eval () или keras.backend.get_value (), но они потерпели неудачу. Tensorflow или keras говорят, что объект «Tensor» не имеет атрибута «_ numpy» или не может получить значение внутри графической функции Tensorflow. Как я могу решить эту проблему?

Спасибо за помощь, с уважением

def my_metric(y_true,y_pred): #I want to get y_true value and then make numpy
    value_print= K.print_tensor(y_true, message='y_true = ')#this is work it 
    prints tensor values

    var1=(tf.keras.backend.batch_get_value(y_true))#graph function error 

    var2=tf.make_tensor_proto(result)#also it gives error 
    return K.mean((y_true-y_pred)**2) 


model=models.Sequential()
model.add(layers.Dense(784,activation="elu",input_shape=(784,),name="input_layer"))
model.add(layers.Dense(10,activation="linear",name="bottleneck"))
model.add(layers.Dense(784,activation="sigmoid",name="output_layer"))

model.compile(loss="mse",optimizer="adam",metrics=["mse",my_metric])
model.fit(x_train_normalize,x_train_normalize,batch_size=128,epochs=1)
...