Uzmanlar için TensorFlow 2 hızlı başlangıç

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

TensorFlow.org'da görüntüleyin Google Colab'da çalıştırın Kaynağı GitHub'da görüntüleyin Not defterini indir

Bu bir Google İşbirliği not defteri dosyasıdır. Python programları doğrudan tarayıcıda çalıştırılır; bu, TensorFlow'u öğrenmenin ve kullanmanın harika bir yoludur. Bu öğreticiyi takip etmek için, bu sayfanın üst kısmındaki düğmeyi tıklayarak not defterini Google Colab'da çalıştırın.

  1. Colab'de bir Python çalışma zamanına bağlanın: Menü çubuğunun sağ üst köşesinde BAĞLAN öğesini seçin.
  2. Tüm not defteri kod hücrelerini çalıştırın: Runtime > Run all öğesini seçin.

TensorFlow 2'yi indirin ve kurun. TensorFlow'u programınıza aktarın:

TensorFlow'u programınıza aktarın:

import tensorflow as tf
print("TensorFlow version:", tf.__version__)

from tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model
tutucu1 l10n-yer
TensorFlow version: 2.8.0-rc1

MNIST veri setini yükleyin ve hazırlayın.

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# Add a channels dimension
x_train = x_train[..., tf.newaxis].astype("float32")
x_test = x_test[..., tf.newaxis].astype("float32")

Veri kümesini toplu hale getirmek ve karıştırmak için tf.data kullanın:

train_ds = tf.data.Dataset.from_tensor_slices(
    (x_train, y_train)).shuffle(10000).batch(32)

test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)

tf.keras modeli alt sınıflama API'sini kullanarak tf.keras modelini oluşturun:

class MyModel(Model):
  def __init__(self):
    super(MyModel, self).__init__()
    self.conv1 = Conv2D(32, 3, activation='relu')
    self.flatten = Flatten()
    self.d1 = Dense(128, activation='relu')
    self.d2 = Dense(10)

  def call(self, x):
    x = self.conv1(x)
    x = self.flatten(x)
    x = self.d1(x)
    return self.d2(x)

# Create an instance of the model
model = MyModel()

Eğitim için bir optimize edici ve kayıp işlevi seçin:

loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

optimizer = tf.keras.optimizers.Adam()

Modelin kaybını ve doğruluğunu ölçmek için metrikleri seçin. Bu metrikler, çağlar boyunca değerleri biriktirir ve ardından genel sonucu yazdırır.

train_loss = tf.keras.metrics.Mean(name='train_loss')
train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')

test_loss = tf.keras.metrics.Mean(name='test_loss')
test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')

Modeli eğitmek için tf.GradientTape kullanın:

@tf.function
def train_step(images, labels):
  with tf.GradientTape() as tape:
    # training=True is only needed if there are layers with different
    # behavior during training versus inference (e.g. Dropout).
    predictions = model(images, training=True)
    loss = loss_object(labels, predictions)
  gradients = tape.gradient(loss, model.trainable_variables)
  optimizer.apply_gradients(zip(gradients, model.trainable_variables))

  train_loss(loss)
  train_accuracy(labels, predictions)

Modeli test edin:

@tf.function
def test_step(images, labels):
  # training=False is only needed if there are layers with different
  # behavior during training versus inference (e.g. Dropout).
  predictions = model(images, training=False)
  t_loss = loss_object(labels, predictions)

  test_loss(t_loss)
  test_accuracy(labels, predictions)
EPOCHS = 5

for epoch in range(EPOCHS):
  # Reset the metrics at the start of the next epoch
  train_loss.reset_states()
  train_accuracy.reset_states()
  test_loss.reset_states()
  test_accuracy.reset_states()

  for images, labels in train_ds:
    train_step(images, labels)

  for test_images, test_labels in test_ds:
    test_step(test_images, test_labels)

  print(
    f'Epoch {epoch + 1}, '
    f'Loss: {train_loss.result()}, '
    f'Accuracy: {train_accuracy.result() * 100}, '
    f'Test Loss: {test_loss.result()}, '
    f'Test Accuracy: {test_accuracy.result() * 100}'
  )
-yer tutucu10 l10n-yer
Epoch 1, Loss: 0.13306719064712524, Accuracy: 96.03833770751953, Test Loss: 0.0717063844203949, Test Accuracy: 97.68999481201172
Epoch 2, Loss: 0.04493752866983414, Accuracy: 98.61833190917969, Test Loss: 0.058997876942157745, Test Accuracy: 98.18000030517578
Epoch 3, Loss: 0.023821160197257996, Accuracy: 99.22000122070312, Test Loss: 0.0560370571911335, Test Accuracy: 98.30999755859375
Epoch 4, Loss: 0.014193248935043812, Accuracy: 99.50666809082031, Test Loss: 0.06797954440116882, Test Accuracy: 98.29999542236328
Epoch 5, Loss: 0.010457769967615604, Accuracy: 99.63666534423828, Test Loss: 0.08524733036756516, Test Accuracy: 97.83999633789062

Görüntü sınıflandırıcı artık bu veri kümesinde ~%98 doğruluk için eğitilmiştir. Daha fazla bilgi edinmek için TensorFlow eğitimlerini okuyun.