본문 바로가기

코드

Deep AE를 이용한 가짜 이미지 생성 【7】AutoEncoder 기본 다지기 / 이미지 생성 실습으로 익히는 AE 이번에는 Deep AE를 배워보자 기존에 AE에서 순환신경망을 여러 개 쌓아 깊게 변형된 모델이다 기존코드에서 사용했던 모듈들을 그대로 사용하기에 전처리까지는 생략을 한다(이전 글 참고). Hidden_input1 = 512 Hidden_input2 = 256 Hidden_input3 = 128 Hidden_input4 = 64 Hidden_input5 = 32 input_layer = layers.Input(shape=(784,)) Encoding = layers.Dense(Hidden_input1)(input_layer) Encoding = layers.Dense(Hidden_input2)(Encoding) Encoding .. 더보기
<AE 이미지 생성 실습> 직접 코드 구현해보기 【7】AutoEncoder 기본 다지기 / 이미지 생성 실습으로 익히는 AE 이번에는 AE 모델을 만들어보자 try: %tensorflow_version 2.x" except Exception: pass import tensorflow as tf import numpy as np from tensorflow.keras import layers,models,datasets import matplotlib.pyplot as plt 모델을 작성하기 전 간단히 패키지를 선언한다. (x_train,_),(x_test,_) = datasets.mnist.load_data() 학습에 사용할 데이터셋은 Mnist이고 AE는 비지도 학습이므로 y의 값을 불러 올 필요가 없다. x_train = x_train.astype.. 더보기
LSTM을 이용한 시계열 데이터 분석(실습) 【5】RNN 기본 다지기 / 실습으로 익히는 순환신경망 LSTM을 이용한 시계열 데이터 분석 (실습) 이전에 실습했던 내용은 SimpleRNN을 사용했고 이번에는 LSTM을 이용한 시계열 데이터 처리를 배워보자 데이터셋은 SimpleRNN 실습 때 사용했던 것을 재사용한다. data = np.sin( np.pi * np.arange(0, 100)* 2.025 ) + np.random.random(100) x = np.array([data[i+j] for i in range(len(data)-10) for j in range(10)]) x_train = x[:700].reshape(-1,10,1) x_test = x[700:].reshape(-1,10,1) y = np.array([data[i+10] fo.. 더보기
예제로 다시 한번 이해하는 RNN 구조 【5】RNN 기본 다지기 / 순환 신경망의 출현 예제로 다시 한번 이해하는 RNN 구조 RNN을 실습해보자 import numpy as np from matplotlib import pyplot as plt from tensorflow.keras import datasets, layers, models 실습에 사용되는 패키지들이다. 텐서플로우 2.0은 선언하는 것은 생략하고 넘파이, 맷플롯립, 케라스 이렇게 사용된다. 이번에는 데이터셋을 호출하지 않고 만들어서 사용한다. data = np.sin( np.pi * np.arange(0, 100)* 2.025 ) + np.random.random(100) x = np.array([data[i+j] for i in range(len(data)-10) for j.. 더보기
YOLO (이론 + 실습) 【3】이미지 분류를 넘어, Object Detection 모델 / R-CNN 이론 + 실습 YOLO (이론 + 실습) YOLO는 현재 v3 모델까지 나온 상황이며 v3 코드를 다루겠다 !wget https://pjreddie.com/media/files/yolov3.weights YOLOv3를 사용하기에 앞서 가중치를 받아야 한다 import os import scipy.io import scipy.misc import numpy as np import pandas as pd import PIL import struct import cv2 from numpy import expand_dims import tensorflow as tf from skimage.transform import resize fr.. 더보기
faster R-CNN (이론 + 실습) 【4】이미지 분류를 넘어, Object Detection 모델 / R-CNN 이론 + 실습 faster R-CNN (이론 + 실습) Resnet을 입힌 Detection model(이론 + 실습) 텐서플로우 공홈에서 배포하고 있는 Faster R-CNN (inception resnet) 모델이다. 코드를 보면서 어떤 구조인지 이해를 해보자 import tensorflow as tf import tensorflow_hub as hub import matplotlib.pyplot as plt import tempfile from six.moves.urllib.request import urlopen from six import BytesIO import numpy as np from PIL import Im.. 더보기
이미지 분류하기 - 실습 【3】최근 CNN 응용 모델 이해하고 사용하기 이미지 분류하기 - 실습 케라스에서는 이미 학습이 완료된 이미지 분류모델들을 모듈로 공유하고 있습니다. 그래서 해당 모델들을 쓰는 법을 배워보겠습니다. 해당 모델들은 Imagenet이라는 데이터셋으로 학습을 하였고, 입력을 받을수 있는 이미지크기부터 RGB 배열까지 달라 사용에 유의해야합니다. from tensorflow.keras.applications import VGG16 from tensorflow.keras.applications import VGG19 from tensorflow.keras.applications import ResNet50 from tensorflow.keras.applications import ResNet152 from ten.. 더보기
이미지 분류하기 【2】CNN_합성곱 신경망 / 이미지 분류하기 이미지 분류하기 CNN으로 이미지를 분류해보자. try: %tensorflow_version 2.x except Exception: pass import tensorflow as tf #텐서플로우 2.x 실행 CNN을 돌리기에 앞서 텐서플로우(Tensorflow) 버전을 2.x으로 바꿔야 한다. 그래서 위에 코드를 실행하면 2.x로 바뀝니다. from tensorflow.keras import datasets, layers, models 모델을 작성하기에 앞서 keras 패키지를 호출한다. (train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data() 이미지 분류에 사.. 더보기
[머신러닝] 케라스로 RNN 순환 층 구현하기 (파이썬 코드) 1. 케라스의 순환 층(RNN) RNN은 Recurrent Neural NEtwork의 약자로, 시퀀스 모델인 순한 신경망을 의미합니다. 즉, RNN은 입력과 출력을 시퀀스 단위로 처리하는 모델인데요, RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로 보낼 때, 은닉층 노드의 다음 계산 입력으로도 결과값을 보낸다는 특징을 갖고 있습니다. 한편, 케라스로 이러한 순환 층을 구현할 수 있는데요, SimpleRNN 라이브러리를 이용하여 구현할 수 있습니다. SimpleRNN은 케라스에 있는 모든 순환 층과 동일하게 두 가지 모드로 실행할 수 있는데요, 전체 시퀀스를 반환하거나 입력 시퀀스에 대한 마지막 출력만 반환할 수 있습니다. 그렇다면, 간단한 RNN 모델을 만들어보겠습니다. f.. 더보기
[머신러닝] GRU란? 케라스로 GRU 은닉층 추가하기 (코드) 1. GRU란? GRU(Gated Recurrent Unit)란 LSTM과 유사한 구조를 가지는 모델을 말하는데요, LSTM의 장기 의존성 문제에 대한 해결책을 유지하면서 은닉 상태를 업데이트하는 계산을 감소시킨 알고리즘을 말합니다. 또한 GRU의 가장 큰 특징은 출력게이트, 입력게이트, 삭제게이트를 가진 LSTM과 달리 업데이터 게이트와 리셋 게이트만 갖고 있다는 점입니다. LSTM과 GRU가 비슷한 구조를 가지고 있지만 어느 게 더 좋다고 말할 수는 없는데요, 다만 GRU에서 매개변수의 양이 적기 때문에 데이터의 양이 적을 땐 GRU를 사용하는 것이 좋고, 데이터의 양이 많다면 LSTM이 적절할 수 있습니다. 2. 케라스로 GRU 은닉층 추가하기 한편, 케라스를 이용해 GRU 은닉층을 추가하고 싶다면.. 더보기