Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป
๋ฐ˜์‘ํ˜•

AI study/๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ 9

[Pytorch] ํŒŒ์ดํ† ์น˜์˜ Custom dataset๊ณผ DataLoader ์ดํ•ดํ•˜๊ธฐ

1. ํŒŒ์ดํ† ์น˜์˜ Custom dataset / DataLoader 1.1 Custom Dataset ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๋ฐฉ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์˜ ์–‘ --> ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์‰ฝ์ง€ ์•Š์Œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋ถ€๋ฅด์ง€ ์•Š๊ณ  ํ•˜๋‚˜์”ฉ๋งŒ ๋ถˆ๋Ÿฌ์„œ ์“ฐ๋Š” ๋ฐฉ์‹์„ ํƒํ•ด์•ผ ํ•จ ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ๋†“๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด์˜ Dataset ๋ง๊ณ  Custom Dataset ์ด ํ•„์š”ํ•œ ๊ฒƒ 1.2 Dataset ์ด๋ž€? from torch.utils.data import Dataset, DataLoader ํŒŒ์ดํ† ์น˜์—์„œ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. dataset๊ณผ dataloader ๊ธฐ๋Šฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฏธ๋‹ˆ๋ฐฐ์น˜ ํ•™์Šต, ๋ฐ์ดํ„ฐ ์…”ํ”Œ, ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊นŒ์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠœ๋‹ํ•  ๋•Œ ์‚ฌ์šฉ (?) Dataset ํด๋ž˜์Šค๋Š” ์ „์ฒด Dataset์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ๊ณ„..

[Pytorch] ํŒŒ์ดํ† ์น˜ ๊ธฐ์ดˆ - ํ…์„œ ์†์„ฑ ์‚ดํŽด๋ณด๊ธฐ / ํ…์„œ ์—ฐ์‚ฐ

-- ๋ณธ ํฌ์ŠคํŒ…์€ ํŒŒ์ดํ† ์น˜๋กœ ๋ฐฐ์šฐ๋Š” ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ (ํ•œ๋น›๋ฏธ๋””์–ด) ์ฑ…์„ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. -- ์†Œ์Šค์ฝ”๋“œ ) https://github.com/rickiepark/nlp-with-pytorch 0. ํ…์„œ์˜ ํƒ€์ž…, ํฌ๊ธฐ, ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜ ์ž‘์„ฑ ํ™•์‹คํ•œ ํƒ€์ž…, ํฌ๊ธฐ์˜ ๋ณ€ํ™”๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ํ—ฌํผ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. def describe(x): print("ํƒ€์ž…: {}".format(x.type())) print("ํฌ๊ธฐ: {}".format(x.shape)) print("๊ฐ’: {}".format(x)) 1. ํ…์„œ์˜ ํƒ€์ž…๊ณผ ํฌ๊ธฐ (์†์„ฑ) ํ…์„œ์—๋Š” FloatTensor, LongTensor, DoubleTensor ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ํ…์„œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋ชจ๋“  ํ…์„œ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์ „์—๋Š” ์–ธ์ œ๋‚˜ ํ…์„œ์˜ ์†์„ฑ์„..

[Pytorch] Colab์— Pytorch ์„ค์น˜ํ•˜๊ธฐ / ํ…์„œ ์ƒ์„ฑํ•˜๊ธฐ

-- ๋ณธ ํฌ์ŠคํŒ…์€ ํŒŒ์ดํ† ์น˜๋กœ ๋ฐฐ์šฐ๋Š” ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ (ํ•œ๋น›๋ฏธ๋””์–ด) ์ฑ…์„ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. 1. Colab์œผ๋กœ ํŒŒ์ดํ† ์น˜ ์ด์šฉํ•˜๊ธฐ https://pytorch.org/ PyTorch An open source machine learning framework that accelerates the path from research prototyping to production deployment. pytorch.org GPU ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ํŒŒ์ดํ† ์น˜๋ฅผ ์„ค์น˜ํ•  ์ˆ˜๋Š” ์—†๋Š”๊ฑธ๊นŒ? ์‹œ๊ฐ„์ด ์ด‰๋ฐ•ํ•˜์—ฌ ์ž์„ธํžˆ ์ฐพ์•„๋ณด์ง„ ๋ชปํ–ˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„ pytorch๋Š” gpu cudaํ™˜๊ฒฝ์—์„œ ์„ค์น˜๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋‚˜๋Š” ๊ทธ๋žจ.. ๋…ธํŠธ๋ถ ์‚ฌ์šฉ์ž์ด๊ธฐ ๋•Œ๋ฌธ์— gpu๊ฐ€ ์—†์–ด์„œ ํ•˜๋Š” ์ˆ˜์—†์ด colab์œผ๋กœ ํŒŒ์ดํ† ์น˜๋ฅผ ์ด์šฉํ•ด์•ผํ–ˆ๋‹ค. 1.1 Col..

[keras] Conv2D, MaxPool2D ํŒŒ๋ผ๋ฏธํ„ฐ ์‚ดํŽด๋ณด๊ธฐ

์‹œ์ž‘ํ•˜๋ฉฐ ์–ธ์ œ๋‚˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋‚˜๋ฅผ ๊ดด๋กญํžŒ๋‹ค. ์‚ญ์ œ๋˜์–ด ์‚ฌ์šฉํ•˜๋Š”๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ๋””ํดํŠธ๊ฐ’์ด ๋ญ”์ง€ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ ... ๊ทธ๋ž˜์„œ ๋‚˜์ค‘์„ ์œ„ํ•ด ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. tensorflow ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค. 1. Conv2D tf.keras.layers.Conv2D(filters, kernel_size, strides=(1,1), input_shape=(28,28,3)) ์ฒซ๋ฒˆ์งธ layer ๊ฐ€ Conv2D ์ธ ๊ฒฝ์šฐ๋Š” "input_shape"๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์–ด์•ผ ํ•จ (์ด๋ฏธ์ง€์˜ ๋†’์ด, ์ด๋ฏธ์ง€์˜ ๋„ˆ๋น„, ์ปฌ๋Ÿฌ์ฑ„๋„) ํ˜•ํƒœ์˜ tensor๋กœ ์ž…๋ ฅ์„ ๋ฐ›์Œ ์ปฌ๋Ÿฌ์ฑ„๋„ color ์ธ ๊ฒฝ์šฐ (R, G, B) ์„ธ ๊ฐœ์˜ ์ฑ„๋„์„ ๊ฐ€์ง€๊ธฐ์— 3 greyscale (ํ‘๋ฐฑ)์ธ ๊ฒฝ์šฐ ํ•œ ๊ฐœ์˜ ์ฑ„๋„์„ ๊ฐ€์ง€๊ธฐ์— 1 tf.keras.layers.Conv2D( filt..

[keras] CNN ๋ชจ๋ธ - ImageDataGenerator ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

์‹œ์ž‘ํ•˜๋ฉฐ TF ๊ณต๋ถ€๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ ค!! ์บ๊ธ€, ๊นƒํ—ˆ๋ธŒ ๋“ฑ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์—ˆ๋˜ ๋‚ด๊ฐ€ ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ–ˆ์Œ์„ ๋Š๊ผˆ๋‹ค... ํ•˜๋‚˜ํ•˜๋‚˜ ์ดํ•ดํ•˜๊ณ  ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ๋„˜์–ด๊ฐ€๋ ค๋‹ˆ๊นŒ ๋๋„ ์—†๋‹ค. ์–ด์จŒ๋“ , CNN๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ , ImageGenerator์„ ํ™œ์šฉํ•œ ์˜ˆ์ œ๋ฅผ ๊นŒ๋จน์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํฌ์ŠคํŒ… ํ•ด๋ณผ๊นŒ ํ•œ๋‹ค. ์‹œ์ž‘! 1. import library ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ํ•„์š”ํ•œ library๋ฅผ import import tensorflow as tf import os from os import path, getcwd, chdir from tensorflow.keras.optimizers imort RMSprop from tensorflow.keras.preprocessing.image import Im..

[keras] ์ผ์ • accuracy ๋‹ฌ์„ฑ ํ›„ ํ›ˆ๋ จ์„ ์ž๋™์œผ๋กœ ๋ฉˆ์ถ”๋Š” callbacks ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

์‹œ์ž‘ํ•˜๋ฉฐ epoch๋ฅผ ๋ช‡์œผ๋กœํ•ด์•ผํ• ์ง€ ๊ณ ๋ฏผํ•ด์•ผ๋  ๋•Œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋ฒˆ TF ์ž๊ฒฉ์ฆ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ callback ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ผ์ • accuracy ๋‚˜ loss์— ๋„๋‹ฌํ•˜๋ฉด ๋ฉˆ์ถ”๊ฒŒ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๊ธธ๋ž˜ ๊ธฐ๋กํ•˜๋ ค๊ณ  ํ•œ๋‹ค! ๋งŽ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด์•˜์ง€๋งŒ, ์ด ๊ธฐ๋Šฅ์€ ๋„ฃ์–ด๋ณธ ๊ธฐ์–ต์ด ์—†๋‹ค ใ…Žใ……ใ…Ž 1. callback class ๊ตฌํ˜„ class callback(tf.keras.callbacks.Callback): def on_epoch_end(self, eopch, logs={}): if(logs.get('loss') < 0.4) : print("\n----reach 60% accuracy, stop training----") self.model.stop_training = True callbacks = ..

[keras] CNN ๋ชจ๋ธ ๊ตฌ์„ฑ ์‚ดํŽด๋ณด๊ธฐ

๋‚ด๊ฐ€ ํ—ท๊ฐˆ๋ ค์„œ ์ •๋ฆฌ! ๋ชจ๋ธ ํ•˜๋‚˜๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์–ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค. 1. ๋ชจ๋ธ ์ƒ์„ฑ model = models.Sequential() keras์˜ Sequential ๋ชจ๋ธ ์‚ฌ์šฉ ๊ณ„์ธต์„ ์„ ํ˜•์œผ๋กœ ์Œ“์€ ๋ชจ๋ธ์„ ์˜๋ฏธ 2. ์ธต (Layer) ์ถ”๊ฐ€ ๋ชจ๋ธ ๊ตฌ์„ฑ INPUT → ์ฝ˜๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด (Conv2D) → ReLU ํ•จ์ˆ˜ → ๋งฅ์Šค ํ’€๋ง ๋ ˆ์ด์–ด(MaxPooling2D) → ์ฝ˜๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด (Conv2D) → ReLU ํ•จ์ˆ˜ → ๋งฅ์Šค ํ’€๋ง ๋ ˆ์ด์–ด(MaxPooling2D) → ์ฝ˜๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด (Conv2D) → ์™„์ „์—ฐ๊ฒฐ๊ณ„์ธต (Dense) → softmaxํ•จ์ˆ˜ → OUTPUT model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28,28,1))) ..

[tensorflow] ํ…์ŠคํŠธ ๋ถ„๋ฅ˜ (Text Classification) - IMDB

์‹œ์ž‘ํ•˜๋ฉฐ TF certification ์„ ์ทจ๋“ํ•˜๊ธฐ ์œ„ํ•ด ํŠœํ† ๋ฆฌ์–ผ๋ถ€ํ„ฐ ๊ณต๋ถ€์ค‘์ด๋‹ค. ์˜ˆ์ƒ๋ณด๋‹ค ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ๊ฐ™๋‹ค .. ๊ทธ๋ž˜๋„ ์ตœ๋Œ€ํ•œ ๋‹จ๊ธฐ๊ฐ„์— ์ทจ๋“ํ•˜๋Š”๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค!!!!!! ํ™”์ดํŒ… ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ…์ŠคํŠธ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•ด ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ ํ›ˆ๋ จ์‹œํ‚ค๋Š” ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณธ๋‹ค. ํ…์„œํ”Œ๋กœ์šฐ ๊ณต์‹ ๋ฌธ์„œ ํŠœํ† ๋ฆฌ์–ผ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ฆฌ๋ทฐํ•˜๋Š” ํ˜•์‹์˜ ๊ธ€์ด ๋˜๊ฒ ๋‹ค! www.tensorflow.org/tutorials/keras/text_classification ์˜ํ™” ๋ฆฌ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•œ ํ…์ŠคํŠธ ๋ถ„๋ฅ˜ | TensorFlow Core Note: ์ด ๋ฌธ์„œ๋Š” ํ…์„œํ”Œ๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ฒˆ์—ญํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒˆ์—ญ ํ™œ๋™์˜ ํŠน์„ฑ์ƒ ์ •ํ™•ํ•œ ๋ฒˆ์—ญ๊ณผ ์ตœ์‹  ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณต์‹ ์˜๋ฌธ ๋ฌธ์„œ์˜ ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ www.tensorfl..

[tensorflow] imdb.load_data ์˜ค๋ฅ˜ ํ•ด๊ฒฐ - Object arrays cannot be loaded when allow_pickle=False

didu-story.tistory.com/25?category=903386 [tensorflow] ํ…์ŠคํŠธ ๋ถ„๋ฅ˜ (Text Classification) - IMDB ์‹œ์ž‘ํ•˜๋ฉฐ TF certification ์„ ์ทจ๋“ํ•˜๊ธฐ ์œ„ํ•ด ํŠœํ† ๋ฆฌ์–ผ๋ถ€ํ„ฐ ๊ณต๋ถ€์ค‘์ด๋‹ค. ์˜ˆ์ƒ๋ณด๋‹ค ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ๊ฐ™๋‹ค .. ๊ทธ๋ž˜๋„ ์ตœ๋Œ€ํ•œ ๋‹จ๊ธฐ๊ฐ„์— ์ทจ๋“ํ•˜๋Š”๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค!!!!!! ํ™”์ดํŒ… ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ…์Šค didu-story.tistory.com ์œ„ ํฌ์ŠคํŒ…์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘ ๋ฐ์ดํ„ฐ์…‹์„ ๋‹ค์šด๋กœ๋“œ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. from keras.datasets import imdb (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000..

๋ฐ˜์‘ํ˜•