๐Ÿค– AI

[AI] ํŒจ์…˜ MNIST ๋ฐ์ดํ„ฐ์…‹ ์‚ฌ์šฉํ•ด์„œ ์ธ๊ณต์ง€๋Šฅ ํ•™์Šตํ•˜๊ธฐ

jcowwk 2025. 1. 14. 20:01

ํŒจ์…˜ MNIST ๋ฐ์ดํ„ฐ์…‹ ์‚ฌ์šฉํ•ด์„œ ์ธ๊ณต์ง€๋Šฅ ํ•™์Šตํ•˜๊ธฐ


1. MNIST

2. ์ฝ”๋“œ ์„ค๋ช…

 

์ธ๊ณต์ง€๋Šฅ ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ํฌ์ŠคํŒ… ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


1. MNIST

๋จธ์‹ ๋Ÿฌ๋‹๊ณผ ๋”ฅ๋Ÿฌ๋‹์„ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ์…‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

2. ์˜ˆ์ œ ์ฝ”๋“œ

# ํŒจ์…˜ MNIST ๋ฐ์ดํ„ฐ์…‹ ๋กœ๋“œ
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

 

ํŒจ์…˜ MNIST ๋ฐ์ดํ„ฐ์…‹์„ ๋กœ๋“œํ•œ ํ›„ ๋ฐ์ดํ„ฐ์…‹์„ ํ›ˆ๋ จ์šฉ๊ณผ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋ธ์„ ํ•™์Šตํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ์ด๊ณ , ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋ธ์„ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

 

# ํด๋ž˜์Šค ์ด๋ฆ„ ์ •์˜
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

 

๊ฐ ์ˆซ์ž ๋ ˆ์ด๋ธ”์— ํ•ด๋‹นํ•˜๋Š” ์˜๋ฅ˜ ์ข…๋ฅ˜์˜ ์ด๋ฆ„์„ ๋ฆฌ์ŠคํŠธ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

 

# ๋ฐ์ดํ„ฐ ์ •๊ทœํ™”
train_images = train_images / 255.0
test_images = test_images / 255.0

 

ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์™€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ํ”ฝ์…€ ๊ฐ’์„ 0~1 ๋ฒ”์œ„๋กœ ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฏธ์ง€ ํ”ฝ์…€ ๊ฐ’์€ 0~255 ๋ฒ”์œ„์ธ๋ฐ, 0~255 ๋ฒ”์œ„๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ฐ’์˜ ํฌ๊ธฐ ์ฐจ์ด๋กœ ์ธํ•ด ํ•™์Šต์ด ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด 0~1 ๋ฒ”์œ„๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฒ”์œ„๋ฅผ ์ผ์ •ํ•˜๊ฒŒ ๋งž์ถ”์–ด ํ•™์Šต ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ๋” ์•ˆ์ •์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

# ๋ชจ๋ธ ์ƒ์„ฑ
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

 

๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•  ๋ชจ๋ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

# ๋ชจ๋ธ ์ปดํŒŒ์ผ
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

 

๋ชจ๋ธ์„ ํ•™์Šตํ•  ๋•Œ ์‚ฌ์šฉํ•  ์˜ตํ‹ฐ๋งˆ์ด์ €, ์†์‹ค ํ•จ์ˆ˜, ํ‰๊ฐ€ ์ง€ํ‘œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

 

# ๋ชจ๋ธ ํ›ˆ๋ จ
model.fit(train_images, train_labels, epochs=10)

 

ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ epochs ํฌ๊ธฐ๋งŒํผ ๋ฐ˜๋ณต ํ•™์Šต ์‹œํ‚ต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ชจ๋ธ์€ 10๋ฒˆ ํ•™์Šต์‹œํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

# ๋ชจ๋ธ ํ‰๊ฐ€
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print(f'\nํ…Œ์ŠคํŠธ ์ •ํ™•๋„: {test_acc}')

 

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์˜ ์†์‹ค ๊ฐ’๊ณผ ์ •ํ™•๋„๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 

# ์˜ˆ์ธก ์ˆ˜ํ–‰
predictions = model.predict(test_images)

 

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ชจ๋ธ์˜ ์˜ˆ์ธก๊ฐ’์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

# ์ฒซ ๋ฒˆ์งธ ์ด๋ฏธ์ง€ ์˜ˆ์ธก ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”
plt.figure()
plt.imshow(test_images[0], cmap=plt.cm.binary)
plt.colorbar()
plt.grid(False)
plt.show()

 

์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ ์ด๋ฏธ์ง€์˜ ์‹œ๊ฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์˜ˆ์ธก๋œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

# ์˜ˆ์ธก๋œ ๋ ˆ์ด๋ธ” ์ถœ๋ ฅ
predicted_label = np.argmax(predictions[0])
print(f'์˜ˆ์ธก๋œ ๋ ˆ์ด๋ธ”: {class_names[predicted_label]}')

 

๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์„ ๊ฐ€์ง€๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

predictions[0]์ด [0.1, 0.05, 0.02, 0.8, 0.03, ...]๋ผ๋ฉด np.argmax(predictions[0])์€ 3์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

class_names ๋ฆฌ์ŠคํŠธ์—์„œ ํ•ด๋‹น ์ธ๋ฑ์Šค์— ๋Œ€์‘ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์˜ˆ์ธก๋œ ๋ ˆ์ด๋ธ”์˜ ํด๋ž˜์Šค ์ด๋ฆ„์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

Keras MNIST ์˜ˆ์ œ์ฝ”๋“œ

Tensorflow , Kerasยถ ์ด๋ฒˆ ๊ธ€๋ถ€ํ„ฐ ํ…์„œํ”Œ๋กœ์šฐ, ์ผ€๋ผ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ๋ฅผ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋จผ์ € Tensorflow ,keras๊ฐ€ ๋ญ”์ง€ ์•Œ์•„์•ผ๊ฒ ์ฃ ?? ๋จผ์ € tensorflow ๋Š” ๊ตฌ๊ธ€์—์„œ ๊ฐœ๋ฐœํ•œ ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ

suhyun72.tistory.com

 

 

๊ธฐ๋ณธ ๋ถ„๋ฅ˜: ์˜๋ฅ˜ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜  |  TensorFlow Core

๊ธฐ๋ณธ ๋ถ„๋ฅ˜: ์˜๋ฅ˜ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ์šด๋™ํ™”๋‚˜ ์…”์ธ  ๊ฐ™์€ ์˜ท ์ด๋ฏธ์ง€๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ์„

www.tensorflow.org

 

๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !

ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค <3

'๐Ÿค– AI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[AI] LLM, ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜  (0) 2025.01.14