얼마전에 텐서플로우로 풀어보는 다변수 입력에 대한 선형회귀 예제라는 글로 나이, 체중을 입력하고 혈중체지방 함량을 얻어오는 선형회귀 이야기[바로가기]를 했었는데요. 그리고 그 후, ETRI의 장 박사님[바로가기]의 강력한 권고(^^)를 받아 케라스(Keras)를 학습하지 않을 수 없게 되었지요. 사실은 케라스를 이용한 프로젝트(국가가 지원해 주지 않는 단지 의지만 가진 프로젝트.ㅠㅠ. 우린 너무 가난해요.ㅠㅠ)를 시작할 수도 있거든요. 뭐 아무튼... 케라스를 급하게 공부해야 겠다고 생각하고, 자료를 찾다가, 바로 김태영님의 블록과 함께 하는 파이썬 딥러닝 케라스[바로가기]라는 책을 읽고 케라스의 세계가 정말 멋지다는 생각을 하게 되었습니다. 특히 김태영님의 설명하시는 스킬은 정말 엄청난 것 같습니다. 존경합니다.^^. 아무튼.. 그래서 그 책의 내용과 또 김태영님이 운영하시는 블로그에서 케라스 강좌[바로가기]를 참조하여 공부하다가, 문득.. 실습예제로 예전에 텐서플로우로 했던 선형회귀 예제[바로가기]를 케라스로 테스트해보고 싶어진거죠^^ 이제 시작합니다.~~~
언제나 그렇듯 필요한 모듈을 import해야죠. 텐서플로우는 버전이 1.5.0이고, 케라스는 2.1.5버전입니다. 저 Future Warning은 왜 뜨는 걸까요... 킁...
그리고, 당시 다룬 예제 파일은 [바로가기]에서 받으시구요... numpy로 받아 주었습니다^^
어떤 데이터인지 한 번 그려볼까요~^^
아~ 이렇게 생겼군요. 그 때 예제에서 다룰때도 말씀드렸지만, 데이터가 의미하는 바를 뭐 설명하지는 못하겠습니다.ㅠㅠ. 더 쉬운 용어로 되어 있는 예제를 가지고 올걸..ㅠㅠ.
그리고, 입력과 출력 데이터를 잡고.. 여기서는 꼭 훈련/검증용으로 나누지 않아도 된다고 생각합니다. 그냥 데이터가 25개뿐이기도 하고, 또 그냥 전 데이터를 다 훈련에 사용했다고 해두죠. 아무튼.. 학습률(lr)은 0.01로 두고, Dense를 하나 추가하고, loss는 mean-square-error[바로가기]로 두고, optimizer는 아까 0.01로 학습률을 적용한 rmsprop[바로가기]로 두었습니다. summary라고 할 것도 없이 간단하네요^^
fit~~~~~~~~
loss 그래프로 뿌려볼까요~~
넵~~~ 음.. 이게 괜찮다는 건지 아니라는 건지... 는 살짝 패스...
네... 100kg 체중에 40살, 60kg 체중에 25살일때의 혈중지방함량치(데이터 기준)를 보여주네요.
이번에는 가중치와 bias값을 get_weights로 얻어와서
직선을 그려보도록 하죠~ numpy가 제공하는 행렬 연산을 그냥 사용해 주기만 하면 되겠습니다^^
그리고~ 아까 처음에 그렸던 데이터에 직선을 추가하는 거죠^^
짠~~~~~ 이번 예제를 통해 keras를 사용할 기회(앞으로 장 박사님과 같이하는 일에 keras가 사용된다고 합니다.)를 주신 장 박사님과 케라스에 대해 너무나도 깔끔하게 설명해주신 김태영님께 너무 감사합니다~~~~
'Theory > DeepLearning' 카테고리의 다른 글
[Keras] MNIST 데이터 셋을 이용한 필기 글씨에 대한 CNN Tutorial (56) | 2018.04.16 |
---|---|
[Keras] 타이타닉 생존자 분석. 디카프리오는 정말 살 수 없었을까? (32) | 2018.04.13 |
[Tensor Flow] 신경망을 조금 더 깊게 하고 xavier_initializer를 이용해서 MNIST 숫자 판독해보기 (30) | 2018.04.09 |
[Tensor Flow] 단층 신경망으로 텐서플로우를 이용해서 MNIST 숫자 판독해보기 (18) | 2018.03.02 |
[Tensor Flow] XOR 문제를 해결하기 위해 은닉층(Hidden Layer)를 하나 추가해 보기 (20) | 2018.02.19 |
[Tensor Flow] 텐서보드 Tensorboard 사용해보기 (26) | 2018.02.09 |
[Tensor Flow] 텐서플로우로 풀어보는 다변수 입력에 대한 선형회귀 예제 - 나이, 체중에 대한 혈액지방함량 문제- (26) | 2018.01.30 |