[모두의 딥러닝] lab 04-2. Loading Data from File
* 많은 multi-variable을 파일에서 직접 데이터를 읽어와보자!
- 데이터가 많을 때, 텍스트 파일을 불러와 쓴다.
- .csv 파일에 보통 정리를 많이 한다.
- 가장 간단하게 파일을 읽어오는 방법: numpy의 loadtxt() 함수
- loadtxt(파일이름, 구분자, 데이터타입)
- 단점: 전체 데이터가 같은 데이터 타입이어야 함!
- xy를 ':(콜론)'으로 슬라이싱하여 x_data와 y_data에 배정
ex) xy[:-1] = 전체의 -1
* tense를 다룰 때 슬라이싱 많이 사용
- 값이 맞게 배정되었는지 한번 출력해보고 사용하기!
** python의 슬라이싱
- b[:, 1]
: comma 앞의 값은 array의 row
: 콜론 하나만 있으면 전체 값
: 콜론 뒤의 1 = 인덱스 1 값을 가져오게 됨
- 데이터의 개수에 맞게 3이라는 shape를 X에 배분
- W
: 3개가 들어와서(X 개수) 1개의 결과물(Y 개수)을 내도록 Weight 설정
- b
: 출력값(Y 개수)이 1개이므로 1을 줌
- 학습
- 학습 후에 자신의 점수를 넣어서 예측해볼 수 있음.
배운 것
1. numpy를 이용하여 파일 읽어오기
2. 학습한 것을 가지고 점수 예측
Queue Runners
** 파일이 너무 커서 메모리에 한번에 올리기 힘들 때?
--> numpy를 이용하기는 힘들 것.
- Queue Runners
: 텐서플로우에서 제공하는 시스템
: 여러 개의 파일에서 읽어올 때 큐에 쌓은 후 Reader로 연결하여 양식에 맞게 Decoder를 한다.
: 필요한 batch만큼 큐에서 읽어와서(꺼내와서) 학습을 시킨다.
: 큰 데이터를 읽고 쓸 때 유용
- 진행과정 (3 step)
: 파일들의 리스트를 만들어 줌. (기본)
: shuffle, name 등도 줄 수 있음.
: 파일을 읽어 올 Reader 정의
: TextLineReader()
(Binary를 읽는 리더도 있음)
: 텍스트 파일을 읽어올 때 기본적으로 써 주는 것
* value 값을 어떻게 parsing할 것인가?
: decode_csv() 를 통해서 함.
- recode_defaults=
: 읽어 올 때 필드에 대한 값이 어떤 데이터 타입인가를 정해줄 수 있음.
ex) [0.] : float 데이터 타입
- tf.train.batch
: 값을 batch라는 일종의 펌프같은 것으로 읽어온다.
: tf.train.batch(X_DATA, Y_DATA, batch_size=한번에 몇 개 가져올 것인지)
: 그 이후의 복잡한 부분은 텐서플로우가 다 알아서 해 준다.
: train_x_batch와 train_y_batch 또한 tense이기 때문에 sess.run()을 해 준다.
--> x_batch, y_batch를 추후에 feed_dict로 값을 넘겨주면 된다.
- 소스코드
- session 안에서 batch를 펌프질을 하듯 데이터를 뽑아온다.
- shuffle_batch
: batch의 순서가 섞이면 좋겠을 때 사용!
'인공지능' 카테고리의 다른 글
[모두의 딥러닝] lec 05-2. Logistic Regression의 cost 함수 설명 (0) | 2019.04.08 |
---|---|
[모두의 딥러닝] Logistic Classification의 가설 함수 정의 (0) | 2019.04.07 |
[모두의 딥러닝] lab 04-1. multi-variable linear regression을 TensorFlow에서 구현하기 (0) | 2019.04.05 |
[모두의 딥러닝] lec 04. multi-variable linear regression (0) | 2019.04.04 |
[모두의 딥러닝] lab 03. Minimizing Cost (0) | 2019.04.03 |
댓글