๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋”ฅ๋Ÿฌ๋‹19

[๋”ฅ๋Ÿฌ๋‹] Windowed Dataset ๊ตฌ์„ฑ ์˜ต์…˜ ( Tensorflow ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ๋ถ„์„) / ๋”ฅ๋Ÿฌ๋‹ ๋ฏธ๋ž˜ ์˜ˆ์ธกํ•˜๊ธฐ Windowed Dataset Tensorflow ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ๋ถ„์„ window size (์œˆ๋„์šฐ ๊ตฌ์„ฑ) [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] ๋ผ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ์žˆ์„ ๋•Œ ์ฒซ ๋ฒˆ์งธ๋ถ€ํ„ฐ ๋‹ค์„ฏ๋ฒˆ์งธ์˜ ๋ฐ์ดํ„ฐ, ์ฆ‰ 0, 1, 2, 3, 4๋ฅผ ๊ฐ€์ง€๊ณ  6๋ฒˆ์งธ ๋ฐ์ดํ„ฐ 5์˜ ๊ฐ’์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ window_size = 5๋ผ๊ณ  ํ•œ๋‹ค. shift ์œ„์—์„œ shift = 1 ์ด๋ผ๋Š” ์˜ต์…˜์„ ์ฃผ๋ฉด [ 0, 1, 2, 3, 4 ] -> 5 [ 1, 2, 3, 4, 5 ] -> 6 [ 2, 3, 4, 5, 6 ] -> 7 [ 3, 4, 5, 6, 7 ] -> 8 [ 4, 5, 6, 7, 8 ] -> 9 ์ด๋Ÿฐ์‹์œผ๋กœ ์˜ˆ์ธกํ•˜๊ฒŒ ๋œ๋‹ค. shift = 2 ๋ผ๋ฉด, [ 0, 1, 2, 3, 4 ] -> 5 [ 2,.. 2022. 2. 22.
[๋”ฅ๋Ÿฌ๋‹] Activation Function ํ™œ์„ฑํ•จ์ˆ˜ ํ•œ๋ฒˆ์— ์ดํ•ดํ•˜๊ธฐ(Sigmoid, Softmax, Relu) [๋”ฅ๋Ÿฌ๋‹] Activation Function ํ™œ์„ฑํ™”ํ•จ์ˆ˜ ๋”ฅ๋Ÿฌ๋‹์˜ ์žฅ์ ์€ ์„ ํ˜•ํ•จ์ˆ˜๋ฅผ ๊นŠ๊ฒŒ ์Œ“์„ ์ˆ˜ ์ž‡๋Š” ๊ฒƒ์ด ์žฅ์ ์ด๋‹ค. ํ•˜์ง€๋งŒ ์„ ํ˜•ํ•จ์ˆ˜๋ฅผ ๊นŠ๊ฒŒ ์Œ“์•„๋ดค์ž ์„ ํ˜•ํ•จ์ˆ˜๊ฐ€ ๋˜์–ด ๋ณต์žกํ•œ ๋ชจ๋ธ๋ง์„ ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋ธ ๋ ˆ์ด์–ด๋ฅผ ์Œ“์„ ๋•Œ ์„ ํ˜• ํ•จ์ˆ˜ ์‚ฌ์ด์‚ฌ์ด์— ์„ ํ˜•ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ๋ฒˆ๊ฐˆ์•„ ๋„ฃ์–ด์คŒ์œผ๋กœ์จ ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ํ™œ์„ฑ ํ•จ์ˆ˜(activation funtion)๋ผ๊ณ  ํ•˜๊ณ , relu, sigmoid, softmax ๋“ฑ์ด ์žˆ๋‹ค. ์œ„ ์„ค๋ช…๋Œ€๋กœ activation์„ ๋„ฃ์–ด์„œ ๋ชจ๋ธ๋ง์„ ํ•ด๋ณด๋ฉด model = Sequential([ tf.keras.layers.Flatten(input_shape = (28,28)), tf.kearas.layers.Dense(512) tf.kea.. 2022. 2. 18.
[๋”ฅ๋Ÿฌ๋‹] Convolution Neural Network (CNN) ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง - ๊ฐ„๋‹จํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ Convolution Neural Network (CNN) ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง CNN Dense ๋ ˆ์ด์–ด = ์—ฐ์‚ฐ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ ˆ์ด์–ด์ด๊ณ . CNN = ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ(features)์— ๋Œ€ํ•œ ํŠน์„ฑ์„ ์ถ”์ถœํ•˜๋Š” ๋ ˆ์ด์–ด์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋ธ๋ง์„ ํ•  ๋•Œ์— ํŠน์„ฑ ์ถ”์ถœ์„ ๋จผ์ €ํ•œ ํ›„ ์—ฐ์‚ฐ์„ ํ•ด์•ผํ•˜๋‹ˆ ์œ—๋ถ€๋ถ„์ด ํŠน์„ฑ์„ ์ถ”์ถœํ•˜๋Š” ๋ ˆ์ด์–ด๊ฐ€ ์ž๋ฆฌ์žก๊ณ  ์•„๋žซ๋ถ€๋ถ„์ด ์—ฐ์‚ฐ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ ˆ์ด์–ด๊ฐ€ ์ž๋ฆฌ์žก๋Š”๋‹ค. input ๋ ˆ์ด์–ด๋Š” ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€์— ๋Œ€ํ•ด์„œ ๊ตด๊ณก ๋“ฑ..ํŠน์„ฑ์„ ์ถ”์ถœํ•˜๊ณ  ๊ทธ ์ถ”์ถœํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋ชจ์•„๋‘” ๊ฒƒ์„ feature maps๋ผ๊ณ  ํ•œ๋‹ค. ๊ณ„์† cnn์ธต์„ ๊นŠ๊ฒŒ์Œ“์œผ๋ฉด์„œ ํŠน์„ฑ ์ถ”์ถœ์„ ํ•ด๊ฐ€๋Š” ๊ฒƒ์ด ์œ„ ๊ทธ๋ฆผ์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ CNN์˜ ๊ธฐ๋ณธ ๊ฐœ๋… ๋! Dense VS CNN ์˜ˆ๋ฅผ๋“ค์–ด ๊ณ ์–‘์ด ์‚ฌ์ง„์„ ๊ฐ€์ง€๊ณ  ์ด ์‚ฌ์ง„์ด ๊ณ ์–‘์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š”.. 2022. 2. 17.
[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] VGG Net - Very Deep Convolutional Networks for large-scale image recognit [๋”ฅ๋Ÿฌ๋‹] VGG Net - ๋…ผ๋ฌธ๋ฆฌ๋ทฐ -Very Deep Convolutional Networks for large-scale image recognition ๋…ผ๋ฌธ ๋งํฌ ↓↓↓↓↓↓ https://arxiv.org/pdf/1409.1556.pd VGG net์€ ์œ ๋ช…ํ•œ ๋ ˆ์ด์–ด์ด์ž ์‹ค๋ฌด์—์„œ๋„ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ชจ๋ธ์ด๋ผ๊ณ ํ•œ๋‹ค. ์„ธ๊ณ„ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋Œ€ํšŒ๊ฐ€ ์žˆ๋‹ค. ๊ฑฐ๊ธฐ์„œ 2014๋…„์— ์ค€์šฐ์Šน์„ ํ•œ ๋ชจ๋ธ. ์‚ด์ง ์—ฌ๋‹ด์œผ๋กœ ์ธ๊ณต์ง€๋Šฅ์„ ํ™œ์šฉํ•œ ๋Œ€ํšŒ๋Š” ์‚ฌ๋žŒ์˜ ์„ฑ๋Šฅ์„ ๋›ฐ์–ด๋„˜์œผ๋ฉด ์ข…๋ฃŒ๋˜๋Š”๋ฐ 2017๋…„์— ์ข…๋ฃŒ๋๋‹ค๋‹ˆ..์กฐ๊ธˆ ๋ฌด์„ญ๋‹ค. ์ด์ œ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜๋Š” ๊ธฐ๊ณ„๊ฐ€ ์‚ฌ๋žŒ๋ณด๋‹ค ๋” ์ž˜ํ•œ๋‹ค๋Š” ๊ทธ๋Ÿฐ๊ฑธ๊นŒ..ใ…Ž ๋จผ์ € ์ด 6๊ฐœ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ตฌ์กฐ๋„๋ฅผ ๋ณด๋ฉด ๋งˆ์ง€๋ง‰ FC-1000์ธ๊ฒƒ์„ ๋ณด์•„ Dense(1000, 'softmax')์ด๋ฏ€๋กœ 1000๊ฐœ์˜ ์นด.. 2022. 2. 16.
[๋”ฅ๋Ÿฌ๋‹] Dense Layer (Fully Connected Layer) ์ดํ•ดํ•˜๊ธฐ Dense Layer (Fully Connected Layer) ์ดํ•ดํ•˜๊ธฐ Dense Layer ๋”ฅ๋Ÿฌ๋‹์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” Layer์ด๋‹ค. Fully Connected Layer๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” Dense๋ณด๋‹ค Fully Connected Layer๋ผ๊ณ  ๋งŽ์ด ์ง€์นญํ•˜๊ณ  FC๋ผ๊ณ  ์ค„์—ฌ์„œ ๋ถ€๋ฅธ๋‹ค. ํฐ์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ๋ฅผ ๋…ธ๋“œ(๋‰ด๋Ÿฐ)๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š”๋ฐ y = wx + b ์˜ w(weight)์˜ ์—ญํ• ์„ ํ•œ๋‹ค. w๋“ค์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ๋ณ€ํ•˜๋ฉด์„œ ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ธกํ•˜๊ณ ์žํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ’์— ๊ฐ€์žฅ ๊ทผ์‚ฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค. Dense Layer๋Š” ๋…ธ๋“œ์™€ ๋…ธ๋“œ ๋“ค์ด ์™„์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค. input layer ์œ„ ๊ทธ๋ฆผ์€ 4์ธต์˜ ๋ ˆ์ด์–ด๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ layer๋ฅผ ํ†ต๊ณผํ•œ๋‹ค. output layer๋Š” ๋ฐ”๋กœ ์•ž hidden laye.. 2022. 2. 9.
Google Colab Pro ๊ฒฐ์ œํ•˜๋Š” ๋ฒ• Google Colab Pro ๊ฒฐ์ œํ•˜๊ธฐ ๋ณดํ†ต ๋”ฅ๋Ÿฌ๋‹์„ ํ•  ๋•Œ google Colab์„ ๋งŽ์ด ์ด์šฉํ•œ๋‹ค. Colab์—์„œ๋Š” ๋ฌด๋ฃŒ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ผ์ •๋Ÿ‰์˜ GPU๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•œ๋‹ค. ํ•˜๋ฃจ 12์‹œ๊ฐ„ ์ •๋„..?์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๋‚ด๊ฐ€ 12์‹œ๊ฐ„์„ ๋„˜๊ฒŒ? ์‚ฌ์šฉํ•˜๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์—ฐ๊ฒฐ ์ œํ•œ์ด ๋–ด๋‹ค. ์ข‹์€ ๋งˆ์Œ์œผ๋กœ ๊ณต๋ถ€ํ•˜๋ ค๋‹ค๊ฐ€ ์ด๋Ÿฐ ๊ฒฝ๊ณ ๊ฐ€ ๋œจ๋ฉด ๋˜ ์งœ์ฆ์ด ํ™• ์˜ฌ๋ผ์˜จ๋‹ค..ใ…Ž ์ฃผ๋ง ์ €๋…์—๋„ ์ด๋Ÿฐ ํ˜„์ƒ์ด ์ƒ๊ฒจ ์ž‘์—…์„ ํ•˜์ง€ ์•Š์„ ๋•Œ๋„ colab์„ ์ผœ๋†จ๋†”๋ณด๋‹ค ์‹ถ์—ˆ๋Š”๋ฐ ์˜ค๋Š˜์€ ์•„์นจ์—๋„ ๊ฒฝ๊ณ ๊ฐ€ ๋œจ๋‹ˆ ๊ฒฐ์ œ๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. (์ผ๋‹จ ๋‹น์žฅ ์˜ค๋Š˜ ์ž‘์—…์„ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ) ๋Ÿฐํƒ€์ž„->๋Ÿฐํƒ€์ž„ ์œ ํ˜• ๋ณ€๊ฒฝ Colab Pro+ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ Click! ์•„์ง ๋ฐฐ์šฐ๋Š” ์ž…์žฅ์ด๋ผ ๋ฌด๊ฑฐ์šด ๋ชจ๋ธ์„ ๋งŽ์ด ๋Œ๋ฆฌ์ง€ ์•Š์•„์„œ ๋ฌด๋ฃŒ GPU๋„ ์“ธ๋งŒํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ–ˆ๋Š”.. 2022. 1. 25.
[๋”ฅ๋Ÿฌ๋‹] classification neural network(๋ถ„๋ฅ˜์‹ ๊ฒฝ๋ง) [๋”ฅ๋Ÿฌ๋‹] classification neural network(๋ถ„๋ฅ˜์‹ ๊ฒฝ๋ง) ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹์˜ ๋ฐ์ดํ„ฐ ๋ฌธ์ œ์˜ ์œ ํ˜•์€ ํฌ๊ฒŒ ๋ถ„๋ฅ˜(Classification)๊ณผ ํšŒ๊ท€(regression)์œผ๋กœ ๋‚˜๋ˆ ์ง„๋‹ค. ๊ทธ ์ค‘ Classification neural network๋ฅผ ์†Œ๊ฐœํ•ด๋ณด๊ฒ ๋‹ค. ๋ถ„๋ฅ˜(Classification)๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋Š ๋ฒ”์ฃผ์— ์†ํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ ์ค‘ ์˜ค๋Š˜์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ๋ฐ์ดํ„ฐ์ธ ์™€์ธ์€ ๋ถ„๋ฅ˜ํ•˜๋Š” ์‹ ๊ฒฝ๋ง ๋ชจํ˜•์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ๋‹ค. random seed ์„ค์ • ์ผ๊ด€๋œ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค๋„๋ก ๋žœ๋ค ์‹œ๋“œ๋ฅผ ์„ค์ •ํ•ด์ค˜์•ผํ•œ๋‹ค. numpy์™€ tensorflow๋ฅผ importํ•˜๊ณ  ๊ฐ๊ฐ ๋žœ๋ค ์‹œ๋“œ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ์„ฑํ•œ๋‹ค. import numpy as np import tensorflow as tf np.ran.. 2022. 1. 24.
[๋”ฅ๋Ÿฌ๋‹] batch size(๋ฐฐ์น˜์‚ฌ์ด์ฆˆ) VS epoch(์—ํฌํฌ) VS iteration(๋ฐ˜๋ณต) [๋”ฅ๋Ÿฌ๋‹] batch size(๋ฐฐ์น˜์‚ฌ์ด์ฆˆ) VS epoch(์—ํฌํฌ) VS iteration(๋ฐ˜๋ณต) ๋”ฅ๋Ÿฌ๋‹์„ ํ•™์Šตํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. hist = model.fit(x_tn, y_tn, epochs =10, batch_size = 100) ๋”ฅ๋Ÿฌ๋‹์„ ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์—์„œ epoch์™€ batch size, interation์„ ์‚ฌ์šฉํ•œ๋‹ค. ์„œ๋กœ ๋น„์Šทํ•ด ๋ณด์—ฌ์„œ ๊ฐœ๋…์ด ์•„์ฃผ ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆฐ๋‹ค. batch size ์ „์ฒด ํŠธ๋ ˆ์ด๋‹ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ mini batch๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ํ•˜๋‚˜์˜ ๋ฏธ๋‹ˆ ๋ฐฐ์น˜์— ์†ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ๊ทธ๋ฆผ์„ ์„ค๋ช…ํ•˜์ž๋ฉด, train data 700๊ฐœ๋Š” ๊ฐ๊ฐ 100๊ฐœ๋กœ ๋‚˜๋ˆ ์ง„ mini batch๊ฐ€ 7๊ฐœ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๊ฐ mini batch๋Š” 100๊ฐœ์˜ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๊ณ  ์ด๋ฅผ batch si.. 2022. 1. 22.
[๋”ฅ๋Ÿฌ๋‹] Tensorflow๋กœ ์‹ ๊ฒฝ๊ตฌ์กฐ๋ง ๋ชจํ˜• ๋งŒ๋“ค๊ธฐ - Sequential API, Functional API [๋”ฅ๋Ÿฌ๋‹] Tensorflow๋กœ ์‹ ๊ฒฝ๊ตฌ์กฐ๋ง ๋งŒ๋“ค๊ธฐ - ์‹œํ€€์Šค API, ํ•จ์ˆ˜ํ˜• API Tensorflow(ํ…์„œํ”Œ๋กœ์šฐ) 2.0 Tensorflow๋Š” ํŒŒ์ด์ฌ์„ ์ด์šฉํ•ด์„œ ๋”ฅ๋Ÿฌ๋‹ ํ•™์Šต์— ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ํŠนํžˆ ์‹ ๊ฒฝ๋ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ด€๋ จ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ์„ ํ•œ๋‹ค. Tensorflow๋ฅผ ์ด์šฉํ•ด์„œ ์‹ ๊ฒฝ๋ง์„ ๋งŒ๋‘๋Š” ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1. ์‹œํ€€์Šค API ์‹œํ€€์Šค API๋Š” ์ง๊ด€์ ์ด๊ณ  ํŽธ๋ฆฌํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ์‹ ๊ฒฝ๋ง์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†๋‹ค. ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์‹œํ€€์Šค API๊ฐ€ ์ต์ˆ™ํ•ด์ง€๊ณ  ํ•จ์ˆ˜ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์šธ๊ฒƒ์ด๋‹ค. ์‹œํ€€์Šค API๋Š” ํ…์„œํ”Œ๋กœ์—์„œ ์ œ๊ณตํ•˜๋Š” Sequential()์„ ํ†ตํ•ด์„œ ๋”ฅ๋Ÿฌ๋‹ ๊ตฌ์กฐ์˜ ์ธต์„ ์Œ“์„ ์ˆ˜ ์žˆ๋‹ค. Sequential()์„ ๋จผ์ € ๋ชจํ˜•์„ ์„ ์–ธ ํ•˜๊ณ  model.add() ํ•จ.. 2022. 1. 22.
๋ฐ˜์‘ํ˜•