1. What is keras? 케라스(Keras)는 텐서플로우 라이버러리 중 하나로, 딥러닝 모델 설계와 훈련을 위한 고수준 API이다. 사용자 친화적이고 모델의 구성이 쉽기 때문에 기본 이미지 분류 및 텍스트 분류에 권장되며, 실제로 텐서플로우 2.0 버전에서는 플레이스 홀더나 세션의 개념 등을 없애고 파이썬으로 작성된 케라스를 접목하여 파이썬 언어를 사용하는 개발자들의 생산성을 많이 높이기도 했다. 파이토치, CNTK 등의 많은 머신러닝 프레임워크가 있음에도 불구하고 많은 사람들이 텐서플로우를 사용하는 이유 중 하나가 바로 케라스의 존재 때문이라고 생각하기도 한다. 그럼 이 케라스를 사용하여 텐서플로우 공식 홈페이지 튜토리얼에도 나와있는 패션 mnist 이미지 분류 문제부터 접근해보자. 첫 번째 신..
텐서플로우 검색 결과
TensorFlow 모두를 위한 엔드 투 엔드 오픈소스 머신러닝 플랫폼입니다. 도구, 라이브러리, 커뮤니티 리소스로 구성된 TensorFlow의 유연한 환경입니다. www.tensorflow.org 1. 텐서플로우 이름의 뜻 텐서플로우(Tensorflow)에서 텐서(Tensor)는 "다차원 수학 배열(Multidimensional arry of numbers)라고 말한다. 우선 숫자 한 개는 스칼라(scalar)이다. 이 스칼라와 비슷한 성질을 가진 또다른 스칼라들을 같이 묶어 놓은, 1차원 배열을 벡터(vector)라고 하고, 이를 rank1 tensor 라고 한다. 또 이 벡터들을 여러개 묶어 놓은 2차원 배열을 매트릭스(Matrix)라고 하고, 이를 rank2 tensor라고 한다. 여기서 각각의 ..
6. 플레이스홀더(placeholder), Feeding 다른 텐서를 할당하기 위해 사용한다. 위 말의 의미가 이해하기 어려울 수도 있다. 쉽게 말해서, 입력값(X)을 넣어놓을 빈 통이라고 생각 하면 된다. "플레이스 홀더(빈 통)에 입력값을 넣어주는 과정"을 피딩(Feeding)이라고 한다. ※세션을 작동시킬 때(sess.run(y, feed_dict={W: , b: })),의 형태로 모든 placeholder값을 feed_dict에 넣어주어야 한다. 왜 굳이 입력값을 플레이스 홀더라는 곳에 입력값을 넣어야 되는가? 에 대해서 내가 생각해본 결과 입력값은 여러 데이터들(수치가 정해진) 값을 포함한 형태이다. 상수는 변하지 않는 수이고 값이 1개가 들어가는 경우가 통상적이다. 따라서 상수로 입력값을 받는..
텐서플로우의 기본 개념 텐서플로우는 뉴럴네트워크를 위한 라이브러리이므로, 기존에 우리가 알던 파이썬 프로그래밍과는 조금 다른 형태를 보인다. 머신러닝, 딥러닝은 여러 연산처리를 해야하는 과정이다. 파이썬으로만 프로그램을 돌리게 된다면, 속도가 너무 느려진다. 텐서플로우는 파이썬에서 그래프(연산)의 여러 계산들을 디자인(설계)하고, 그 디자인 된 것들을 돌리는 것은 파이썬 외부 device(CPUs, GPUs)에서 하는 것이다. (이때, 아래 나올 변수 초기화를 위해 device를 C, C++로 이해를 하면 편하다.) - 연산은 graph로 표현합니다. - graph는 Session내에서 실행됩니다. - 데이터는 tensor로 표현합니다. - 변수(Variable)는 그 상태를 유지합니다. - 작업(ope..
최근댓글