【发布时间】:2020-03-31 23:08:23
【问题描述】:
我有两个形状为 (100,) 的张量 X 和 Z,我想创建一个形状为 (100, 100) 的张量 X x Z。
对于这个矩阵中的每个对元素,我想应用一些我已经定义的函数,即 fn(x,z) 用于矩阵中的每个可能组合。
我是 TensorFlow 的新手,我习惯于按顺序思考,在处理 numpy 数组时,每个向量上有两个 for 循环。
如何在 TensorFlow 中做到这一点?非常感谢。
【问题讨论】:
-
您希望该解决方案适用于任何功能
fn(x,z),还是您心中有一个示例?答案会改变函数是否线性可分。 -
@Lescurel 感谢您的回复。该函数本身是非线性的,用于计算 x 和 z 之间的协方差。我正在尝试计算高斯过程的协方差矩阵,因此想将其应用于矩阵形式的每一对。
-
用函数的例子给出答案会更容易。如果
fn只是简单数学函数的组合,例如fn = lambda x, z: tf.exp(tf.sin(x) / (tf.square(z) + 1)),你只需要使用像fn(tf.expand_dims(x, 1), z)这样的广播。
标签: python tensorflow