python - 创建自定义图像数据集时出现 numpy 数组形状的问题
问题描述
我正在尝试使用 jpg 图像为深度学习项目创建自定义数据集。我需要一批读完。使用下面的代码这样做,但我的数组形状是(100, 1, 224, 224, 3)
而不是(100,224, 224, 3)
. 有什么建议么?
path = '/content/drive/My Drive/Dataset/Training'
X=[]
for img in os.listdir(path):
pic = cv2.imread(os.path.join(path,img))
pic = cv2.cvtColor(pic,cv2.COLOR_BGR2RGB)
pic = cv2.resize(pic,(224,224))
X.append([pic])
X=np.array(X)
print(X.shape)
(100, 1, 224, 224, 3)
解决方案
从一般的角度来看,使用squeeze
fromnumpy
从张量中删除未使用的维度(具有单位长度)。
例如:
print(np.squeeze(X).shape)
给你:
(100, 224, 224, 3)
但也许在您的情况下,在第 7 行中使用就足够了X.append(pic)
(尝试检查一下)。
提示:使用时尽量避免使用列表numpy
。关于@hpaulj 评论,你可以使用concatenate
功能来numpy
代替列表:
# initialization like X = []
X = np.zeros([0]+list(pic.shape))
...
# append
X = np.concatenate((X, pic.reshape([1]+list(pic.shape))), axis=0)
推荐阅读
- amazon-web-services - Cloudfront 到 s3 重定向到子域给出访问被拒绝错误
- python - Python:提高 keras 顺序模型的准确性
- php - 我如何将数据库连接到不属于我的远程服务器(运行 phpmyadmin)
- python - 根据值从熊猫数据框中的特定位置获取最后 N 行
- android - 在模拟器上启动应用程序时出错 - Android
- sockets - 你能判断一个 UDP 数据包是否比另一个数据包“年轻”吗?
- npm - NPM 警告需要必须由自我/更新节点安装的对等依赖项
- vb.net - VB.NET TableAdapter 未定义
- python - Pyspark 将嵌套结构字段转换为 Json 字符串
- c - O_DIRECT 写子缓冲区