3월, 2020의 게시물 표시

Blender Cube VFX

이미지
사용 버전: Blender 2.82 ​ Blender VFX 끝. 카테고리: VFX

Tensorflow 시작하기 7 (Predict)

이미지
사용 버전: Python 3.7.6, Tensorflow 2.1.0 ​ 기획: MNIST 데이터 셋을 이용하여, 손글씨 숫자를 맞추는 AI(인공지능) 만들기 ​ 이번 시간에는 실제 데이터를 우리가 만들어서 예측을 하는지 확인해 보겠습니다. test 데이터도 일종에 정형화된 상태기 때문에 실제 우리가 직접 만드는 데이터와 차이가 있을 수 있습니다. 실제 테스트를 해봅시다. ​ 데이터를 먼저 만듭시다. 서로 다른 크기와 색깔의 데이터를 만들었습니다. ​ 불러와 봅시다. mnist_util.py에 해당 함수를 추가합니다. opencv를 이용하여, 이미지를 읽습니다. 우리가 사용한 실제 이미지와 크기를 맞춰주어야 인공지능 모델에 들어가집니다. 회색조 이미지로 읽어들여, 전처리, 크기 조절을 해줍니다. ​ ​ 실제 데이터로 진행합니다. 실제 데이터의 경우, 이미지가 축소되면서 생략되는 부분이 생기는 바람에 0의 경우 데이터가 많이 훼손되었네요. 아무리 그렇다고 해도, 정확도가 상당히 떨어집니다. ​ 다음 시간에는 정확도를 높이는 방법에 대해서 알아보겠습니다. ​ 끝. ​ 코드: https://github.com/shwoghk14/mnist_tensorflow 카테고리: Tensorflow, BlackSmith

Tensorflow 시작하기 6 (Training)

이미지
사용 버전: Python 3.7.6, Tensorflow 2.1.0 ​ 기획: MNIST 데이터 셋을 이용하여, 손글씨 숫자를 맞추는 AI(인공지능) 만들기 ​ 이번 시간에는 훈련(Training)에 대해서 알아보겠습니다. ​ 우리는 지금 층을 만들었습니다. 한 번 제대로 작동하는지 확인해볼까요? 만든 모델에 test image 5 개를 넣습니다. 맞는 게 한 개뿐인 정말 형편없는 인공지능이 완성되었군요. ​ ​ 우리의 인공지능 모델은 아직 학습이 되지 않았습니다. 학습을 시켜 봅시다. ​ model compile을 설정합니다. SparseCategoricalCrossentropy는 여러 가지 항목 중에 하나를 선택할 때 사용하는 함수입니다.(소수점 없이 정확히 하나만 선택될 때) ​ ​ 그리고 fit을 이용하여, 모델을 학습시킵니다. epochs는 총 학습 횟수를 나타냅니다. verbose는 학습 진행도를 보여줍니다. (0: 없음, 1: 진행바 2: 간략 진행바) 학습이 완료됩니다. ​ ​ test 데이터로 확인을 진행합니다. evaluate를 사용합니다. 92%의 정확도를 보이는군요. ​ 확인해 봅시다. 왼쪽 숫자가 정답, 아래쪽 숫자가 인공지능이 예측한 답입니다. 거의 비슷하지 않나요? ​ ​ 끝. ​ 코드: https://github.com/shwoghk14/mnist_tensorflow 카테고리: Tensorflow, BlackSmith

Tensorflow 시작하기 5 (Layer)

이미지
사용 버전: Python 3.7.6, Tensorflow 2.1.0 ​ 기획: MNIST 데이터 셋을 이용하여, 손글씨 숫자를 맞추는 AI(인공지능) 만들기 ​ 이번 시간에는 층(Layer)을 만들어봅시다. ​ ​ 입력 이미지를 평평하게 폅니다. 이미지를 펴기 위해서는 크기를 알아야 합니다. ​ 28 x 28 크기의 이미지군요. ​ Layer를 쌓기 위해서는 tf.keras.Sequence()를 사용합니다. 순차적으로 층을 쌓을 수 있습니다. ​ ​ 펴는 건, tf.keras.Flatten()을 사용합니다. Output Shape를 보시면, 784가 나옵니다. (28 x 28)입니다. ​ ​ 10 개의 숫자의 경우의 수를 확인하기 위해서는 10 개로 간추릴 필요가 있습니다. tf.keras.layer.Dense는 원하는 수만큼 줄여줍니다. ​ 우리는 층(Layer)를 만들었습니다. ​ ​ 끝. ​ 코드: https://github.com/shwoghk14/mnist_tensorflow 카테고리: Tensorflow, BlackSmith

Tensorflow 시작하기 4 (Validation)

이미지
사용 버전: Python 3.7.6, Tensorlfow 2.1.0 ​ 기획: MNIST 데이터 셋을 이용하여, 손글씨 숫자를 맞추는 AI(인공지능) 만들기 ​ 이번 시간에는 Validation Dataset을 만들어보겠습니다. ​ 우리가 열심히 학습 시킨 인공지능을 test 데이터에 바로 테스트를 하면서 조정을 하다 보면, test set에 오버 피팅(overfitting) 되게 됩니다. 그래서 우리는 확인용 데이터 셋(Validation dataset)을 이용합니다. ​ 하지만 이전 시간에 우리가 불러온 데이터에는 train과 test 밖에 없습니다. validation은 어떻게 구해야 할까요? train에서 나누어야 합니다. ​ ​ train_image 개수와 test_image 개수를 한 번 확인해 봅시다. ​ train 데이터는 육만 개, test 데이터는 일만 개가 있네요. train 데이터를 한, 8: 2로 나눠봅시다. ​ ​ mnist_util.py라는 파일을 만듭니다. ​ train과 validation을 나누는 함수를 만듭니다. ​ ​ 이제 나눠봅시다. ​ ​ train dataset은 48,000 개, validation dataset은 12,000 개로 나누어졌습니다. ​ 끝. ​ 코드: https://github.com/shwoghk14/mnist_tensorflow 카테고리: Tensorflow, BlackSmith

Tensorflow 시작하기 3 (Dataset)

이미지
사용 버전: Python 3.7.6, Tensorflow 2.1.0 ​ 기획: MNIST 데이터 셋을 이용하여, 손글씨 숫자를 맞추는 AI(인공지능) 만들기 ​ 이번 시간에는 데이터 셋(Dataset)을 불러오는 것과 전처리를 하는 것을 해보겠습니다. ​ tensorflow에는 기본적으로 테스트를 위해 유명한 데이터 셋을 제공해 줍니다. mnist도 포함되어 있습니다. ​ 한번 어떤 데이터가 들어있는지 봅시다. ​ ​ 데이터 셋을 분석해봅시다. 최댓값과 최솟값을 확인해 봅시다. ​ 데이터 타입은 uint8이고, 데이터 내의 최댓값은 255, 최솟값은 0입니다. 사실 이미지 형식의 데이터는 이론상 픽셀이 가질 수 있는 크기가 0 ~ 255입니다. 우리 데이터 셋에는 어떠한 값을 가지고 있는지 알아야 전처리 방법을 선택하기 쉽습니다. ​ ​ 데이터들을 그림으로 한 번 봅시다. ​ ​ 딱히 특별한 것은 없고, 그냥 숫자 그림입니다. 그러면, 이진화를 하면 될 것 같습니다. 굳이 다양한 값의 픽셀이 필요하지 않을 것 같네요. 10 이상의 픽셀은 그냥 1로 만들고, 나머지는 0으로 만들어야겠습니다. ​ ​ 끝. 코드: https://github.com/shwoghk14/mnist_tensorflow 카테고리: BlackSmith, Tensorflow

Tensorflow 시작하기 2 (기획)

이미지
사용 버전: Python 3.7.6, Tensorflow 2.1.0 ​ 기획: MNIST 데이터 셋을 이용하여, 손글씨 숫자를 맞추는 AI(인공지능) 만들기. ​ tensorflow(텐서플로우)에 MNIST 데이터 셋을 불러와 학습을 시켜, 내가 직접 손으로 쓴 글씨는 인식하는 인공지능을 만들어보도록 하겠습니다. ​ 대략적인 모양입니다. ​ ​ 끝. 카테고리: Tensorflow, BlackSmith

Tensorflow 시작하기 1 (2.1.0 버전 설치하기)

이미지
사용 버전: Python 3.7.6, Tensorflow 2.1.0 운영체제 : Windows 10 x64 Home 1909 ​ Tensorflow(텐서플로우) 설치하기에 대해서 알아보겠습니다. ​ 검색 사이트에서 tensorflow를 입력하여, 공식 사이트에 들어갑니다. ​ 또는 여기로 들어갑니다. https://www.tensorflow.org/ ​ ​ Install을 누릅니다. ​ ​ 설치 사양을 확인합니다. ​ 파이썬 3.5~3.7 버전이 필요하고, 윈도우의 경우 7 이상입니다. 저는 파이썬 3.7.6 버전과 윈도우 10이므로 텐서플로우 2.1.0 버전을 사용할 수 있습니다. ​ 설치법은 오른쪽 상자에 나와있습니다. ​ cmd 창을 켜줍니다. 먼저 pip install --upgrade pip를 해줍니다. ​ 다음 pip install tensorflow를 해줍니다. 2.0 버전부터 tensorflow는 gpu와 분리되어 있지 않습니다. 통합 설치입니다. 다만, gpu를 사용하기 위해서는 gpu library를 설치해 줘야 합니다. 여기선 다루지 않겠습니다. ​ 설치가 완료되었다는 말이 나오면, python 스크립트를 실행합니다. 설치가 완료되었습니다. ​ 끝. 카테고리: Tensorflow, BlackSmith

tensorflow hub.KerasLayer()

이미지
사용 버전: Python 3.7.6, Tensorflow 2.1.0 ​ tensorflow(텐서플로우) hub.KerasLayer()에 대해서 알아보겠습니다. 괄호 안에는 경로, output_shape, input_shape, dtype, handle, trainable, arguments, **kwargs 따위가 들어갑니다. ​ hub.KerasLayer()는 tensorflow hub에 저장된 모델을 불러올 수 있습니다. https://tfhub.dev/ ​ 한 번, tf2-preview/gnews-swivel-20dim을 사용해보겠습니다. https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1 URL을 사용해도 되고, 다운로드해도 됩니다. ​ 두 가지 방법 모두 설명드리겠습니다. ​ 1. URL 사용. Example use를 보면, url을 직접 불러오고 있습니다. ​ ​ 2. 로컬 파일로 다운로드한 후 사용하는 방법입니다. Download Model을 누릅니다. ​ .tar.gz이라는 파일 형식이 생깁니다. gz와 tar이 사라질 때까지 압축을 풀어주세요. ​ 저는 최종적으로 hub라는 파일에 전부 풀었습니다. ​ embedding에 URL 대신, 파일 경로를 적어줍니다. ​ ​ 끝. 카테고리: Tensorflow_python, Python