Sha*_*sai 9 python machine-learning neural-network deep-learning keras
我有兴趣在Keras中使用ImageDataGenerator进行数据扩充.但它要求具有类子目录的训练和验证目录分别如下所示(这来自Keras文档).我有一个目录,包含2个子目录(2个类(Data/Class1和Data/Class2).如何将其随机分成训练和验证目录
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(150, 150),
batch_size=32,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
'data/validation',
target_size=(150, 150),
batch_size=32,
class_mode='binary')
model.fit_generator(
train_generator,
steps_per_epoch=2000,
epochs=50,
validation_data=validation_generator,
validation_steps=800)
Run Code Online (Sandbox Code Playgroud)
我有兴趣通过随机训练和验证数据拆分多次重新运行我的算法.
Sha*_*sai 11
感谢你们!我能够编写自己的函数来创建训练和测试数据集.这是任何正在寻找的人的代码.
import os
source1 = "/source_dir"
dest11 = "/dest_dir"
files = os.listdir(source1)
import shutil
import numpy as np
for f in files:
if np.random.rand(1) < 0.2:
shutil.move(source1 + '/'+ f, dest11 + '/'+ f)
Run Code Online (Sandbox Code Playgroud)
小智 7
/sf/answers/3666042971/提供了最简单的方法:ImageDataGenerator 现在支持从具有子目录的单个目录直接拆分为 train/test。
这是直接从该答案中复制的,没有任何更改。我不相信。我试过了,效果很好。
请注意,train_data_dir在train_generator和中是相同的validation_generator。如果你想有一个三路分离(火车/测试/有效)使用ImageDataGenerator,源代码将需要进行修改---有很好的指示在这里。
train_datagen = ImageDataGenerator(rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
validation_split=0.2) # set validation split
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary',
subset='training') # set as training data
validation_generator = train_datagen.flow_from_directory(
train_data_dir, # same directory as training data
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary'
subset='validation') # set as validation data
model.fit_generator(
train_generator,
steps_per_epoch = train_generator.samples // batch_size,
validation_data = validation_generator,
validation_steps = validation_generator.samples // batch_size,
epochs = nb_epochs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7471 次 |
| 最近记录: |