텐서플로우란 무엇이며, 어떻게 작동하는가? Archi강의 및 특징

⚡ 스마트 요약

TensorFlow는 오픈 소스 플랫폼입니다. Google 머신 러닝을 위해 설계되었으며, 모든 계산을 텐서의 데이터 흐름 그래프로 표현합니다. 이 개요에서는 아키텍처, 구성 요소, 계산 실행 방식, 그리고 입력 파이프라인을 통해 데이터를 공급하는 방법을 다룹니다.

  • 🧮 핵심 객체: 텐서는 값들이 하나의 데이터 유형을 공유하고, 모양이 알려져 있거나 부분적으로 알려져 있는 n차원 배열입니다.
  • 🔗 그래프 모델: 노드는 연산을 전달하고, 엣지는 텐서를 전달하며, 전체 그래프를 저장하고, 다른 곳으로 옮기고, 나중에 다시 재생할 수 있습니다.
  • 🏗️ 3단계 Archi강의: 데이터를 전처리하고, 모델을 구축한 다음, 학습 및 평가를 수행합니다.
  • ⚠️ 버전 경계: `tf.placeholder`와 `tf.Session`은 TensorFlow 1.x 버전에 속하며, 기본적으로 즉시 실행되도록 설계된 2.0 버전에서 제거되었습니다.
  • 💾 데이터 로딩: 작은 데이터셋은 pandas를 사용하여 메모리에 로드하고, 너무 커서 메모리에 로드할 수 없는 데이터셋은 tf.data 파이프라인을 사용하세요.
  • 📊 모니터링 : TensorBoard는 모델 학습 중에 그래프, 지표 및 가중치 분포를 시각화합니다.

텐서플로우란 무엇인가요? Archi강의

텐서플로우란?

TensorFlow 머신 러닝 애플리케이션을 만드는 오픈 소스 엔드투엔드 플랫폼입니다. 데이터 흐름과 미분 가능 프로그래밍을 사용하여 딥 신경망의 훈련과 추론에 초점을 맞춘 다양한 작업을 수행하는 기호 수학 라이브러리입니다. 개발자는 다양한 도구, 라이브러리 및 커뮤니티 리소스를 사용하여 머신 러닝 애플리케이션을 만들 수 있습니다.

현재 세계에서 가장 유명한 딥러닝 라이브러리는 다음과 같습니다. Google's TensorFlow. Google 검색, 번역, 이미지 캡션 및 추천 기능을 개선하기 위해 제품 전반에 걸쳐 머신 러닝을 적용합니다.

TensorFlow 예

구체적인 예를 들자면, Google AI를 통해 사용자는 더욱 빠르고 정교한 검색 경험을 누릴 수 있습니다. 사용자가 검색창에 키워드를 입력하면, Google 다음 단어가 무엇일지 추천해 줍니다.

TensorFlow 예
TensorFlow 예

Google 이들은 방대한 데이터셋을 활용하여 사용자에게 최상의 경험을 제공하기 위해 머신러닝을 사용하고자 합니다. 머신러닝을 사용하는 그룹은 세 가지가 있습니다.

  • 연구원
  • 데이터 과학자
  • 프로그래머

그들은 모두 동일한 도구 세트를 사용하여 서로 협력하고 효율성을 향상시킬 수 있습니다.

Google 대규모 데이터셋을 저장할 뿐만 아니라 엄청난 규모의 컴퓨팅 인프라도 운영하기 때문에 TensorFlow는 처음부터 확장성을 고려하여 설계되었습니다. TensorFlow는 The Code의 개발자들이 만든 라이브러리입니다. Google 브레인 팀, 머신러닝 및 심층 신경망 연구 가속화에 나선다.

여러 CPU 또는 GPU, 심지어 모바일 운영 체제에서도 실행되도록 구축되었으며 다음과 같은 여러 언어로 된 여러 래퍼가 있습니다. Python, C++ or Java.

텐서플로우의 역사

몇 년 전부터 딥러닝은 대규모 데이터를 입력했을 때 다른 모든 머신러닝 알고리즘보다 뛰어난 성능을 보이기 시작했습니다. Google 자사 서비스 개선을 위해 이러한 심층 신경망을 활용할 수 있다는 것을 알게 되었습니다.

  • Gmail
  • 사진
  • Google 검색 엔진

그들은 다음과 같은 프레임워크를 구축했습니다. TensorFlow 이를 통해 연구원과 개발자는 동일한 모델을 기반으로 작업한 후, 많은 사람들이 사용할 수 있는 규모로 배포할 수 있습니다.

TensorFlow는 2015년 11월에 공개되었고, 버전 1.0은 2017년 2월에 출시되었습니다. 하지만 훨씬 더 큰 변화는 다음과 같은 상황에서 일어났습니다. 텐서플로우 2.0, 2019년 9월 출시이 버전은 즉시 실행을 기본값으로 설정하고 Keras를 표준 고수준 API로 채택했습니다. 2.16 버전부터는 Keras 3가 기본값이 되었으며, 동일한 모델 코드를 JAX 또는 Py에서도 실행할 수 있습니다.Torch 백엔드.

TensorFlow는 Apache 2.0 라이선스에 따라 배포되므로, 상업적 용도를 포함하여 비용을 지불하지 않고 사용, 수정 및 재배포할 수 있습니다. Google.

TensorFlow 작동 방식

TensorFlow를 사용하면 Tensor라는 다차원 배열로 입력을 받아 그래프에서 데이터가 어떻게 이동하는지 정의하는 데이터 흐름 그래프와 구조를 구축할 수 있습니다. 이를 통해 이러한 입력에서 수행할 수 있는 작업의 흐름도를 구성할 수 있으며, 이는 한쪽 끝에서 시작하여 다른 쪽 끝에서 출력으로 나옵니다.

TensorFlow Archi강의

TensorFlow 아키텍처는 세 부분으로 구성됩니다.

  • 데이터 전처리
  • 모델 구축
  • 모델 학습 및 추정

텐서플로우(TensorFlow)라고 불리는 이유는 입력을 다차원 배열로 받기 때문입니다. 텐서. 당신은 일종의 구성을 할 수 있습니다 순서도 해당 입력에 대해 수행하려는 작업(그래프라고 함)입니다. 입력은 한쪽 끝에서 입력되고, 그런 다음 여러 작업의 이 시스템을 거쳐 다른 쪽 끝에서 출력으로 나옵니다.

TensorFlow는 어디에서 실행할 수 있나요?

TensorFlow 하드웨어 및 소프트웨어 요구 사항은 두 단계로 나뉩니다.

개발 단계모델을 학습시키는 단계이며, 일반적으로 데스크톱이나 노트북에서 진행됩니다.

실행 또는 추론 단계학습이 완료되면 모델은 다양한 플랫폼에서 실행될 수 있습니다.

  • 데스크톱 실행 중 Windows, macOS 또는 리눅스
  • 웹 서비스로서의 클라우드
  • iOS와 같은 모바일 장치 및 Android

여러 컴퓨터에서 학습한 다음 학습된 모델이 있으면 다른 컴퓨터에서 실행할 수 있습니다.

이 모델은 CPU뿐만 아니라 GPU에서도 학습 및 사용할 수 있습니다. GPU는 원래 비디오 게임용으로 설계되었습니다. 2009년경 스탠포드 연구진은 GPU가 신경망에 필수적인 행렬 및 선형 대수 연산에서 매우 효율적이라는 것을 보여주었습니다. 딥러닝은 행렬 곱셈을 많이 사용합니다. TensorFlow는 GPU로 작성되었기 때문에 행렬 곱셈 계산 속도가 매우 빠릅니다. C++. 에서 시행되고 있지만 C++, TensorFlow는 주로 다른 언어로 접근하고 제어할 수 있습니다. Python.

또 하나의 중요한 특징은 다음과 같습니다. 텐서 보드이 기능은 모델이 실행되는 동안 그래프, 훈련 지표 및 가중치 분포를 시각화합니다.

TensorFlow 구성 요소

텐서

TensorFlow라는 이름은 핵심 프레임워크에서 직접 유래되었습니다. 텐서TensorFlow에서는 모든 계산에 텐서가 사용됩니다. 텐서는 다음과 같습니다. 벡터 or 매트릭스 모든 유형의 데이터를 나타내는 n차원의 데이터입니다. 텐서의 모든 값은 알려진(또는 부분적으로 알려진) 데이터 유형과 동일한 데이터 유형을 보유합니다. 형성. 데이터의 모양은 행렬이나 배열의 차원입니다.

텐서는 입력 데이터 또는 계산 결과에서 생성될 수 있습니다. TensorFlow에서 모든 작업은 내부에서 수행됩니다. 그래프그래프는 연속적으로 수행되는 계산 집합입니다. 각 연산을 그래프라고 합니다. 연산 노드 그리고 서로 연결되어 있습니다.

그래프는 노드 간의 ops와 연결을 간략하게 설명합니다. 그러나 값은 표시하지 않습니다. 노드의 에지는 텐서, 즉 ​​데이터로 작업을 채우는 방법입니다.

그래프

TensorFlow는 그래프 프레임워크를 사용합니다. 그래프는 학습 중에 수행된 모든 계열 계산을 수집하고 설명합니다. 그래프에는 다음과 같은 많은 장점이 있습니다.

  • 이 프로그램은 여러 CPU 또는 GPU는 물론 모바일 운영 체제에서도 실행됩니다.
  • 그래프의 이식성은 계산을 즉시 또는 나중에 사용할 수 있도록 보존할 수 있습니다. 그래프는 나중에 실행하기 위해 저장할 수 있습니다.
  • 그래프의 모든 계산은 텐서를 서로 연결하여 수행됩니다.
    • 그래프는 노드와 에지로 구성됩니다. 각 노드는 수학적 연산을 수행하고 결과를 출력하며, 에지는 노드 간의 입력 및 출력 관계를 나타냅니다. 텐서 자체는 에지를 따라 이동합니다.

TensorFlow가 인기 있는 이유는 무엇입니까?

TensorFlow는 모든 수준의 사용자가 접근할 수 있기 때문에 널리 사용되고 있습니다. API는 세 줄짜리 Keras 모델부터 직접 구축한 CNN이나 RNN까지 모든 것을 지원합니다. 연산이 그래프로 표현되기 때문에 TensorBoard를 통해 네트워크를 시각화하고 디버깅을 훨씬 쉽게 할 수 있습니다. 또한 CPU, GPU, TPU는 물론 TensorFlow Lite를 통해 모바일에서도 실행 가능하여 대규모 배포가 가능합니다.

TensorFlow는 Py와 함께 GitHub에서 가장 많이 사용되는 딥러닝 프레임워크 두 가지 중 하나로 남아 있습니다.Torch.

TensorFlow Algorithms

TensorFlow는 여러 고전적인 알고리즘을 위한 고수준 추정기를 제공합니다. TensorFlow 1.x에서는 이러한 추정기들이 `tf.estimator` 아래에 있었습니다.

  • 선형 회귀: tf.estimator.LinearRegressor
  • 분류: tf.estimator.LinearClassifier
  • 딥러닝 분류: tf.estimator.DNNClassifier
  • 광범위하고 심층적인 학습: tf.estimator.DNNLinearCombinedClassifier
  • 부스팅 트리 회귀: tf.estimator.BoostedTreesRegressor
  • 부스팅 트리 분류: tf.estimator.BoostedTreesClassifier

텐서플로우 vs 파이Torch: 어떤 걸 선택해야 할까요?

텐서플로우와 파이TortensorFlow와 TensorFlow는 딥러닝 분야에서 가장 널리 사용되는 두 가지 프레임워크이며, TensorFlow 2.0이 즉시 실행(eager execution) 방식을 채택한 이후 실질적인 차이점은 상당히 줄어들었습니다.

기준 TensorFlow PyTorch
에 의해 개발 Google 뇌 메타 AI
실행 그래프 컴파일이 선택적으로 가능한 열정적인 사용자 열정적이며, 컴파일은 선택 사항입니다.
높은 수준의 API 케라스는 ~에 의해 만들어졌습니다. Lightning과 같은 별도의 라이브러리
모바일 및 엣지 TensorFlow Lite를 통해 더욱 성숙해졌습니다. Execu를 통한 개선Torch
브라우저 배포 텐서플로우.js ONNX로의 변환이 필요합니다.
전형적인 요새 생산 및 배포 연구와 실험

실용적인 답변은 다음과 같습니다. 모델을 모바일, 브라우저 또는 관리형 서버 스택에 배포해야 하는 경우에는 TensorFlow를 선택하고, 그렇지 않은 경우에는 Py를 선택하십시오.Tor모델 아키텍처를 반복적으로 개선할 때 Keras 3(TensorFlow 2.16부터 기본 지원)를 사용하면 동일한 Keras 코드를 TensorFlow, JAX 또는 Py에서 실행할 수 있으므로 선택이 더욱 쉬워집니다.Torch 백엔드.

TensorFlow에서 계산이 작동하는 방식

⚠️ 버전 참고: 아래의 공략은 다음을 사용합니다. 텐서 플로우 1.x 그래프 및 세션 스타일은 데이터 흐름 그래프가 실제로 어떻게 작동하는지 가장 명확하게 보여주는 방법입니다. TensorFlow 2.0에서는 tf.placeholder(), tf.Session() 및 make_initializable_iterator() 메서드가 제거되었습니다. 현재 설치 환경에서는 AttributeError가 발생합니다. 해당 섹션 TensorFlow 1.x와 TensorFlow 2.x 비교 아래쪽에는 각 예시에 대한 현대적 대응 사례가 나와 있습니다.

import numpy as np
import tensorflow as tf

코드의 처음 두 줄에서는 tensorflow를 tf로 가져왔습니다. 와 함께 Python, 라이브러리에 짧은 이름을 사용하는 것이 일반적인 관행입니다. 장점은 라이브러리를 사용해야 할 때 라이브러리의 전체 이름을 입력하지 않아도 된다는 것입니다. 예를 들어, tensorflow를 tf로 가져오고 tensorflow 함수를 사용하려는 경우 tf를 호출할 수 있습니다.

간단한 TensorFlow 예제를 통해 TensorFlow의 기본 워크플로우를 연습해 보겠습니다. 두 숫자를 곱하는 계산 그래프를 만들어 보겠습니다.

이 예제에서는 X_1과 X_2를 곱합니다. TensorFlow는 이 연산을 연결하는 노드를 생성합니다. 이 예제에서는 '곱하기'라는 노드입니다. 그래프가 생성되면 TensorFlow 연산 엔진은 X_1과 X_2를 곱합니다.

TensorFlow에서 계산이 작동합니다.

TensorFlow 예

마지막으로 X_1 및 X_2 값으로 계산 그래프를 실행하고 곱셈 결과를 인쇄하는 TensorFlow 세션을 실행합니다.

X_1과 X_2 입력 노드를 정의해 보겠습니다. TensorFlow에서 노드를 생성할 때는 어떤 종류의 노드를 만들지 선택해야 합니다. X1과 X2 노드는 플레이스홀더 노드입니다. 플레이스홀더 노드는 계산을 수행할 때마다 새로운 값을 할당합니다. 따라서 TF.placeholder 노드로 생성하겠습니다.

1단계: 변수 정의

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

플레이스홀더에는 데이터 유형이 필요합니다. 숫자이므로 tf.float32가 적합합니다. name 인수는 선택 사항이지만, 그래프의 TensorBoard 시각화에 표시되는 레이블이므로 유용합니다. X_2도 같은 방식으로 정의됩니다.

2단계: 계산 정의

multiply = tf.multiply(X_1, X_2, name = "multiply")

이제 곱셈 연산을 수행하는 노드를 정의할 수 있습니다. TensorFlow에서는 `tf.multiply` 노드를 생성하여 이를 구현할 수 있습니다.

X_1 및 X_2 노드를 곱셈 노드에 전달합니다. 이는 계산 그래프에서 해당 노드를 연결하도록 tensorflow에 지시하므로 x와 y에서 값을 가져와 결과를 곱하도록 요청합니다. 또한 곱셈 노드에 Multiply라는 이름을 지정해 보겠습니다. 이는 간단한 계산 그래프에 대한 전체 정의입니다.

3단계: 작업 실행

그래프에서 연산을 실행하려면 세션을 생성해야 합니다. TensorFlow에서는 `tf.Session()`을 사용하여 세션을 생성합니다. 세션이 생성되면 `session`을 호출하여 세션에 연산을 실행하도록 요청할 수 있습니다. 연산을 실행하려면 `run`을 사용해야 합니다.

곱셈 연산이 실행될 때 X_1과 X_2 노드의 값이 필요하므로 실행 시간에 해당 값을 전달해야 합니다. feed_dict라는 매개변수를 사용하여 이를 수행할 수 있습니다. X_1에는 1, 2, 3을, X_2에는 4, 5, 6을 전달합니다.

print(result)로 결과를 인쇄합니다. 4×10, 18×1, 4×2의 경우 5, 3, 6이 표시되어야 합니다.

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

multiply = tf.multiply(X_1, X_2, name = "multiply")

with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})
    print(result)
[ 4. 10. 18.]

TensorFlow에 데이터를 로드하는 옵션

훈련 전 첫 번째 단계 기계 학습 알고리즘 데이터를 불러오는 것입니다. 데이터를 불러오는 일반적인 방법에는 두 가지가 있습니다.

1. 데이터를 메모리에 로드가장 간단한 방법입니다. 모든 데이터를 하나의 배열로 메모리에 로드합니다. 일반 코드로 작성하면 됩니다. Python 이것은 TensorFlow에만 해당되는 것이 아닙니다.

2. 텐서플로우 데이터 파이프라인TensorFlow는 데이터를 로드하고, 변환을 적용하고, 모델에 입력하는 내장 API를 제공합니다. 이 방법은 특히 대규모 데이터셋을 다룰 때 매우 효과적입니다. 예를 들어, 이미지 파일은 용량이 매우 커서 메모리에 모두 담기 어려운 경우가 많습니다. 데이터 파이프라인은 메모리 관리를 자체적으로 수행합니다.

어떤 솔루션을 사용해야 합니까?

메모리에 데이터 로드

데이터 세트가 너무 크지 않은 경우(예: 10GB 미만) 첫 번째 방법을 사용할 수 있습니다. 데이터는 메모리에 들어갈 수 있습니다. Pandas라는 유명한 라이브러리를 사용하여 CSV 파일을 가져올 수 있습니다. 다음 튜토리얼에서 팬더에 대해 더 자세히 배울 것입니다.

TensorFlow 파이프라인을 사용하여 데이터를 로드합니다.

두 번째 방법은 데이터 세트가 큰 경우 가장 효과적입니다. 예를 들어, 50GB의 데이터 세트가 있고 컴퓨터의 메모리가 16GB만 있는 경우 시스템이 충돌합니다.

이러한 상황에서는 TensorFlow 파이프라인을 구축해야 합니다. 파이프라인은 데이터를 배치(작은 덩어리) 단위로 로드합니다. 각 배치는 파이프라인에 추가되어 학습 준비를 마칩니다. 파이프라인 구축은 병렬 컴퓨팅을 활용할 수 있게 해주기 때문에 매우 효과적인 해결책입니다. 즉, TensorFlow는 여러 CPU를 사용하여 모델을 학습시킵니다. 이를 통해 계산 속도가 향상되고 더 큰 규모의 네트워크를 학습시키는 것이 가능해집니다.

요약하자면, 작은 데이터셋은 pandas를 사용하여 메모리에 로드하고, 데이터 규모가 크거나 여러 CPU에 걸쳐 병렬 로딩이 필요한 경우에는 TensorFlow 파이프라인을 사용하세요.

TensorFlow 파이프라인을 만드는 방법

TensorFlow 파이프라인을 생성하는 단계는 다음과 같습니다.

이전 예시에서는 X_1과 X_2에 세 개의 값을 수동으로 입력했습니다. 이제 TensorFlow에 데이터를 로드하는 방법을 살펴보겠습니다.

1단계) 데이터 생성

우선, numpy 라이브러리를 사용하여 두 개의 임의의 값을 생성해 보겠습니다.

import numpy as np
x_input = np.random.sample((1,2))
print(x_input)

[[0.8835775 0.23766977]]

2단계) 자리 표시자 만들기

이전 예제와 마찬가지로 X라는 이름의 자리 표시자를 만듭니다. 텐서의 모양을 명시적으로 지정해야 합니다. 이 경우에는 값이 두 개만 있는 배열을 로드합니다. 모양을 다음과 같이 쓸 수 있습니다. Shape=[1,2]

# using a placeholder
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')

3단계) ​​데이터 세트 방법 정의

다음으로 자리 표시자 x의 값을 채울 수 있는 데이터 세트를 정의해야 합니다. tf.data.Dataset.from_tensor_slices 메소드를 사용해야 합니다.

dataset = tf.data.Dataset.from_tensor_slices(x)

4단계) 파이프라인 생성

XNUMX단계에서는 데이터가 흐를 파이프라인을 초기화해야 합니다. make_initialized_iterator를 사용하여 반복자를 생성해야 합니다. 우리는 그것을 반복자(iterator)라고 명명합니다. 그런 다음 이 반복자를 호출하여 다음 데이터 배치인 get_next를 공급해야 합니다. 이 단계의 이름을 get_next로 지정합니다. 이 예에는 값이 두 개만 포함된 데이터 배치가 하나만 있습니다.

iterator = dataset.make_initializable_iterator() 
get_next = iterator.get_next()

5단계) 작업 실행

마지막 단계는 이전 예와 비슷합니다. 세션을 시작하고 작업 반복자를 실행합니다. feed_dict에 생성된 값을 공급합니다. numpy. 이 두 값은 자리 표시자 x를 채웁니다. 그런 다음 get_next를 실행하여 결과를 인쇄합니다.

with tf.Session() as sess:
    # feed the placeholder with data
    sess.run(iterator.initializer, feed_dict={ x: x_input }) 
    print(sess.run(get_next))
[0.8835775  0.23766978]

TensorFlow 1.x와 TensorFlow 2.x의 차이점은 무엇일까요?

TensorFlow 2.0은 사용자에게 제공되는 API를 완전히 재작성한 버전입니다. 이 차이점을 이해하는 것이 중요한데, 위의 예제를 포함하여 온라인에 있는 많은 튜토리얼 코드가 1.x 버전을 기준으로 작성되었기 때문입니다.

Concept 텐서 플로우 1.x 텐서 플로우 2.x
실행 모델 그래프를 정의한 다음 실행하세요. 기본적으로 즉시 실행되므로 작업은 즉시 종료됩니다.
사료 데이터 tf.placeholder와 feed_dict를 더하세요 패스 Python 값 또는 텐서를 직접
실행 중인 작업 tf.Session().run() 세션 없이 함수를 호출하세요.
높은 수준의 API tf.추정기 케라스, tf.keras
그래프 최적화 항상 그래프 기반입니다. @tf.function 데코레이터를 사용하여 참여하세요.
데이터셋 반복 make_initializable_iterator() 평원 Python 데이터셋에 대한 for 루프

곱셈 예제를 다시 쓴 것입니다. 세 단계와 세션이 한 줄로 줄어듭니다. 왜냐하면 해당 작업이 호출되는 즉시 실행되기 때문입니다.

import tensorflow as tf

X_1 = tf.constant([1, 2, 3], dtype=tf.float32)
X_2 = tf.constant([4, 5, 6], dtype=tf.float32)

result = tf.multiply(X_1, X_2, name="multiply")
print(result.numpy())        # [ 4. 10. 18.]

입력 파이프라인이 재작성되었습니다. 플레이스홀더나 이터레이터 객체는 필요하지 않습니다.

import numpy as np
import tensorflow as tf

x_input = np.random.sample((1, 2))
dataset = tf.data.Dataset.from_tensor_slices(x_input)

for batch in dataset:
    print(batch.numpy())

컴파일된 그래프의 속도가 필요하다면 함수를 `@tf.function`과 `TensorFlow`로 감싸세요. trac자동으로 하나로 통합합니다. 기존 1.x 스크립트는 tf.compat.v1 네임스페이스를 통해 변경 없이 실행할 수도 있지만, 해당 경로는 유지 관리용으로만 사용되며 새로운 작업에는 사용해서는 안 됩니다.

TensorFlow: 핵심 요약 및 Code 참조

  • 텐서플로우 의미: TensorFlow 최근 몇 년 동안 가장 유명한 딥 러닝 라이브러리입니다. TensorFlow를 사용하는 실무자는 CNN, RNN 또는 간단한 인공 신경망과 같은 딥 러닝 구조를 구축할 수 있습니다.
  • TensorFlow는 주로 학계, 스타트업 및 대기업에서 사용됩니다. Google 거의 모든 분야에서 TensorFlow를 사용합니다. Google 일상용품을 포함한 Gmail사진 및 Google 검색 엔진.
  • The Google 브레인 팀은 연구원과 제품 개발자 간의 격차를 줄이기 위해 텐서플로우를 개발했습니다. 2015년 텐서플로우를 공개한 이후 빠르게 인기를 얻고 있으며, 현재 깃허브에서 가장 많은 저장소를 보유한 딥러닝 라이브러리입니다.
  • 실무자들이 TensorFlow를 사용하는 이유는 클라우드, 브라우저 또는 iOS를 실행하는 모바일 장치 등 다양한 환경에 쉽게 대규모로 배포할 수 있기 때문입니다. Android.

TensorFlow는 세션 단위로 작동합니다. 각 세션은 다양한 계산을 포함하는 그래프로 정의됩니다. 간단한 예로 두 숫자를 곱하는 것을 들 수 있습니다. TensorFlow에서는 세 단계가 필요합니다.

  1. 변수 정의
X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")
  1. 계산 정의
multiply = tf.multiply(X_1, X_2, name = "multiply")
  1. 작업을 실행하다
with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1: [1, 2, 3], X_2: [4, 5, 6]})
    print(result)

TensorFlow에서 흔히 사용하는 방법 중 하나는 데이터를 로드하는 파이프라인을 만드는 것입니다. 다음 다섯 단계를 따르면 TensorFlow에 데이터를 로드할 수 있습니다.

  1. 데이터 생성
import numpy as np
x_input = np.random.sample((1,2))
print(x_input)
  1. 자리 표시자 만들기
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
  1. 데이터 세트 방법 정의
dataset = tf.data.Dataset.from_tensor_slices(x)
  1. 파이프라인 생성
iterator = dataset.make_initializable_iterator()
get_next = iterator.get_next()
  1. 프로그램 실행
with tf.Session() as sess:
    sess.run(iterator.initializer, feed_dict={x: x_input})
    print(sess.run(get_next))

자주 묻는 질문

`tf.placeholder`는 TensorFlow 1.x 버전에 속하며, 즉시 실행되므로 플레이스홀더가 필요 없는 2.0 버전에서 제거되었습니다. 값을 직접 전달하거나, 기존 스크립트를 변경 없이 실행하려면 `tf.compat.v1`을 사용하세요.

텐서는 모든 요소가 하나의 데이터 유형을 공유하는 n차원 배열입니다. 스칼라는 랭크 0, 벡터는 랭크 1, 행렬은 랭크 2이며, 이미지 배치는 ​​일반적으로 랭크 4입니다.

Keras는 모델을 정의하고 학습하기 위한 고수준 API이며, TensorFlow는 그 기반이 되는 연산 엔진입니다. TensorFlow는 버전 2.16부터 JAX 또는 Py에서도 실행 가능한 Keras 3를 제공합니다.Torch.

TensorFlow는 이미지 분류, 자연어 처리, 추천 시스템 등 모바일, 브라우저 또는 서버 클러스터에 배포해야 하는 모든 모델과 같은 프로덕션 AI에 적합합니다.

예. AI 어시스턴트는 세션 및 플레이스홀더 코드를 즉시 실행 가능한 코드로 변환하고 제거된 함수를 표시할 수 있습니다. 기존 스크립트를 폐기하기 전에 출력 결과를 원본과 수치적으로 비교하여 검증하십시오.

이 게시물을 요약하면 다음과 같습니다.