Python 在来自目录的ImageDataGenerator流中将两个类视为一个
我目前正在使用TensorFlow提供的数据生成器,我想通过将我的多类分类问题转化为二进制问题来进行一些测试 我当前的文件夹布局如下: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
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,谢谢你的回答!开始的好方法。