如何调用经过训练的NN在TensorFlow中训练另一个NN?

时间:2019-05-23 08:34:15

标签: python tensorflow

我已经训练了一个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

0 个答案:

没有答案