gpt4 book ai didi

python - 这两行代码有什么区别?机器学习阵列

转载 作者:行者123 更新时间:2023-11-30 08:42:03 24 4
gpt4 key购买 nike

所以我开始学习 ML,并且需要用 Python 进行编码。我遵循反向传播教程。因此,在其中,我遇到了将算法转变为支持矩阵乘法的问题,以便它运行得更快。以下代码来自更新偏差和权重的函数。我需要更改它,这样我就可以运行整个输入和输出矩阵,而不是一次运行每个输入输出对。小批量是一个包含 10 个元素的列表。列表中的每个元素都是两个元组,一个元组是输入,一个 784x1 大小的矩阵。另一个元组是输出,一个 10x1 大小的矩阵。我尝试将输入分组为 784x10x1 数组,然后将其转换为 784x10 数组。我通过两种方式做到了这一点,如以下代码所示:

# for clearance - batch[0] is the first tuple in the element in mini_batch, which is, as recalled, the input array.
# mini_batch[0][0] is the input array of the first element in mini_batch, which is a 784x1 array as I mentioned earlier
inputs3 = np.array([batch[0] for batch in mini_batch]).reshape(len(mini_batch[0][0]), len(mini_batch))
inputs2 = np.array([batch[0].ravel() for batch in mini_batch]).transpose()

inputs3inputs2 都是 784x10 数组,但由于某种原因,它们不相等。我不明白为什么,所以如果有人能向我解释为什么会有差异,我将非常感激。

最佳答案

>>> A = np.array([[1,2,3],[4,5,6]])
>>> A.reshape(3,2)
array([[1, 2],
[3, 4],
[5, 6]])
>>> A.transpose()
array([[1, 4],
[2, 5],
[3, 6]])

从这个简短的示例中您可以看到 A.transpose() != A.reshape(3,2)。

想象一个尺寸为 3x2 的空白矩阵。 A.reshape(3,2) 将从顶行开始从左到右读取 A(2x3 矩阵)中的值并将它们存储在空白矩阵中。使这些矩阵具有不同的值。

关于python - 这两行代码有什么区别?机器学习阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59696282/

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