Python 这是什么样的整形?为什么要使用它?

Python 这是什么样的整形?为什么要使用它?,python,numpy,Python,Numpy,很抱歉问了一个很不明智的问题。一段时间以来,我一直在努力寻找答案 因此,我浏览了一本关于“卷积神经网络”的指南,发现它使用了一个numpy。重塑函数,如下所示: testX.reshape([-1, 28, 28, 1]) 这对我来说是中国式的,因为我无法想象它与四维空间有关,也无法想象它是某种反向函数 编辑:这是函数的上下文。现在我甚至不确定它是否是numpy函数: import tflearn.datasets.mnist as mnist X, Y, testX, testY = mni

很抱歉问了一个很不明智的问题。一段时间以来,我一直在努力寻找答案

因此,我浏览了一本关于“卷积神经网络”的指南,发现它使用了一个
numpy。重塑
函数,如下所示:

testX.reshape([-1, 28, 28, 1])
这对我来说是中国式的,因为我无法想象它与四维空间有关,也无法想象它是某种反向函数

编辑:这是函数的上下文。现在我甚至不确定它是否是numpy函数:

import tflearn.datasets.mnist as mnist
X, Y, testX, testY = mnist.load_data(one_hot=True)
X = X.reshape([-1, 28, 28, 1])
testX = testX.reshape([-1, 28, 28, 1])
在您的示例(MNIST)中,
[-1,28,28,1]
代表

[training_examples, hight, width, channels]
-1对于培训示例,由于数字未知,因此高度和宽度应清晰

通道数:灰度图片使用1个通道,RBG使用3个通道。 因为MNIST有灰度图片,所以这里有1(值从0到256)。

在示例(MNIST)中,
[-1,28,28,1]
代表

[training_examples, hight, width, channels]
-1对于培训示例,由于数字未知,因此高度和宽度应清晰

通道数:灰度图片使用1个通道,RBG使用3个通道。
因为MNIST有灰度图片,所以这里有1个(值从0到256)。

我假设您使用的是MNIST,或者类似的数据集,包含一组28 x 28的图像。也许这些图像以784长度的数组呈现

x = []
for _ in range(10):
    x.append(range(28 ** 2))
np.array(x).reshape([-1, 28, 28, 1])
这将把你的数据集转换成一组
28 x 28 x 1
矩阵,如果你试图学习一幅
28 x 28
且只有一种颜色的图像,这将非常有用

它还将确定您有
10个
图像,并将数组转换为
10个矩阵
,形状为
28 x 28 x 1

np.array(x).reshape([-1, 28, 28, 1]).shape == (10, 28, 28, 1)
它之所以是
28 x 28 x 1
而不是
28 x 28
,是因为有时这是一种更清晰的方式来解释有
28 x 28
正方形和单一颜色。如果让您感到困惑,则无需添加一维宽度,您也可以轻松地将其映射到具有形状的矩阵
28 x 28
。但是,假设您有一个彩色图像数据集,您可能会将其映射到
28 x 28 x 3
,以指示它是一个带有
28 x 28
正方形的图像,并且每个正方形都有三种颜色的值


因此,它是一组
-1
图像,其中
-1
意味着计算图像的正确数量
(10)
,每个图像都有
28*28
值,并给每个值赋予它自己的维度
(1)
我假设您正在使用MNIST,或者类似的数据集,包含一组28 x 28的图像。也许这些图像以784长度的数组呈现

x = []
for _ in range(10):
    x.append(range(28 ** 2))
np.array(x).reshape([-1, 28, 28, 1])
这将把你的数据集转换成一组
28 x 28 x 1
矩阵,如果你试图学习一幅
28 x 28
且只有一种颜色的图像,这将非常有用

它还将确定您有
10个
图像,并将数组转换为
10个矩阵
,形状为
28 x 28 x 1

np.array(x).reshape([-1, 28, 28, 1]).shape == (10, 28, 28, 1)
它之所以是
28 x 28 x 1
而不是
28 x 28
,是因为有时这是一种更清晰的方式来解释有
28 x 28
正方形和单一颜色。如果让您感到困惑,则无需添加一维宽度,您也可以轻松地将其映射到具有形状的矩阵
28 x 28
。但是,假设您有一个彩色图像数据集,您可能会将其映射到
28 x 28 x 3
,以指示它是一个带有
28 x 28
正方形的图像,并且每个正方形都有三种颜色的值


因此,它是一组
-1
图像,其中
-1
意味着计算图像的正确数量
(10)
,每个图像都有
28*28
值,并给每个值赋予它自己的维度
(1)

a-1作为参数意味着“选择正确的数字以保留总数组大小”,我看得出来。但是这个函数应该对你输入的2d数组做什么呢?你真的正确复制了参数吗?在我看来,numpy.reforme需要一个int或元组。该函数将把N个元素的数组重新组织为N/(28*28)28x28x1立方体。a-1作为参数意味着“选择正确的数字以保留总数组大小”。好的,是的,我可以看到。但是这个函数应该对你输入的2d数组做什么呢?你真的正确复制了参数吗?在我看来,numpy.reforme需要一个int或tuple。该函数将把N个元素的数组重新组织为N/(28*28)28x28x1立方体。就是这样!非常感谢。就这样!非常感谢。