gpt4 book ai didi

tensorflow - 为什么我们在将数据输入 tensorflow 之前将其展平?

转载 作者:行者123 更新时间:2023-12-05 00:15:22 35 4
gpt4 key购买 nike

我正在关注 udacity MNIST tutorial而MNIST数据原来是28*28矩阵。然而,在提供该数据之前,他们将数据展平为具有 784 列的一维数组 (784 = 28 * 28) .

例如,
原始训练集形状为 (200000, 28, 28)。
200000 行(数据)。每个数据为28*28矩阵

他们将其转换为形状为 (200000, 784) 的训练集

有人可以解释为什么他们在提供给 tensorflow 之前将数据展平吗?

最佳答案

因为当你添加一个全连接层时,你总是希望你的数据是一个(1 或)2 维矩阵,其中每一行是代表你的数据的向量。这样,全连接层只是您的输入(大小为 (batch_size, n_features) )和权重(形状为 (n_features, n_outputs) )(加上偏置和激活函数)之间的矩阵乘法,您会得到形状为 (batch_size, n_outputs) 的输出。另外,你真的不需要全连接层中的原始形状信息,所以丢失它也可以。

如果不先整形就得到相同的结果会更复杂,效率也会更低,这就是为什么我们总是在全连接层之前这样做。相反,对于卷积层,您需要将数据保留为原始格式(宽度、高度)。

关于tensorflow - 为什么我们在将数据输入 tensorflow 之前将其展平?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44572141/

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