ChatGPT(챗지피티) 한테 딥러닝 배우기 - tensorflow

2024. 7. 9. 22:04Language/Python

반응형

 

 

오늘은 내 과외 선생님인 챗지피티쌤한테 딥러닝을 간단하게 배워보았다.

항상 챗지피티한테 인공지능 관련해서 뭔가를 배워봐야겠다는 생각만 한 채

다른 자극적인 유튜브, 게임, 넷플 등에 밀려 잊혀지곤 했었는데...

 

오늘은 더 하기 싫은 자격증 공부가 나타나서 딥러닝 공부가 너무 하고싶어지는 현상이 발생했다.

그래서 실제로 챗피지티를 활용해서 딥러닝을 공부해보니 역시 너무 알차고 좋은 수업이어서

'와. 이거 맨날 하다가는 구글 가겠는데?' 라는 생각이 들 정도로^^ 유익했다.

 

 


 

 

우선 챗지피티쌤한테 딥러닝에 대한 예제 코드를 요청하였다.

 

# 기본 코드

pip install tensorflow

 

패키지 설치하라고 던져주고  바로 코드를 던져주는 쌤

import tensorflow as tf
from tensorflow.keras import layers, models
import numpy as np

# MNIST 데이터셋 로드
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()

# 데이터 전처리
train_images = train_images.reshape((60000, 28, 28, 1)).astype('float32') / 255
test_images = test_images.reshape((10000, 28, 28, 1)).astype('float32') / 255

# 레이블을 범주형으로 변환
train_labels = tf.keras.utils.to_categorical(train_labels)
test_labels = tf.keras.utils.to_categorical(test_labels)

# 모델 생성
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

# 완전 연결 층 추가
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))

# 모델 컴파일
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# 모델 훈련
model.fit(train_images, train_labels, epochs=5, batch_size=64, validation_split=0.2)

# 모델 평가
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {test_acc}')

 

코드에 대한 지피티쌤의 부연 설명

 

  1. TensorFlow와 Keras를 사용하여 MNIST 데이터셋을 로드합니다.
  2. 데이터를 전처리합니다 (이미지를 정규화하고 레이블을 범주형으로 변환).
  3. CNN(Convolutional Neural Network) 모델을 생성합니다.
  4. 모델을 컴파일합니다 (Adam 옵티마이저와 categorical crossentropy 손실 함수를 사용).
  5. 모델을 훈련합니다 (5번의 에포크 동안).
  6. 테스트 데이터셋을 사용하여 모델을 평가하고 정확도를 출력합니다.

 

# 에러1

 

바로 코드 붙여넣고 실행 돌려봤는데 당연히 tensorflow를 설치하지 않아서 에러가 발생했다.

모듈 설치 후 다시 파일을 실행시켜봤는데.. 이번에는 또 처음보는 에러가 뜨면서 프로그램이 중단되었다.

 

 

쌤한테 바로 문의를 넣었다.

 

 

 

 

지피티쌤은 CPU 호환성 문제를 추측하며 답변을 제시해주긴 했는데...뭐랄까.. 내 마음에 확 와닿지는 않는 듯한 느낌?

그래서 나의 제2의 과외 쌤인 claude 쌤한테 찾아가봤다.

 

 

 

claude 쌤도 CPU 호환성 문제에 대해 의문을 제기하지만, 내 눈을 사로잡는 것은 Mac에 관한 부분이었다.

나는 Mac으로 이 프로그램을 돌리고 있었기 때문에, 이번에는 claude 쌤의 조언을 따라보기로 한다. (챗지피티쌤 죄송)

 

pip uninstall tensorflow

pip install tensorflow-macos

 

기존에 깔려있는 tensorflow는 지우고 macos용 tensorflow를 설치했다.

 

다시 GO!!!!!!!!!!!!!

 

# 에러2

 

에러. 😕

 

 

 

확실히 초반에 뭔가 실행하려고 하면 환경설정 때문에 시간이 더 많이 소요되는 것 같다..

이번에는 SSL인증서를 업데이트 하라고 알려주시는 쌤..

 

 

하라는대로 했어요 쌤!!!!!!!!!

이제 제발 되게 해주세요!

 

# 성공!

 

엇. 드디어 프린트문이 나왔다! 

 

# 응용 예제

예측 모델은 문제없이 생성이 된 것 같으니 이 밑 부분에 실행예제를 붙여서 다시 한번 프로그램을 돌려보았다.

import matplotlib.pyplot as plt

# 테스트 이미지 중 하나를 가져와서 예측
sample_image = test_images[0]
plt.imshow(sample_image.reshape(28, 28), cmap='gray')
plt.show()

# 모델 예측
predictions = model.predict(np.expand_dims(sample_image, axis=0))
predicted_label = np.argmax(predictions)
print(f'분석 완료 값: {predicted_label}')

 

 

대충 보니 이미지를 아무거나 가져와서 그 값을 분석한다는 내용 같은데...! 일단 실행!!

 

 

매우 '7' 처럼 보이는 이미지가 등장하고, 이 창을 닫았더니

내 기특한 딥러닝이 1초 만에 '7'을 답으로 내놓았다!!!!!!

 

 

너무 신기해!

 

# 모델 처리 (저장 및 로드)

물어보지도 않은 모델 처리 방법까지 알려주는 지피티쌤😍

(모델을 계속 학습시키면 시간이 오래걸리니 학습시킨 모델은 저장해뒀다가 꺼내쓰면 되나보다..)

# 모델 저장
model.save('mnist_model.h5')


# 모델 로드
loaded_model = tf.keras.models.load_model('mnist_model.h5')

# 로드된 모델로 예측
predictions = loaded_model.predict(np.expand_dims(sample_image, axis=0))
predicted_label = np.argmax(predictions)
print(f'Predicted label from loaded model: {predicted_label}')

 

딥러닝 맛보기로 이보다 더 괜찮은 수업이 있을까..?

너무 재밌고 유익한 시간이었다~!🙌

 

반응형
top
bottom