์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- dfs
- ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ
- ์๊ณ ๋ฆฌ์ฆ
- tensorflow
- ๊ฐ๋์ ๋ง๋ก
- c++
- ํ๋ก์ด๋ ์์ฌ
- ์กฐํฉ๋ก
- ๊ฐ๋์_๋ง๋ก
- ๋ถํ ์ ๋ณต
- lazy propagation
- object detection
- 2023
- dropout
- ๋๋น ์ฐ์ ํ์
- BFS
- ์๋ฐ์คํฌ๋ฆฝํธ
- Overfitting
- back propagation
- NEXT
- ์ด๋ถ ํ์
- ์ฐ์ ์์ ํ
- ๋ฏธ๋๋_ํ์ฌ์_๊ณผ๊ฑฐ๋ก
- DP
- ๋ฐฑํธ๋ํน
- ๋ฌธ์์ด
- ํ๊ณ ๋ก
- pytorch
- ๋ค์ต์คํธ๋ผ
- ํฌ๋ฃจ์ค์นผ
- Today
- Total
Doby's Lab
Normalization, uint8 -> float64 RAM, ๋ฐํ์ ๋ค์ด๋๋ ํ์ ๋ณธ๋ฌธ
Normalization, uint8 -> float64 RAM, ๋ฐํ์ ๋ค์ด๋๋ ํ์
๋๋น(Doby) 2022. 12. 25. 17:27๐ค Problem
์ด๋ฏธ์ง ๋ฐ์ดํฐ์
์ ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ Min Max Scaling ๋ฐฉ๋ฒ์ ํตํด Normalization์ ํด์ฃผ๋ ค ํ์ต๋๋ค.
์ด๋ฏธ์ง Dataset์ด๊ธฐ ๋๋ฌธ์ min๊ฐ๊ณผ max๊ฐ์ด ๊ฐ๊ฐ 0, 255์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์
์ 255.0์ ๋๋์ด์ฃผ๋ฉด ๋์ฃ .
(+255.0์ผ๋ก ๋๋๋ ์ด์ ๋ 255.0์ผ๋ก ๋๋์ผ๋ก์จ int type์์ float type์ผ๋ก type casting์ด ๋๊ธฐ ๋๋ฌธ์
๋๋ค.)
์ฆ, ์ฝ๋๋ก ๋ํ๋ด๋ฉด ์ด๋ฐ ์์ผ๋ก ํด์ฃผ๋ฉด ๋๊ฒ ์ฃ .
def minmax_scaler(dataset)
dataset = dataset / 255.0
return dataset
์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์์คํ
RAM์ ๋ชจ๋ํฐ๋งํด๋ณด๋ฉด RAM์ด ์ด๊ณผ๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
RAM์ด ์ด๊ณผ๋จ์ ๋ฐ๋ผ์ ๋ฐํ์๋ ๋ค์ด๋์ด ๋ฒ๋ฆฝ๋๋ค.
๐ Solution
๊ธฐ์กด์ ๋ฐ์ดํฐ์
์ ์ด๋ฏธ์ง์ ํฝ์
๊ฐ๋ค์ ์ ๋ถ ๋ด๊ณ ์์ต๋๋ค. ํฝ์
๊ฐ์ ๋ฒ์๋ 0 ~ 255์
๋๋ค.
ํฝ์
๊ฐ์ ๋ฒ์์ ๋ฐ๋ผ ๋ฐ์ดํฐ์
์ uint8 type์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
Min Max Scaling์ ํ๋ฉด์ 255.0์ผ๋ก ๋๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์
์ float64 type์ผ๋ก ๋ฐ๋๋๋ค.
์ด์ ๋ฐ๋ผ ํ๋์ ํฝ์
๋น 8 bit๋ง ์ฌ์ฉํ๊ณ ์์๋๋ฐ 64bit๋ก ๋ฐ๋๋ฉด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ์ก์๋จน๊ฒ ๋๋ ๊ฒ์
๋๋ค.
๋ฉ๋ชจ๋ฆฌ๊ฐ 8๋ฐฐ๋ ๋์ด๋๋ฉด์ 8,000์ฅ์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ์
์ ์ฝ 4.19GB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค.
์ด์ ๋ฐ๋ผ ๋ฐ์ดํฐ์
์ ๋ถ์ฐ์ ์ผ๋ก ๋๋์ด ๊ฐ์ ธ์์ผ ํฉ๋๋ค.
๋ถ์ฐ์ ์ผ๋ก ๋๋์ด ๊ฐ์ ธ์ค๋ฉด์ Normalization์ ํ๊ณ , ๋ถ๋ถ ๋ฐ์ดํฐ์
์ ๋ฒ๋ ค์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ์
์ ๋ฒ๋ฆฌ๋(= ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น์ฐ๋) ๋ฐฉ๋ฒ์ ํ์ด์ฌ์์๋ del์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ง์๋ฒ๋ฆฌ๋ ํค์๋๋ฅผ ์ด์ฉํ๋ฉด ๋ฉ๋๋ค.
์ฝ๋๋ฅผ ์๋์ฒ๋ผ ์ง์ฃผ๋ฉด ๋ฐํ์์ด ๋ค์ด๋๋ ์ด์๋ ํด๊ฒฐํ ์ ์์ต๋๋ค.
dataset = []
for dataset_pt_path in dataset_path:
dataset_pt = np.load(dataset_pt_path, allow_pickle=True)
for x in dataset_pt:
dataset.append(minmax_scaler(x))
del dataset_pt_scaled
dataset = np.array(dataset)
์ฆ, ๋ฐ์ดํฐ์ ์ ๋ถ์ฐ์ ์ผ๋ก ๋ก๋ํ์ฌ ๋ก๋ํ ๋ถ๋ถ ๋ฐ์ดํฐ์ ์ ์ฌ์ฉ ํ(= fit), del ํค์๋๋ฅผ ํตํด ์ญ์ ํ๋ฉด ๋ฉ๋๋ค.
๐ Reference
How to prevent RAM from filling up in image Classification (DL)
I am new in ML and have a problem. I have 10000 images (300,300)px. I want to give them into the DL model for classification. but my problem is when I Normalize the images (convert each image from ...
stackoverflow.com
'Code about AI > tensorflow' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
tf.data.Dataset & tf.data.Dataset์ ์ ์ฉํ Methods (0) | 2023.08.17 |
---|---|
tensorflow์ ImageDataGenerator (0) | 2023.01.11 |
steps_per_epoch, validation_steps (tensorflow model.fit์ Argument) (0) | 2023.01.10 |
Tensorflow์ Callback(EarlyStopping, ReduceLROnPlateau) (0) | 2023.01.03 |
Dataset Shuffle์ ํด์ผ ํ๋ ์ด์ (0) | 2022.12.25 |