Python 在来自目录的ImageDataGenerator流中将两个类视为一个

Python 在来自目录的ImageDataGenerator流中将两个类视为一个,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我目前正在使用TensorFlow提供的数据生成器,我想通过将我的多类分类问题转化为二进制问题来进行一些测试 我当前的文件夹布局如下: data/ ├── 0/ <-- folder containing images of class 0 ├── 1/ └── 2/ 当然,我还有一个验证子集。尽管如此,我仍在努力找出如何实现它,因此我将类1和2视为一个单独的类,而不操纵实际的数据或文件夹结构 我找到了一种方法来选择要专门使用的类,但文档中有这种方法。我希望以下内容可以帮助您: tra

我目前正在使用TensorFlow提供的数据生成器,我想通过将我的多类分类问题转化为二进制问题来进行一些测试

我当前的文件夹布局如下:

data/
├── 0/  <-- folder containing images of class 0
├── 1/
└── 2/
当然,我还有一个验证子集。尽管如此,我仍在努力找出如何实现它,因此我将类1和2视为一个单独的类,而不操纵实际的数据或文件夹结构


我找到了一种方法来选择要专门使用的类,但文档中有这种方法。

我希望以下内容可以帮助您:

train_datagen = ImageDataGenerator(rescale=1./255, validation_split=0.5)

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(input_size, input_size),
    batch_size=batch_size,
    class_mode='categorical',
    subset='training')

def transform_classes(args):
    """
    data/0/ -> 0
    data/1/ -> 1
    data/2/ -> 1
    """
    new_classes = np.array([0,1,1])
    x,y = args
    y = np.argmax(y, axis=1) # One hot to integer
    y = new_classes[y] # Changing the target
    y = np.eye(2)[y] # Going back to one hot 
    return x,y

train_generator = map(transform_classes, train_generator)

这个答案背后的想法是,
train\u datagen.flow\u from\u directory
将返回一个python生成器,我们可以使用
map
进行转换,我希望以下内容可以帮助您:

train_datagen = ImageDataGenerator(rescale=1./255, validation_split=0.5)

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(input_size, input_size),
    batch_size=batch_size,
    class_mode='categorical',
    subset='training')

def transform_classes(args):
    """
    data/0/ -> 0
    data/1/ -> 1
    data/2/ -> 1
    """
    new_classes = np.array([0,1,1])
    x,y = args
    y = np.argmax(y, axis=1) # One hot to integer
    y = new_classes[y] # Changing the target
    y = np.eye(2)[y] # Going back to one hot 
    return x,y

train_generator = map(transform_classes, train_generator)

这个答案背后的想法是,
train\u datagen.flow\u from\u directory
将返回一个python生成器,我们可以使用
map

进行转换欢迎来到StackOverflow,感谢您的回答!很好的开始方式。欢迎来到StackOverflow,谢谢你的回答!开始的好方法。