gpt4 book ai didi

matrix - 如何在 Keras 中实现矩阵乘法?

转载 作者:行者123 更新时间:2023-12-04 07:39:36 27 4
gpt4 key购买 nike

我只想实现一个函数,给定矩阵 X 返回 X (X^T*X) 的协方差矩阵,这只是一个简单的矩阵乘法。

在 Tensorflow 中它会很容易: tf.matmul(X, tf.transpose(X))

但是没想到跟Keras是个噩梦。 Keras 中的 API 像乘法和点不符合我的要求。我也尝试了不同的方法(Lambda 层并与 TF 操作混合)但仍然失败,发生了很多错误。

希望有人可以帮忙。谢谢。

最佳答案

实际上,您在 Keras 中确实有类似的东西。试试 dot(x, transpose(x)) .

下面是比较两个平台的工作示例。

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


def cov_tf(x_val):
x = tf.constant(x_val)
cov = tf.matmul(x, tf.transpose(x))
return cov.eval(session=tf.Session())

def cov_keras(x_val):
x = K.constant(x_val)
cov = K.dot(x, K.transpose(x))
return cov.eval(session=tf.Session())

if __name__ == '__main__':
x = np.random.rand(4, 5)
delta = np.abs(cov_tf(x) - cov_keras(x)).max()
print('Maximum absolute difference:', delta)

打印出最大绝对差异并给我一些关于 1e-7 的信息.

关于matrix - 如何在 Keras 中实现矩阵乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43754870/

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