我在使用Python,我有一个长度为784的列表(这是从一张28×28的图像中提取的),现在我想将其重新排列,以便在TensorFlow中使用,并应用一个已训练的模型,但问题是神经网络需要一个形状为28×28的数组,而我当前的数组形状是(784,)。
我尝试使用一些for循环来实现这一点,但没有成功创建一个能够完成此任务的系统,请帮助我。
我发现我需要使用这样的结构
for i in range(res): for a in range(0,res): mnistFormat.append(grascalePix[a]) #mnistFormat是一个初始为空的列表#而grascale包含我的784个灰度像素
但我无法确定在for循环的range函数中应该使用什么值来实现这一点
例如,假设我有一个4×4图像的像素列表>
grayscalePix = [255,255,255,255,255,100,83,200,255,50,60,255,30,1,46,255]
这是一个按行排列的表示方式,这意味着前4个元素是第一行
我想将它们排列成形状为(4,4)的列表mnistFormat = [255,255,255,255],[255,100,83,200],[255,50,60,255],[30,1,46,255]
请记住,这只是一个示例,实际数据有784个元素,我在使用numpy方面经验不多
回答:
numpy可以非常轻松地帮助你解决这个问题:
mnistFormat = np.array(grascalePix).reshape((np.sqrt(len()),-1))