NumPy问题:使用reshape()无法添加维度
解决Conv2D训练集维度扩展问题
你遇到的
reshape后维度未变化的问题,核心原因大概率是未将reshape结果正确赋值,或者training_images不是numpy数组类型。针对numpy数组的有效解决方法:
正确使用
reshape并赋值:# 先确保数据是numpy数组(如果原本不是的话) import numpy as np training_images = np.array(training_images) # 用-1自动计算样本数,避免手动输入出错 images = training_images.reshape(-1, 28, 28, 1) # 验证形状 print(images.shape) # 应输出(60000, 28, 28, 1)更直观的维度扩展方法:使用
np.expand_dimsimages = np.expand_dims(training_images, axis=-1) # axis=-1表示在最后一个维度添加通道,结果符合要求
单张图像的处理方式:
对于单张形状为(28,28)的图像,两种方法同样适用:# 方法一:reshape single_image = single_image.reshape(28, 28, 1) # 方法二:expand_dims single_image = np.expand_dims(single_image, axis=-1)如果你用TensorFlow框架,也可以用框架自带的方法:
import tensorflow as tf images = tf.expand_dims(training_images, axis=-1)
内容的提问来源于stack exchange,提问作者James Riley
相关产品推荐
相关产品推荐

