python - Keras/Theano - 如何在 Lambda 层中乘以向量

标签 python nlp neural-network theano keras

我正在尝试实现一个 lambda 层,其中 lambda 层执行的函数正在执行 transpose(P)*x,其中 x 是一个数组,其中M 行,P 的每个条目为 1/M

我遇到的问题是,我无法弄清楚如何创建一个将 P 的每个条目设置为 1/M 的静态数组。我知道我可以使用为 theano 张量定义的 shape() 函数获得 M,但我不确定如何创建向量。

最佳答案

我认为你把事情过于复杂化了。如果你想与一个充满常量的矩阵相乘,你可以简单地除以一个标量,然后将其广播到你的输入矩阵上,例如

Lambda(lambda x: x / M)

其中M可以定义为

from keras import backend as K
M = K.shape(x)[0]

给予

Lambda(lambda x: x / K.shape(M)[0])

关于python - Keras/Theano - 如何在 Lambda 层中乘以向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33878321/

相关文章:

python - 如何检查句子的第一个单词是否为专有名词?

tree - 如何从一个复杂的句子中提取主要的主宾短语?

nlp - 用于 OCR 的多层感知器

tensorflow - 将现有模型以前动态的占位符尺寸设为静态

python-3.x - 使用自然语言处理从段落中提取特定类型的单词

python - 高斯过程中 'Tensor is unhashable' 的 tensorflow 概率错误

python - 如何从 numpy 数组中删除两个最小的数字并计算中位数 python 3

python - urllib.error.HTTPError : HTTP Error 502: Bad Gateway PYTHON

opencv - 足球检测和跟踪——使用 AI 技术?

python - 调用环境状态元组