gpt4 book ai didi

deep-learning - TensorFlow中矩阵乘法函数的使用

转载 作者:行者123 更新时间:2023-12-03 00:37:05 27 4
gpt4 key购买 nike

我对 TensorFlow 中函数 tf.matmul() 的使用有点困惑。不过,我的问题可能更多是关于深度学习的理论。假设您有一个输入 X 和权重矩阵 W(假设零偏差),我想将 WX 计算为输出,这可以通过 tf.matmul(W, X) 来完成。然而,在教程MNIST for beginners它被颠倒过来并使用 tf.matmul(X, W) 来代替。另一方面,在下一个教程中TensorFlow Mechanics 101 ,使用tf.matmul(W, X)。由于矩阵大小对于乘法很重要,我想知道是否有人可以澄清这个问题。

最佳答案

我想你一定是误读了《力学 101》教程 - 或者你能指出具体的一行吗?

一般来说,对于网络层,我认为输入“流经”权重。为了表示这一点,我编写了 tf.matmul(Inputs, Weights) 来生成该层的输出。然后,该输出可能会添加一个偏差 b,并将其结果馈入非线性函数(例如 relu),然后馈入另一个 tf.matmul 作为下一层的输入。

其次,请记住,可以调整权重矩阵的大小以产生多个输出。这就是为什么它是一个矩阵,而不仅仅是一个向量。例如,如果您想要两个隐藏单元并且有五个输入特征,则可以使用形状 [5, 2] 权重矩阵,如下所示(在 numpy 中显示以便于说明 - 您可以这样做 tensorflow 中同样的事情):

import numpy as np
a = np.array([1, 2, 3, 4, 5])
W = np.array([[.5, .6], [.7, .8], [.9, .1], [.2, .3], [.4, .5]])

>>> np.dot(a, W)
array([ 7.4, 6.2])

这有一个很好的行为,如果您随后将批量维度添加到 a,它仍然有效: a = np.array[[1, 2, 3, 4, 5], [6,7,8,9,0]]

>>> np.dot(a, W)
array([[ 7.4, 6.2],
[ 20.9, 17.7]])

这正是您使用 tf.matmul 从输入特征到隐藏单元,或从一层隐藏单元到另一层时所做的事情。

关于deep-learning - TensorFlow中矩阵乘法函数的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300700/

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