본문 바로가기

정보공유/개발&코딩

[TensorFlow 기초강좌] Neural Network (1/3)









[TensorFlow 기초강좌] Neural Network (1/3)

pandas 설치 & csv 파일 불러오기



 "우분투에 Tensorflow 설치하기"에 이어 "TensorFlow 기본사용법 I (jupyter notebook)"에서 텐서플로우를 설치하고 jupyter라는 에디터를 열어서 텐서플로우를 불러오는 과정까지 해보았습니다. 그리고 TensorFlow 기본사용법 I I 편, I I I 편, IV편에서 기본적인 사용법에 대해서 살펴보았습니다. 이번에는 본격적으로 Neural Net을 만들어 트레이닝을 해보고 임의의 데이터를 통해서 결과를 살펴보겠습니다.


  우선 상황을 하나 만들어 보겠습니다. 동물원에서 북극곰과 판다가 A지역과 B지역을 오갈 수 있습니다. 먹이를 나눠주기 전에 어떤 지역에 몇 마리의 판다와 북극곰이 있는지 파악을 해야하는데 사람이 항상 지켜보기에는 실수도 많고 낭비가 너무 심해서 통로에 체중계와 카메라를 달아서 이것을 파악하려고 합니다.




  그래서 몸무게와 몸길이 정보만으로 북극곰인지 판다인지 구분하는 프로그램을 만들어 보겠습니다. 여기서 만들어 볼 코드는 아래의 그림과 같이 2가지 종류의 데이터를 여러 개 입력 받아 이것이 판다인지 북극곰인지 0 또는 1로 구분하는 프로그램이고 hidden layer가 3개 입니다. 각 레이어 안에 노드는 4개, 5개, 4개가 있습니다.




  동물의 정보를 하나의 메트릭스로 나타낼 수 있습니다. 앞을 무게, 뒤를 키로 해서 데이터를 정리할 수 있습니다. 판다의 크기는 120 ~ 150cm, 무게는 75 ~ 160kg정도이고 북극곰은 몸길이가 200 ~ 300cm, 무게는 150 ~ 650kg으로 두 데이터가 확연히 구분될 수 있습니다.


  우선 실습을 하던 폴더를 열어 practice3라는 이름으로 파일을 만들어 줍니다. 그리고 아래 링크에서 csv파일을 다운로드 받아 같은 폴더에 넣어줍니다.(practice3파일이 위치한 곳)



bear_data.csv



  파일을 열어보시면 아래와 같이 무게 그리고 그 데이터가 북극곰인지 판다인지를 0과 1로 표시해둔 파일을 확인하실 수 있습니다.



  TensorFlow에서 이 csv파일을 이용하기 위해서 여러가지 방법이 있지만, 그중에서 가장 간단한 방법을 통해 이 파일을 불러오도록 하겠습니다. pandas라는 프로그램을 설치해주시면 한 줄의 코드로 이 데이터를 사용할 수 있게 불러 올 수 있습니다. 터미널을 열어(ctrl + alt + t) 아래의 명령어를 입력해서 pandas를 설치해줍니다.


Python 2


$ sudo pip install pandas



Python 3

$ sudo pip3 install pandas



  설치를 완료하셨다면 터미널 창(ctrl + alt + t)을 열어 jupyter notebook을 열어주시고 practice3파일을 열어주세요.


$ jupyter notebook




  그리고 첫 줄에 tensorflow를 import해주시고 방금 설치한 pandas도 pd로 import 해줍니다.


  아래의 코드를 입력하여 csv파일을 가져와 보겠습니다. 여기서 pd.read_csv를 이용하여 파일을 불러오는 것이고 "./" 경로는 현재 작업중인 위치를 의미합니다. 그리고 usecols는 몇 번째 행을 이용할지를 선택하는 것입니다. bear_data.csv파일의 첫번째와 두번째가 입력 그리고 세번째와 네번째가 출력 데이터이기 때문에 0과 1 그리고 2, 3 행으로 지정하겠습니다.


input_data = pd.read_csv("./bear_data.csv", usecols=[0, 1])
output_data = pd.read_csv("./bear_data.csv", usecols=[2, 3])



  그리고 print 함수를 이용하여 입력받은 데이터가 제대로 불러졌는지 출력해보겠습니다. 아래와 입력데이터와 출력데이터가 print되는 것을 확인하실 수 있습니다.


print input_data
print output_data





  2편에서는 본격적으로 Neural Net을 구성해보겠습니다.




※ 작성된 자료는 TensorFlow 공식 홈페이지(https://www.tensorflow.org)의 내용을 참고하여 작성했습니다.

페이스북에 공유하기