我想要只強化訓練樣本的部分 但是我卻不確定該如何著手 是否可請各位幫忙?
圖片資料夾
請各位幫幫小弟我了 雖然我不是程式設計相關本科 但會努力理解的
不太了解要問的問題。
老師您好 我是參考了您的文章 關於影像資料增補(Data Augmentation)的部分 ,想要實際應用到我的訓練樣本中,但是不是很清楚該怎麼正確使用
可以參考這一篇。
程式:https://github.com/rpeden/cat-or-not/releases
老師 不好意思 您給我的參考資料好像沒有資料增補(Data Augmentation)的部分,還是您可以跟我再提示一下該看哪一段,我目前的狀況是訓練樣本過少 想對影像進行水平反轉、垂直翻轉等資料增加預處理
水平反轉、垂直翻轉Data Augmentation 可參考:
https://www.tensorflow.org/tutorials/images/data_augmentation
# 水平反轉
flipped = tf.image.flip_left_right(image)
visualize(image, flipped)
可使用 image_dataset_from_directory 搭配 Data Augmentation 更方便:
https://www.tensorflow.org/tutorials/load_data/images
https://www.tensorflow.org/tutorials/images/data_augmentation
裡面有提到兩個方法
Option 1: Make the preprocessing layers part of your model
在你的model中增加前處理層
IMG_SIZE = 180
resize_and_rescale = tf.keras.Sequential([
layers.Resizing(IMG_SIZE, IMG_SIZE),
layers.Rescaling(1./255)
])
data_augmentation = tf.keras.Sequential([
layers.RandomFlip("horizontal_and_vertical"),
layers.RandomRotation(0.2),
])
model = tf.keras.Sequential([
# Add the preprocessing layers you created earlier.
resize_and_rescale,
data_augmentation,
layers.Conv2D(16, 3, padding='same', activation='relu'),
layers.MaxPooling2D(),
# Rest of your model.
])
Option 2: Apply the preprocessing layers to your dataset
增加前處理層到你的tfdataset
aug_ds = train_ds.map(
lambda x, y: (resize_and_rescale(x, training=True), y))
我個人認為方法一比較適合你,方法二需要理解tfdataset如何使用,必須花一番功夫。