iT邦幫忙

0

CNN的資料訓練樣本強化

cnn
  • 分享至 

  • xImage

我想要只強化訓練樣本的部分 但是我卻不確定該如何著手 是否可請各位幫忙?
https://ithelp.ithome.com.tw/upload/images/20211228/20145218DcxsVea1HN.png
https://ithelp.ithome.com.tw/upload/images/20211228/20145218wqKTHMKoUl.png
圖片資料夾
https://ithelp.ithome.com.tw/upload/images/20211228/201452181kv9vUYyeq.pnghttps://ithelp.ithome.com.tw/upload/images/20211228/20145218nG7t1dWA36.png
請各位幫幫小弟我了 雖然我不是程式設計相關本科 但會努力理解的

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
I code so I am
iT邦高手 1 級 ‧ 2021-12-29 01:04:38

不太了解要問的問題。

看更多先前的回應...收起先前的回應...

老師您好 我是參考了您的文章 關於影像資料增補(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

謝謝老師 不過目前我跑出另一個ERROR
https://ithelp.ithome.com.tw/upload/images/20211230/20145218O6p7UiReP5.png
而且我將使用的圖片檔可能是多波段的TIFF檔 ,是否受影響?

應該是,把圖片轉程JPEG,再試試看。

好的了解 謝謝

1
pepro
iT邦新手 5 級 ‧ 2021-12-29 14:33:48

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如何使用,必須花一番功夫。

你好 感謝你回答我的問題,我現在有一個其他想法 ,想直接先對原始資料檔進行水平垂直翻轉直接儲存出去資料夾,目前是有成功讀取的,卻儲存不出去,不知道您是否能幫我解惑?
https://ithelp.ithome.com.tw/upload/images/20211229/20145218Bh2RlIDJJf.png
執行完train2那個資料夾並沒有產生任何東西

pepro iT邦新手 5 級 ‧ 2021-12-29 15:52:21 檢舉

如果你要儲存可以用一些圖片處理的函式庫來幫忙
像是PIL
from PIL import Image

//假設data是你處理好的圖片,應該是np.array類型
img = Image.fromarray(data, 'RGB')
img.save('my.png')

我要發表回答

立即登入回答