如何使用tensorflow在X\u列、y\u列、X\u测试、y\u测试中分割图像数据集?

如何使用tensorflow在X\u列、y\u列、X\u测试、y\u测试中分割图像数据集?,tensorflow,image-processing,keras,artificial-intelligence,Tensorflow,Image Processing,Keras,Artificial Intelligence,如何将图像数据拆分为X_列、Y_列、X_测试和Y_测试 我将keras与tensorflow后端一起使用 谢谢。您不必使用tensorflow或keras来分割数据集。 如果已安装sklearn软件包,则可以简单地使用它: from sklearn.model_selection import train_test_split X = ... Y = ... x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0

如何将图像数据拆分为X_列、Y_列、X_测试和Y_测试

我将keras与tensorflow后端一起使用


谢谢。

您不必使用tensorflow或keras来分割数据集。 如果已安装sklearn软件包,则可以简单地使用它:

from sklearn.model_selection import train_test_split
X = ...
Y = ...
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2)
您也可以出于同样的目的使用numpy:

import numpy
X = ...
Y = ...
test_size = 0.2
train_nsamples = (1-test_size) * len(Y)
x_train, x_test, y_train, y_test = X[:train_nsamples,:], X[train_nsamples:, :], Y[:train_nsamples, ], Y[train_nsamples:,]

祝你好运

例如,您有这样的文件夹

full_dataset
|--horse (40 images)
|--donkey (30 images)
|--cow ((50 images)
|--zebra (70 images)
第一条路

import glob
horse = glob.glob('full_dataset/horse/*.*')
donkey = glob.glob('full_dataset/donkey/*.*')
cow = glob.glob('full_dataset/cow/*.*')
zebra = glob.glob('full_dataset/zebra/*.*')

data = []
labels = []

for i in horse:   
    image=tf.keras.preprocessing.image.load_img(i, color_mode='RGB', 
    target_size= (280,280))
    image=np.array(image)
    data.append(image)
    labels.append(0)
for i in donkey:   
    image=tf.keras.preprocessing.image.load_img(i, color_mode='RGB', 
    target_size= (280,280))
    image=np.array(image)
    data.append(image)
    labels.append(1)
for i in cow:   
    image=tf.keras.preprocessing.image.load_img(i, color_mode='RGB', 
    target_size= (280,280))
    image=np.array(image)
    data.append(image)
    labels.append(2)
for i in zebra:   
    image=tf.keras.preprocessing.image.load_img(i, color_mode='RGB', 
    target_size= (280,280))
    image=np.array(image)
    data.append(image)
    labels.append(3)

data = np.array(data)
labels = np.array(labels)

from sklearn.model_selection import train_test_split
X_train, X_test, ytrain, ytest = train_test_split(data, labels, test_size=0.2,
                                                random_state=42)
第二条路

image_generator = ImageDataGenerator(rescale=1/255, validation_split=0.2)    

train_dataset = image_generator.flow_from_directory(batch_size=32,
                                                 directory='full_dataset',
                                                 shuffle=True,
                                                 target_size=(280, 280), 
                                                 subset="training",
                                                 class_mode='categorical')

validation_dataset = image_generator.flow_from_directory(batch_size=32,
                                                 directory='full_dataset',
                                                 shuffle=True,
                                                 target_size=(280, 280), 
                                                 subset="validation",
                                                 class_mode='categorical')

第二种方式的主要缺点是,不能用于显示图片。如果写入
验证\u数据集[1]
,则会出错。但如果我使用第一种方法,它会起作用:
xu测试[1]

这能回答你的问题吗?请提供X。。还有Y。。解释代码我是初学者,如何对分类数据进行编码等,以便我可以传递给keras并应用数据扩充如果我有100个类,第一种方法如何实现自动化请帮助我很抱歉我不知道,请使用第二种方法我有csv文件?好的,谢谢