我已经训练了一个NN
,将其称为F。现在,我想使用以下损失函数来训练另一个NN
,将其称为G:||F(G(x))-y||
。我需要定义一个损失函数来计算该范数。问题是,当我定义规范时,输入对象必须是TensorFlow
类型,并且要使用F.model.predict函数评估我的F,我需要给它输入numpy
类型。
我尝试使用.eval()
函数,该函数将输入从TF类型传递到numpy
类型,但是我什么也没得到。我读到我需要定义一个会话,但是我不知道我做的是否正确。
我将代码发布到定义损失函数的位置。
谢谢!
import tensorflow as tf
import keras.backend.tensorflow_backend as K
from keras.models import load_model
def loss_function(x_true,x_pred):
sess = tf.Session()
sess.run(x_pred)
#Change from TF type to numpy
x_pred2 = x_pred.eval(session=sess)
#Evaluate the model
model = load_model('model_FOR.h5')
y_pred = model.predict(x_pred)
#Change from numpy type to TF
y_pred2 = tf.convert_to_tensor(y_pred, dtype='float32')
loss = K.mean(K.square( y_pred2 - x_true ))
return loss