扩展维度

Extending dimensions

从 tensorflow returns ndarry (x_train, y_train), (x_test, y_test) 加载数据,其中数据的形状为 (num_samples, 3, 32, 32) 我想扩展此形状以包含另一个维度以具有 [num_classes, num_samples, im_height, im_width, im_channels].

例如,对于 Cifar100,x_train.shape 应该是 (100,50000, 32, 32, 3)

我尝试像 x_train = np.reshape(x_train, (100, len(x_train), 32,32,1)) 那样重塑,但这不起作用。添加新轴也不能解决问题。

您无法重新整形,因为元素总数不同。

您需要创建一个新数组并以您需要的任何模式复制数据。例如:

new_x_train = np.empty((100, 50000, 32, 32, 3), x_train.dtype)
new_x_train[:] = x_train # 100 copies of x_train using broadcasting

或者,等价地:

new_x_train = np.broadcast_to(x_train, (100, 50000, 32, 32, 3))