我想对keras.datasets库中存在的CIFAR-10数据集的60000个观察值进行随机化。我知道对于构建神经网络来说,它可能不是那么重要,但我是Python新手,我想学习用这种编程语言处理数据。
因此,要导入数据集,我运行以下命令
from keras.datasets import cifar10
(X_train, Y_train), (X_test, Y_test) = cifar10.load_data()
这会自动给出训练集和测试集的默认细分;但我想混合它们。我想到的步骤是:
但也许有一种更快的方法可以做到这一点。
我尝试了几个小时的不同方法,但我什么也没能做到。有人能帮帮我吗?我真的很感激,谢谢。
发布于 2018-12-12 05:31:01
您可以使用sklearn.model_selection.train_test_split
拆分数据。如果您想在每次运行代码时使用相同的随机化索引选择,则可以设置random_state
值,这样每次都会有相同的测试/训练拆分。
from keras.datasets import cifar10
(X_train, Y_train), (X_test, Y_test) = cifar10.load_data()
# View first image
import matplotlib.pyplot as plt
plt.imshow(X_train[0])
plt.show()
import numpy as np
from sklearn.model_selection import train_test_split
# Concatenate train and test images
X = np.concatenate((X_train,X_test))
y = np.concatenate((Y_train,Y_test))
# Check shape
print(X.shape) # (60000, 32, 32, 3)
# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=10000, random_state=1234)
# Check shape
print(X_train.shape) # (50000, 32, 32, 3)
# View first image
plt.imshow(X_train[0])
plt.show()
https://stackoverflow.com/questions/53731141
复制相似问题