더북(TheBook)

1.3.1 TensorFlow, Keras, TensorFlow.js에 대한 간략한 역사

TensorFlow.js는 자바스크립트에서 딥러닝을 수행할 수 있는 라이브러리입니다. 이름에서 알 수 있듯이 TensorFlow.js는 파이썬 딥러닝 프레임워크인 텐서플로(TensorFlow)에 대해 일관성과 호환성을 가지도록 설계되었습니다. TensorFlow.js를 이해하기 위해 텐서플로의 역사를 간략하게 살펴보겠습니다.

텐서플로는 구글의 딥러닝 엔지니어 팀이 2015년 11월에 공개한 오픈 소스입니다. 이 책의 저자인 저희 역시 이 팀의 일원입니다. 오픈 소스로 공개된 이후 텐서플로는 엄청난 인기를 얻었습니다. 이제는 구글과 대규모 기술 커뮤니티에서 다양한 산업 애플리케이션과 연구 프로젝트를 위해 사용하고 있습니다. ‘텐서플로’란 이름은 이 프레임워크로 작성된 프로그램 내부에서 일어나는 동작을 나타냅니다. 텐서(tensor)라 부르는 데이터 표현이 층과 다른 데이터 처리 노드를 통과해 흘러(flow) 머신 러닝 모델의 추론과 훈련을 수행하는 것입니다.

먼저 텐서가 무엇일까요? 이는 컴퓨터 과학자가 ‘다차원 배열’을 간략하게 말하는 것뿐입니다. 신경망과 딥러닝에서 모든 데이터와 모든 연산의 결과는 텐서로 표현됩니다. 예를 들어 흑백 이미지는 2D 텐서인 2D 숫자 배열로 표현될 수 있습니다. 컬러 이미지는 일반적으로 컬러 채널을 위한 추가 차원을 더해 3D 텐서로 나타냅니다. 사운드, 비디오, 텍스트는 물론 다른 어떤 유형의 데이터도 텐서로 표현할 수 있습니다. 각 텐서는 두 개의 기본 속성을 가지는데, (float32나 int32 같은) 데이터 타입과 크기입니다. 크기는 텐서의 차원별 길이입니다. 예를 들어 2D 텐서의 크기는 [128, 256]이고 3D 텐서의 크기는 [10, 20, 128]입니다. 데이터가 해당 데이터 타입과 크기의 텐서로 변환되면, 데이터의 원래 의미와는 상관없이 이 데이터 타입과 크기를 받을 수 있는 어떤 유형의 층에도 전달할 수 있습니다. 따라서 텐서는 딥러닝 모델의 공통 언어입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.