不能直接用数组的随机打乱操作
np.random.shuffle(array)
因为需要保证训练集的x和y标签保持一一对应关系,因此采用
# 方法1
num_examples = X_train.shape[0]
indices = list(range(num_examples))
random.shuffle(indices)
X_train, y_train = X_train[indices], y_train[indices]
# 方法2
shuffle_index = np.random.permutation(60000)
X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]
np.random.permutation(6000) 在将[0,6000)中的数随机排列,并返回数组
后面将重新赋给_train 打乱后的下标即可。