TensorFlow 2.0을 사용한 딥 러닝: 알아야 할 모든 것
게시 됨: 2021-01-05TensorFlow는 Google의 기계 학습 프레임워크입니다. 주로 Deep Learning 관련 작업에 사용되며 다른 Google API와도 원활하게 통합됩니다. TensorFlow는 분명히 현재 업계에서 가장 많이 사용되는 딥 러닝 라이브러리 중 하나이며 완전히 배울 가치가 있습니다!
이 튜토리얼을 마치면 다음에 대한 지식을 갖게 될 것입니다.
- 텐서플로우란?
- TF 2.0의 새로운 기능은 무엇입니까?
- 텐서플로우 대 케라스
- 텐서플로우 설치
- TensorFlow의 이미지 분류기
목차
TensorFlow란 무엇입니까?
TensorFlow는 Google에서 오픈 소스 딥 러닝 라이브러리로 시작했으며 현재는 엔드 투 엔드 머신 러닝 프로세스를 위한 완전한 프레임워크입니다. Google이 이 이름을 선택한 이유와 "Tensor"가 무엇을 의미하는지 궁금할 수 있습니다.
텐서란 무엇입니까?
텐서는 다차원 배열에서 복잡한 연산을 수행할 수 있게 해주는 사실상 다차원 배열입니다. 그러나 그것들은 단순한 N차원 배열이 아닙니다.
Tensor에는 내적, 덧셈, 행렬 곱셈 등과 같은 변환도 포함됩니다.
그러나 그것들이 왜 중요한가?
텐서는 새로운 것이 아닙니다. 그것들은 오래전부터 사용되어 왔지만 일반적으로 데이터가 거대하고 다차원적인 딥 러닝 영역에서 그 특성이 많이 악용되고 있습니다.

Numpy 배열과 마찬가지로 텐서에도 모양과 데이터 유형이 있습니다. 모든 텐서는 Python 숫자 및 문자열과 같이 변경할 수 없습니다. 텐서의 내용을 업데이트할 수 없으며 새 항목만 생성할 수 있습니다.
그러나 일반적인 Numpy 어레이와 다른 점은 데이터가 고차원이고 크기가 수백만 이상일 때 가장 중요한 GPU 메모리 및 컴퓨팅 성능을 활용하는 능력입니다.
Tensor는 Facebook의 Pytorch 및 Google의 TensorFlow와 같은 딥 러닝 프레임워크에서 많이 사용됩니다.
Google은 또한 Tensor Processing Unit(TPU)이라고 하는 또 다른 AI 가속기를 개발했으며, 특히 TensorFlow를 위해 최적화를 완전히 한 단계 끌어올렸습니다!
읽기: 딥 러닝의 정규화
TF 2.0의 새로운 기능은 무엇입니까?
Google은 Google Brain Team에서 2015년 TensorFlow 1의 첫 번째 버전을 출시했습니다.
TensorFlow 1.x를 사용하여 신경망을 만드는 것은 많은 코드를 작성해야 했기 때문에 쉬운 작업이 아니었습니다.
게으른 평가 대 열렬한 평가
TensorFlow 1.x에서는 세션을 만들고 "그래프"의 출력을 생성하기 위해 해당 세션을 실행해야 했습니다. 아래 코드로 이것을 이해하자
텐서플로를 tf로 가져오기 a = tf.constant(1) |
위의 코드를 실행하면 원하는 출력, 즉 3을 얻을 수 없습니다. 이것은 TensorFlow 1.x가 세션에서 작동했기 때문입니다.
세션은 수행해야 하는 모든 변수와 변환을 포함하는 환경 유형입니다.
tf.session.run()을 실행하여 구체적으로 호출될 때까지 평가되지 않은 변환 그래프가 만들어졌습니다.
따라서 위의 코드는 다음과 같은 경우 예상한 결과를 반환합니다.
tf.Session.run(c) |
이것을 게으른 평가라고 합니다. 특별히 실행하라는 지시가 있을 때까지 게으르게 기다립니다.
이 길고 복잡한 프로세스를 해결해야 했기 때문에 TensorFlow 2.x가 필요했습니다.
TF 2.x는 기본적으로 Eager 평가와 함께 제공되므로 프로세스를 코딩하고 실행하기가 정말 쉽습니다.
지금은 세션이 없으며 TF 1.x에서 100줄이 필요한 신경망 교육이 TF 2.x에서 20줄 미만이 소요됩니다.
TensorFlow의 즉시 실행은 그래프를 작성하지 않고 즉시 작업을 평가하는 명령형 프로그래밍 환경입니다. 작업은 나중에 실행할 계산 그래프를 구성하는 대신 구체적인 값을 반환합니다.
이를 통해 TensorFlow 및 디버그 모델을 쉽게 시작하고 상용구도 줄일 수 있습니다.
텐서플로우 대 케라스
문제는 실제로 TensorFlow 대 Keras가 아닙니다. Keras가 있는 TensorFlow입니다. Keras는 TensorFlow 1.x를 통해 매우 쉽게 작업할 수 있는 고급 API를 제공했습니다.

이제 TF 2.0을 통해 TensorFlow는 공식적으로 Keras를 tf.keras를 사용한 모델 설계 및 교육용 API의 일부로 만들었습니다.
이전에 Keras에서 수행되었던 모든 코드는 이제 다음과 같은 모든 TensorFlow 구성 요소 및 생태계를 사용할 수 있도록 하는 TF 2.0의 tf.keras로 수행하도록 제안됩니다.
- TensorFlow 모델을 원활하게 제공/배포하는 데 사용되는 TensorFlow Serving .
- TensorFlow Lite 는 Android 및 IOS에서 실행할 수 있는 TensorFlow의 모바일 버전입니다.
- TensorFlow.js 는 저수준 JavaScript 선형 대수 라이브러리 또는 고수준 레이어 API를 사용하여 모델을 빌드하고 훈련할 수 있게 해주는 API 모음입니다. 따라서 딥 러닝 모델은 브라우저에서 훈련되고 실행될 수 있습니다.
- TensorBoard 는 TensorFlow 프로그램을 이해, 디버그 및 최적화하기 위한 시각화 도구 모음입니다.
텐서플로우 설치
기계 학습을 처음 사용하는 경우 작업을 시작하는 가장 쉬운 방법은 Colab 노트북을 여는 것입니다. https://colab.research.google.com/으로 이동하여 "새 Python 3 노트북"을 클릭하세요.
커널이 오른쪽 상단에 "연결됨"이라고 표시되는지 확인합니다. 좋은 소식입니다. TensorFlow는 Google Colab에 사전 설치되어 제공됩니다.
짜잔! 준비가 완료되었습니다.
올바른 버전을 사용하고 있는지 확인하려면 아래 스니펫을 실행하세요.
텐서플로를 tf로 가져오기 tf.__버전__ |
2.0.0 이상의 모든 버전이 표시되어야 하며 계속 진행할 수 있습니다.
TensorFlow의 이미지 분류기
이제 MNIST 데이터 세트인 딥 러닝 문제의 "Hello World"에 대해 살펴보겠습니다.
MNIST 데이터 세트에서 예측하기 위해 짧은 신경망을 구축할 것입니다. 우리는 아래 단계를 따를 것입니다.
- 이미지를 분류하는 신경망을 구축합니다.
- 신경망을 훈련시킵니다.
- 모델의 정확도 평가
TensorFlow 가져오기.
텐서플로를 tf로 가져오기 |
MNIST 데이터를 로드합니다.
mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() |
레이어를 쌓아서 tf.keras.Sequential 모델을 빌드합니다.
모델이 학습할 수 있도록 최적화 프로그램과 손실 함수도 선택해야 합니다.
모델 = tf.keras.models.Sequential([ tf.keras.layers.Flatten(입력_모양=(28, 28)), tf.keras.layers.Dense(128, 활성화='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) |
희소 범주형 교차 엔트로피 손실 함수 정의.
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) |
모델을 컴파일합니다.
model.compile(최적화 프로그램='아담', 손실=loss_fn, 측정항목=['정확도']) |
5개의 Epoch로 모델을 훈련합니다.
model.fit(x_train, y_train, epochs=5) |
모델 평가.
model.evaluate(x_test, y_test, verbose=2) |
313/313 – 0초 – 손실: 0.0825 – 정확도: 0.9753 [0.082541823387146, 0.9753000140190125] |
이미지 분류기는 이제 이 데이터 세트에서 ~98% 정확도로 훈련되었습니다.
가기 전에
TensorFlow 2는 즉시 실행, 직관적인 상위 수준 API 및 모든 플랫폼에서 유연한 모델 구축과 같은 업데이트를 통해 단순성과 사용 용이성에 중점을 둡니다.

TensorFlow는 요즘 모든 딥 러닝 작업을 위한 라이브러리/도구입니다. 가장 많이 사용되고 인기 있는 다른 라이브러리는 Facebook의 PyTorch입니다.
TensorFlow의 확장된 생태계는 딥 러닝 여정을 시작하기에 좋은 곳입니다. 이해하기 쉽고 더 중요하게는 구현하기 쉽습니다.
시작하기에 가장 좋은 곳은 사용자 친화적인 Sequential API를 사용하는 것입니다. 빌딩 블록을 연결하여 모델을 생성할 수 있습니다. 딥 러닝 기술에 대해 자세히 알아보세요.
결론
이제 모든 주요 딥 러닝 프레임워크에 대한 자세한 아이디어를 얻었으므로 정보에 입각한 결정을 내리고 프로젝트에 가장 적합한 프레임워크를 선택할 수 있습니다.
딥 러닝 및 인공 지능에 대해 더 알고 싶으시다면 30개 이상의 사례 연구 및 과제, 25개 이상의 업계 멘토링 세션, 5개 이상의 실무 실습을 제공하고 일하는 전문가를 위해 설계된 기계 학습 및 AI 프로그램의 PG 디플로마를 확인하십시오. -캡스톤 프로젝트, 450시간 이상의 엄격한 교육 및 최고의 기업에서의 취업 지원.