Tensorflow는 Google에서 제공하는 기계 학습 프레임워크입니다. 알고리즘, 딥 러닝 애플리케이션 등을 구현하기 위해 Python과 함께 사용되는 오픈 소스 프레임워크입니다. 연구 및 생산 목적으로 사용됩니다.
복잡한 수학 연산을 빠르게 수행하는 데 도움이 되는 최적화 기술이 있습니다.
NumPy와 다차원 배열을 사용하기 때문입니다. 이러한 다차원 배열은 '텐서'라고도 합니다. 이 프레임워크는 심층 신경망 작업을 지원합니다. 확장성이 뛰어나고 많은 인기 있는 데이터 세트와 함께 제공됩니다. GPU 계산을 사용하고 리소스 관리를 자동화합니다. 수많은 기계 학습 라이브러리와 함께 제공되며 잘 지원되고 문서화되어 있습니다. 이 프레임워크는 심층 신경망 모델을 실행하고 훈련하며 각 데이터 세트의 관련 특성을 예측하는 애플리케이션을 생성하는 기능을 가지고 있습니다.
'tensorflow' 패키지는 아래 코드 줄을 사용하여 Windows에 설치할 수 있습니다. -
pip install tensorflow
Tensor는 TensorFlow에서 사용되는 데이터 구조입니다. 흐름도에서 가장자리를 연결하는 데 도움이 됩니다. 이 흐름도를 '데이터 흐름 그래프'라고 합니다. 텐서는 다차원 배열 또는 목록에 불과합니다. 세 가지 주요 속성을 사용하여 식별할 수 있습니다.
-
순위 - 텐서의 차원에 대해 알려줍니다. 텐서의 순서 또는 정의된 텐서의 차원 수로 이해할 수 있습니다.
-
유형 - Tensor의 요소와 관련된 데이터 유형에 대해 알려줍니다. 1차원, 2차원 또는 n차원 텐서일 수 있습니다.
-
모양 - 행과 열의 개수입니다.
Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
예시
다음은 코드 조각입니다 -
print("A bag-of-words linear model is built to train the stackoverflow dataset") binary_model = tf.keras.Sequential([layers.Dense(4)]) binary_model.compile( loss=losses.SparseCategoricalCrossentropy(from_logits=True), optimizer='adam', metrics=['accuracy']) history = binary_model.fit( binary_train_ds, validation_data=binary_val_ds, epochs=10)
코드 크레딧 - https://www.tensorflow.org/tutorials/load_data/text
출력
A bag-of-words linear model is built to train the stackoverflow dataset Epoch 1/10 188/188 [==============================] - 4s 19ms/step - loss: 1.2450 - accuracy: 0.5243 - val_loss: 0.9285 - val_accuracy: 0.7645 Epoch 2/10 188/188 [==============================] - 1s 3ms/step - loss: 0.8304 - accuracy: 0.8172 - val_loss: 0.7675 - val_accuracy: 0.7895 Epoch 3/10 188/188 [==============================] - 1s 3ms/step - loss: 0.6615 - accuracy: 0.8625 - val_loss: 0.6824 - val_accuracy: 0.8050 Epoch 4/10 188/188 [==============================] - 1s 3ms/step - loss: 0.5604 - accuracy: 0.8833 - val_loss: 0.6291 - val_accuracy: 0.8125 Epoch 5/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4901 - accuracy: 0.9034 - val_loss: 0.5923 - val_accuracy: 0.8210 Epoch 6/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4370 - accuracy: 0.9178 - val_loss: 0.5656 - val_accuracy: 0.8255 Epoch 7/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3948 - accuracy: 0.9270 - val_loss: 0.5455 - val_accuracy: 0.8290 Epoch 8/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3601 - accuracy: 0.9325 - val_loss: 0.5299 - val_accuracy: 0.8295 Epoch 9/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3307 - accuracy: 0.9408 - val_loss: 0.5177 - val_accuracy: 0.8335 Epoch 10/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3054 - accuracy: 0.9472 - val_loss: 0.5080 - val_accuracy: 0.8340
설명
-
신경망은 '시퀀셜' API를 사용하여 생성됩니다.
-
'바이너리' 형식으로 벡터화된 데이터의 경우 선형 모델인 bag-of-words 모델이 학습됩니다.