텐서플로우란? 작동 방식 [예제 포함]

게시 됨: 2021-09-22

TensorFlow는 기계 학습 모델을 구축하는 데 사용되는 오픈 소스 라이브러리입니다. 기계 학습 및 인공 지능 작업에 열정을 가진 모든 사람을 위한 놀라운 플랫폼입니다. 또한 머신 러닝 시장이 꾸준히 성장하면서 기술 회사가 AI 기술의 다양한 기능을 탐색함에 따라 TensorFlow와 같은 도구가 각광을 받고 있습니다. 의심의 여지 없이 전 세계 기계 학습 시장은 2027년까지 1,171억 9,000만 달러의 가치에 도달할 것으로 예상됩니다 .

그러나 처음 에는 TensorFlow가 무엇이며 전 세계 개발자들 사이에서 TensorFlow가 인기 있는 선택이 되는 이유 를 아는 것이 적절합니다 .

목차

텐서플로우란?

TensorFlow는 특히 심층 신경망에 중점을 둔 머신 러닝을 위한 종단 간 오픈 소스 플랫폼입니다. 딥 러닝은 대규모 비정형 데이터 분석을 포함하는 기계 학습의 하위 집합입니다. 딥 러닝은 후자가 일반적으로 구조화된 데이터를 다룬다는 점에서 기존 머신 러닝과 다릅니다.

TensorFlow는 유연하고 포괄적인 라이브러리, 도구 및 커뮤니티 리소스 모음을 자랑합니다. 이를 통해 개발자는 최첨단 기계 학습 기반 애플리케이션을 구축하고 배포할 수 있습니다. TensorFlow의 가장 좋은 점 중 하나는 Python을 사용하여 최적화된 고성능 C++에서 애플리케이션을 실행하면서 애플리케이션을 빌드하기 위한 편리한 프론트 엔드 API를 제공한다는 것입니다.

Google Brain 팀은 처음 에 내부용 TensorFlow Python 딥 러닝 라이브러리를 개발했습니다. 그 이후로 오픈 소스 플랫폼은 R&D 및 생산 시스템에서 사용이 엄청나게 증가했습니다.

일부 TensorFlow 기본 사항

이제 우리 는 TensorFlow가 무엇인지에 대한 기본적인 아이디어를 얻었 으므로 플랫폼에 대해 더 자세히 알아볼 차례입니다.

다음은 TensorFlow와 관련된 몇 가지 기본 개념에 대한 간략한 개요입니다. 플랫폼의 이름이 유래한 TensorFlow의 핵심 구성 요소인 텐서부터 시작하겠습니다.

텐서

TensorFlow Python 딥 러닝 라이브러리 에서 텐서는 데이터 유형을 나타내는 배열입니다. 1차원 벡터, 배열 또는 2차원 행렬과 달리 텐서는 n 차원을 가질 수 있습니다. 텐서에서 값은 알려진 모양을 가진 동일한 데이터 유형을 보유합니다. 모양은 차원을 나타냅니다. 따라서 벡터는 1차원 텐서, 행렬은 2차원 텐서, 스칼라는 0차원 텐서가 됩니다.

텐서

원천

모양

TensorFlow Python 라이브러리에서 모양 텐서의 차원을 나타냅니다.

TensorFlow Python 라이브러리에서 모양은 텐서의 차원을 나타냅니다.

원천

위 이미지에서 텐서의 모양은 (2,2,2)입니다.

유형

유형은 텐서의 값이 보유하는 데이터의 종류를 나타냅니다. 일반적으로 텐서의 모든 값은 동일한 데이터 유형을 보유합니다. TensorFlow의 데이터 유형은 다음과 같습니다.

  • 정수
  • 부동 소수점
  • 부호 없는 정수
  • 부울
  • 문자열
  • 양자화된 연산이 있는 정수
  • 복소수

그래프

그래프는 입력 텐서에서 연속적으로 발생하는 일련의 계산입니다. 모델의 수학적 연산을 나타내는 노드 배열로 구성됩니다.

세션

TensorFlow의 세션은 그래프의 작업을 실행합니다. 그래프의 노드를 평가하기 위해 실행됩니다.

연산자

TensorFlow의 연산자는 사전 정의된 수학 연산입니다.

텐서는 어떻게 작동합니까?

TensorFlow에서 데이터 흐름 그래프는 데이터가 일련의 처리 노드를 통해 이동하는 방식을 설명합니다. TensorFlow는 데이터 흐름 그래프를 사용하여 모델을 빌드합니다. TensorFlow의 그래프 계산은 텐서 간의 상호 연결을 통해 촉진됩니다.

n차원 텐서는 입력으로 신경망에 공급되며 출력을 제공하기 위해 여러 작업을 거칩니다. 그래프에는 노드 네트워크가 있으며 각 노드는 수학 연산을 나타냅니다. 그러나 노드 사이의 가장자리는 다차원 데이터 배열 또는 텐서입니다. TensorFlow 세션을 사용하면 그래프 또는 그래프의 일부를 실행할 수 있습니다. 이를 위해 세션은 하나 이상의 시스템에 리소스를 할당하고 중간 결과 및 변수의 실제 값을 보유합니다.

텐서의 기능

원천

TensorFlow 애플리케이션은 CPU, GPU, 클라우드의 클러스터, 로컬 머신, Android 및 iOS 기기 등 거의 모든 편리한 대상에서 실행할 수 있습니다.

TensorFlow 계산 그래프

TensorFlow의 계산 그래프는 각 노드가 곱셈, 덧셈을 수행하거나 일부 다변수 방정식을 평가하는 노드 네트워크입니다. TensorFlow에서는 그래프를 생성하고, 세션을 실행하고, 그래프를 실행하기 위한 코드가 작성됩니다. 우리가 할당하는 모든 변수는 곱셈 및 덧셈과 같은 수학 연산을 수행할 수 있는 노드가 됩니다.

다음은 계산 그래프 생성을 보여주는 간단한 예입니다.

F(x,y,z) = (x+y)*z 계산을 수행한다고 가정합니다.

세 개의 변수 x, y 및 z는 아래 표시된 그래프에서 세 개의 노드로 변환됩니다.

TensorFlow 계산 그래프

원천

그래프 작성 단계:

1단계: 변수를 할당합니다. 이 예에서 값은 다음과 같습니다.

x = 1, y = 2, z = 3

2단계: x와 y를 추가합니다.

3단계: z에 x와 y의 합을 곱합니다.

마지막으로 결과는 '9'입니다.

변수를 할당한 노드 외에도 그래프에는 두 개의 노드가 더 있습니다. 하나는 더하기 연산용이고 다른 하나는 곱하기 연산용입니다. 따라서 모두 5개의 노드가 있습니다.

TensorFlow의 기본 프로그래밍 요소

TensorFlow에서는 상수, 변수, 자리 표시자 등 세 가지 유형의 데이터 요소에 데이터를 할당할 수 있습니다.

이러한 각 데이터 요소가 나타내는 내용을 살펴보겠습니다.

1. 상수

이름에서 알 수 있듯이 상수는 값이 변하지 않는 매개변수입니다. TensorFlow에서 상수는 tf.constant() 명령을 사용하여 정의됩니다 . 연산 중에는 상수 값을 변경할 수 없습니다.

다음은 예입니다.

c = tf.constant(2.0,tf.float32)

d = tf.constant(3.0)

인쇄(c,d)

2. 변수

변수를 사용하면 그래프에 새 매개변수를 추가할 수 있습니다. tf.variable () 명령은 세션에서 그래프를 실행하기 전에 초기화해야 하는 변수를 정의합니다.

다음은 예입니다.

Y = tf.Variable([.4],dtype=tf.float32)

a = tf.Variable([-.4],dtype=tf.float32)

b = tf.placeholder(tf.float32)

linear_model = Y*b+a

3. 자리 표시자

자리 표시자를 사용하여 외부에서 모델로 데이터를 공급할 수 있습니다. 나중에 값을 할당할 수 있습니다. tf.placeholder() 명령 은 자리 표시자를 정의합니다.

다음은 예입니다.

c = tf.placeholder(tf.float32)

d = c*2

결과 = sess.run(d,feed_out={c:3.0})

자리 표시자는 주로 모델을 제공하는 데 사용됩니다. 외부의 데이터는 변수 이름을 사용하여 그래프에 공급됩니다(위 예에서 변수 이름은 feed_out). 이후에 세션을 실행하는 동안 모델에 데이터를 공급할 방법을 지정합니다.

세션의 예:

그래프의 실행은 세션을 호출하여 수행됩니다. TensorFlow 런타임이라고 하는 그래프의 노드를 평가하기 위해 세션이 실행됩니다. sess = tf.Session() 명령 은 세션을 생성합니다.

예시:

x = tf.constant(3.0)

y = tf.constant(4.0)

z = x+y

sess = tf.Session() #세션 시작

print(sess.run(z)) #텐서 z 평가

위의 예에는 세 개의 노드(x, y, z)가 있습니다. 노드 'z'는 수학적 연산을 수행한 후 결과를 얻는 곳입니다. 세션을 생성하고 노드 z를 실행하면 먼저 노드 x와 y가 생성됩니다. 그런 다음 노드 z에서 추가 작업이 수행됩니다. 따라서 결과는 '7'이 됩니다.

upGrad로 ML 및 딥 러닝 분야에서 경력 향상

TensorFlow 가 무엇인지 자세히 알아볼 수 있는 가장 좋은 곳을 찾고 계십니까? 그러면 upGrad 가 여러분의 학습 여정을 도와드립니다.

85개 이상의 국가를 포괄하는 학습자 기반을 갖춘 upGrad는 남아시아 최대의 고등 교육 기술 플랫폼으로 전 세계적으로 500,000명 이상의 실무 전문가에게 영향을 미쳤습니다. 세계적 수준의 교수진, 업계 파트너와의 협력, 최신 기술 및 최신 교육 방식을 통해 upGrad는 전 세계적으로 40,000명 이상의 유료 학습자에게 건전하고 몰입도 높은 학습 경험을 보장합니다.

기계 학습 및 딥 러닝 고급 인증 프로그램은 딥 러닝의 개념을 다루는 학문적으로 엄격하고 업계와 관련된 6개월 과정입니다.

프로그램 하이라이트:

  • IIT 방갈로르의 권위 있는 인정
  • 5개 이상의 사례 연구 및 프로젝트, 24개 이상의 라이브 세션 및 15개 이상의 전문가 코칭 세션이 포함된 240시간 이상의 콘텐츠
  • 12가지 도구, 언어 및 라이브러리(TensorFlow 포함)에 대한 포괄적인 범위
  • 360도 경력 지원, 멘토링 세션 및 P2P 네트워킹 기회

upGrad의 기계 학습 및 인공 지능 과학 석사는 고급 기계 학습 및 클라우드 기술을 배우고 스스로 기술을 향상시키려는 사람들을 위한 18개월의 강력한 프로그램입니다.

프로그램 하이라이트:

  • 리버풀 존 무어스 대학과 IIT 마드라스의 권위 있는 인정
  • 25개 이상의 사례 연구 및 프로젝트, 20개 이상의 라이브 세션, 8개 이상의 코딩 과제가 포함된 650시간 이상의 콘텐츠
  • 7가지 도구 및 프로그래밍 언어(TensorFlow 포함)에 대한 포괄적인 범위
  • 360도 경력 지원, 멘토링 세션 및 P2P 네트워킹 기회

결론

머신 러닝과 인공 지능은 계속 발전하고 있습니다. 한때 SF 영화의 주제였던 것이 이제 현실이 되었습니다. Netflix 영화 추천 및 가상 비서에서 자율 주행 자동차 및 약물 발견에 이르기까지 기계 학습은 우리 삶의 모든 측면에 영향을 미칩니다. 또한 TensorFlow와 같은 도구를 사용하여 기계 학습의 혁신이 새로운 차원에 도달했습니다. 오픈 소스 라이브러리는 의심할 여지 없이 기계 학습 기반 기술을 혁신하는 개발자와 신진 전문가에게 도움이 됩니다.

그래서 무엇을 기다리고 있습니까? 지금 upGrad와 함께 학습을 시작하세요!

TensorFlow는 무엇에 사용됩니까?

TensorFlow Python은 개발자가 대규모 신경망을 만들 수 있는 오픈 소스 플랫폼입니다. TensorFlow의 주요 사용 사례에는 텍스트 기반 애플리케이션(예: 사기 탐지), 음성 인식, 이미지 인식, 비디오 탐지 및 시계열 데이터 분석이 포함됩니다.

TensorFlow는 Python 또는 C++로 작성되었습니까?

TensorFlow를 사용하면 Python, R, C 및 C++와 같은 다양한 언어를 사용하여 프런트 엔드 API를 구현할 수 있습니다. 그러나 TensorFlow의 런타임은 C++ 언어를 사용하여 작성되었습니다.

TensorFlow에 코딩이 필요합니까?

TensorFlow는 머신 러닝을 위한 오픈 소스 라이브러리이므로 마스터해야 하는 4가지 핵심 영역이 있습니다. 코딩 기술은 필수이지만 기계 학습 교육의 다른 중요한 구성 요소는 수학 및 통계, 기계 학습 이론, 기계 학습 프로젝트를 처음부터 구축하는 실습 경험입니다.