TensorFlow (12) 썸네일형 리스트형 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 [ubuntu autostart] Autostart program on JetsonTX2 Update 2019.8.20: 작성 2019.9.15: 포스팅 우리가 JetsonTX2를 사용하는 이유는 딥러닝 알고리즘 및 컴퓨팅 파워가 필요한 알고리즘을 임베디드 보드에서 사용하기 위해서이다. 따라서 우리가 사용하는 임베디드 시스템처럼 전원을 켜면 JetsonTX2에서 코딩한 프로그램들이 자동으로 실행되도록 설정해야 한다. 본 포스팅에서는 JetsonTX2 환경에서 작성한 프로그램이 JetsonTX2에 전원을 주었을 때 자동으로 실행되도록 설정하는 방법에 대해 설명한다. 본 포스팅은 Reference [1]의 과정을 따라 하면서 정리하였다. 1. Ubuntu에서 'startup Applications'를 검색한다. 2. 'Startup Applications'를 클릭하면 아래와 같이 "Startup.. openCV, tqdm, scipy Installation on Jetson TX2 Update 2019.8.20: 작성 2019.9.8: 포스팅 Jetson TX2에 ubuntu와 JacPack을 설치하면 임베디드 보드에서 딥러닝을 구현할 준비가 된 것이다. 이제 본인이 활용하는 딥러닝 프레임워크를 선택하여 설치하고 딥러닝 알고리즘을 구현하면 된다. 본인은 tensor flow를 이용해서 딥러닝 알고리즘을 구현하기 때문에 tensor flow를 설치하였다. 설치 방법은 이전 포스팅을 확인 바란다. 딥러닝 알고리즘 중에서 CNN(Convolutional Neural Network)와 같이 이미지를 데이터로 사용하는 딥러닝을 구현하기 위해서는 opencv의 설치가 필수적이다. 본 포스팅에서는 Jetson TX2에 opencv를 설치하는 과정을 포스팅하고자 한다. 이와 함께 tqdm과 sc.. Tensorflow Installation on Jetson TX2 Update 2019.8.20: 작성 2019.8.29: 링크 및 오류 수정 2019.9.1: 포스팅 Jetson TX2에 ubuntu와 JetPack을 깔았다면 이제 임베디드 시스템에서 딥러닝을 할 준비가 어느정도 된 것이다. 이제부터는 본인이 어떤 프레임워크로 딥러닝을 구동할지 결정하여 프레임워크를 설치하면 된다. 본인은 Tensorflow를 기반으로 딥러닝 알고리즘을 구현하고 있기 때문에 본 포스팅에서는 JetsonTX2에 Tensorflow를 설치하는 방법에 대해 포스팅 하려고 한다. 참고로 JetsonTX2에 ubuntu와 JetPack을 설치하는 방법은 유투브 아래의 링크를 참조하길 바란다. 본인은 ubuntu16.04에 Jetpack 3.3을 설치하였다. https://www.youtube... 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.. 이전 1 2 다음