相关疑难解决方法(0)

Keras、Tensorflow:将两个不同的模型输出合并为一个

我正在研究一个深度学习模型,我试图将两个不同模型的输出结合起来:

整体结构是这样的:

在此处输入图片说明

所以第一个模型采用一个矩阵,例如 [ 10 x 30 ]

#input 1
input_text          = layers.Input(shape=(1,), dtype="string")
embedding           = ElmoEmbeddingLayer()(input_text)
model_a             = Model(inputs = [input_text] , outputs=embedding)
                      # shape : [10,50]
Run Code Online (Sandbox Code Playgroud)

现在第二个模型需要两个输入矩阵:

X_in               = layers.Input(tensor=K.variable(np.random.uniform(0,9,[10,32])))
M_in               = layers.Input(tensor=K.variable(np.random.uniform(1,-1,[10,10]))

md_1               = New_model()([X_in, M_in]) #new_model defined somewhere
model_s            = Model(inputs = [X_in, A_in], outputs = md_1)
                     # shape : [10,50]
Run Code Online (Sandbox Code Playgroud)

我想让这两个矩阵像在 TensorFlow 中一样可训练,我能够通过以下方式做到这一点:

matrix_a = tf.get_variable(name='matrix_a',
                           shape=[10,10],
                           dtype=tf.float32,
                                 initializer=tf.constant_initializer(np.array(matrix_a)),trainable=True)
Run Code Online (Sandbox Code Playgroud)

我不知道如何使这些 matrix_a 和 matrix_b 可训练,以及如何合并两个网络的输出然后给出输入。

我经历了这个 问题但找不到答案,因为他们的问题陈述与我的不同。

到目前为止我尝试过的是:

#input 1
input_text          = layers.Input(shape=(1,), dtype="string")
embedding …
Run Code Online (Sandbox Code Playgroud)

machine-learning python-3.x deep-learning keras tensorflow

8
推荐指数
1
解决办法
3759
查看次数

如何在Keras中获得自定义丢失功能的结果?

我想在Python中实现自定义丢失函数,它应该像这个伪代码一样工作:

aux = | Real - Prediction | / Prediction
errors = []
if aux <= 0.1:
 errors.append(0)
elif aux > 0.1 & <= 0.15:
 errors.append(5/3)
elif aux > 0.15 & <= 0.2:
 errors.append(5)
else:
 errors.append(2000)
return sum(errors)
Run Code Online (Sandbox Code Playgroud)

我开始像这样定义指标:

def custom_metric(y_true,y_pred):
    # y_true:
    res = K.abs((y_true-y_pred) / y_pred, axis = 1)
    ....
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得ifelse的res值.另外我想知道什么必须返回功能.

谢谢

python machine-learning loss keras tensorflow

7
推荐指数
1
解决办法
1733
查看次数