티스토리 친구하기

본문 바로가기

딥러닝/Your own dataset

(8)
CNN code - your own mnist dataset 이번 포스팅에서는 CNN(Convolutional Neural Network)를 이용해서 your own mnist dataset을 classification하는 코드에 대해 말씀드리도록 하겠습니다. DNN(Deep Neural Network)와 CNN의 가장 큰 차이점은 import한 이미지를 flat하게 1D로 바꾸는지(28x28=784), 아니면 2D(28x28) 이미지를 그대로 사용하는지에 있습니다. 그래서 수정할 코드는 Model을 design하는 부분입니다. Model Design - DNN X = tf.placeholder(tf.float32, [None, 784]) Y = tf.placeholder(tf.float32, [None, num_classes]) keep_prob = tf.pla..
CNN code - your own mnist dataset - Tensorflow API 2개의 포스팅에 걸쳐서 CNN(Convolutional Neural Network)의 코드를 작성하기 위한 Tensorflow API를 소개하고, 이를 기반으로 your own dataset (여기서는 mnist dataset)을 불러와서 classification 하는 코드에 대해 말씀드리도록 하겠습니다. tf.nn.conv2d tf.nn.max_pool tf.nn.avg_pool
your own mnist dataset classification with tensorflow Update 2019.8.17: Writing 2019.8.26: Posting 본 포스팅은 github에 업로드한 mnist_dnn repository에 대한 설명이다. 코드에서 사용한 여러가지 API 및 모듈에 대한 해설은 "mnist my own data" 포스트를 참조하기 바란다. dnn_mnist.py import tensorflow as tf import numpy as np from glob import glob from PIL import Image from util import get_label_from_path from util import data_slice_and_batch # 1.Hyper Parameter num_epoch = 2 batch_size = 500 height = 2..
mnist your own dataset - tensorflow.data.Dataset 3 Update 2019.8.13: Posting import tensorflow as tf import numpy as np from glob import glob from PIL import Image ### 사용할 함수 정의 ### def get_label_from_path(DATA_LIST): label_list = [] for path in DATA_LIST: label = path.split('/')[-2] label_list.append(label) return label_list def _read_py_function(DATA_PATH_LIST, LABEL_LIST): image = np.array(Image.open(path)) image.reshape(image.shape[0], image..
mnist your own dataset - tensorflow.data.Dataset 2 Update 2019.8.9: Posting def data_slice_and_batch(DATA_PATH_LIST, labels, bufferSize, batch_size): dataset = tf.data.Dataset.from_tensor_slices((path_list, labels)) dataset = dataset.map(lambda path_list, labels: tuple(tf.py_func(_read_py_function, [path_list, labels], [tf.int32, tf.uint8]))) dataset = dataset.shuffle(buffer_size=(bufferSize)) dataset = dataset.repeat() dataset = dataset.batch(b..
mnist your own dataset - tensorflow.data.Dataset 1 Update 2019.7.26: Posting 2019.8.17: 폰트 및 오타 수정 이제부터 포스팅하려고 하는 내용이 My own data 시리즈에서 가장 중요한 부분이 될 것이다. 데이터를 학습시키기 위해 우리는 정답(label)을 알고 있는 우리의 이미지를 몇 장 골라서(batch) 우리가 디자인한 deep learning graph에 넣어준다. 학습이 잘 되도록 graph에 넣기 전에 학습할 이미지를 섞어(shuffle) 주는 것도 잊지 말자!! 두서없이 얘기했지만, 위의 내용을 구현하기 위해서는 다음과 같은 순서로 코드를 작성해야 한다. 이미지와 라벨(정답) 매칭시키기 [tf.data.Dataset.from_tensor_slices] 데이터 섞기(순서대로 학습하면 제대로 학습이 되지 않음) [s..
mnist your own dataset - mnist download Update 2019.7.19: Posting 2019.8.17: 폰트 및 오타 수정 1. 학습할 데이터를 폴더에 저장하기 앞서 포스팅에서 말했듯이 MNIST dataset은 단 2줄의 코드로 다운로드하여 사용할 수 있지만, 여기서는 MNIST dataset을 잘 정리된 dataset이 아니라 우리가 측정하거나, 인터넷 크롤링, 그리고 다양한 방법으로 획득한 raw 데이터라고 가정하고 포스팅을 진행할 것이다. 포스팅을 진행하기 위해서, 측정을 통해 데이터를 획득하는 대신 MNIST dataset을 다운로드하도록 하자. MNIST dataset은 구글 검색 또는 다음의 구글 드라이브에서 다운로드할 수 있다. 구글 검색: mnist image download or https://drive.google.com..
mnist your own dataset Update 2019.7.15: Posting Introduction 보통 딥러닝의 이론적 영역을 공부하고 나서 가장 많이, 그리고 가장 처음 해보는 예제는 MNIST(Modified National Institute of Standards and Technology) 데이터베이스, 즉 손으로 쓴 숫자들을 Classification(분류)하는 문제일 것이다. MNIST dataset을 Classification하는 코드는 Github 또는 시중에 판매되는 교재에서 쉽게 찾을 수 있으며, 분류하려는 MNIST dataset 또한 아래와 같이 2줄의 코드로 쉽게 다운로드 할 수 있다. from tensorflow.examples.tutorials.mnist import input_data mnist = in..