如何调整数组形状适配Keras模型,将Y从(432,24,1)转为(432,2)
核心前提
NumPy的reshape仅支持总元素数不变的形状转换,你当前的Y数组形状为(432,24,1),总元素数为432*24*1=10368,目标形状(432,2)的总元素数为864,二者元素总量不匹配,因此无法直接通过reshape实现,需要先对每个样本对应的24个元素做裁剪/聚合操作,常见的实现方案如下:
方案1:之前对Y的reshape操作有误,本身Y的标签就是每个样本对应2个值
如果你的原始Y数据里,前864个元素就是432个样本对应的2维标签,直接调整初始截取和reshape逻辑即可:
Y = np.array(Y[0:864]).reshape(432, 2)
方案2:需要从每个样本的24个元素中提取2个值作为标签
取每个序列的前2个元素
直接切片去掉最后一个维度,同时截取前2个位置的元素:
Y = Y[:, :2, 0] # 输出形状:(432, 2)
取每个序列的最后2个元素
Y = Y[:, -2:, 0] # 输出形状:(432, 2)
对24个元素做聚合得到2维统计值(比如统计0和1的出现次数)
如果你的标签是基于24个序列值的统计结果,可以用向量化操作实现:
# 统计每个样本中0和1的数量,输出形状为(432,2) Y = np.hstack([np.sum(Y == 0, axis=1), np.sum(Y == 1, axis=1)])
内容的提问来源于stack exchange,提问作者Lash
相关产品推荐
相关产品推荐

