gpt4 book ai didi

tensorflow - 如何为 keras 层编写 lambda 函数,用于向量矩阵乘法

转载 作者:行者123 更新时间:2023-11-30 09:39:57 25 4
gpt4 key购买 nike

对于 dot(),它采用点积,数学上定义为:a.b = sum(a_i * b_i),但是如何在 keras 中编写 lambda 函数,其中 a*b=product (a_i * b_i)并将此输入转发到下一层

最佳答案

您可以执行以下操作。本质上,我们正在对 (None, 10) 大小的输入和 (10,20) 大小的输入进行乘法运算。这会产生 (None, 20) 大小的输出。

import numpy as np
import tensorflow as tf
import tensorflow.keras.backend as K

inp1 = tf.keras.layers.Input(shape=(10,))
inp2 = tf.keras.layers.Input(batch_shape=(10,20))
prod_out = tf.keras.layers.Lambda(lambda x: K.dot(K.prod(x[0],axis=1, keepdims=True), K.prod(x[1],axis=0, keepdims=True)))([inp1, inp2])
model = tf.keras.models.Model([inp1,inp2], prod_out)
model.summary()

关于tensorflow - 如何为 keras 层编写 lambda 函数,用于向量矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59463431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com