我在包含多個尺寸圖像的數據集上訓練/測試ML模型。我知道Keras允許我們使用target_size
參數提取固定大小的隨機補丁:用Keras提取同一圖像的多個補丁
gen = ImageDataGenerator(width_shift_range=.9, height_shift_range=.9)
data = gen.flow_from_directory('/path/to/dataset/train',
target_size=(224, 224),
classes=10,
batch_size=32,
seed=0)
for _ in range(data.N // data.batch_size):
X, y = next(data)
對於每次迭代,X
包含32個補丁(每個不同樣品)。在所有迭代中,我可以訪問數據集中每個樣本的一個補丁。
問題:提取同一樣本的多個補丁的最佳方法是什麼?
喜歡的東西:
data = gen.flow_from_directory(..., nb_patches=10)
X, y = next(data)
# X contains 320 rows (10 patches for each 32 sample in the batch)
我知道我可以寫一個第二個for循環,並在數據集迭代多次,但是這似乎有點凌亂。我也想更強有力地保證我真的獲取樣本樣本的補丁。
一個簡單的解決辦法是在某些方面進行過採樣所需的圖像。當我在不平衡的數據集上訓練CNN模型時,我這樣做了。 –