Rumah  >  Artikel  >  Peranti teknologi  >  Bagaimana untuk membina rangkaian saraf menggunakan TensorFlow

Bagaimana untuk membina rangkaian saraf menggunakan TensorFlow

WBOY
WBOYke hadapan
2024-01-24 22:39:051052semak imbas

Bagaimana untuk membina rangkaian saraf menggunakan TensorFlow

TensorFlow ialah rangka kerja pembelajaran mesin yang popular digunakan untuk melatih dan menggunakan pelbagai rangkaian saraf. Artikel ini membincangkan cara menggunakan TensorFlow untuk membina rangkaian saraf yang ringkas dan menyediakan kod sampel untuk memulakan anda.

Langkah pertama dalam membina rangkaian neural adalah untuk menentukan struktur rangkaian. Dalam TensorFlow, kita boleh menggunakan modul tf.keras untuk mentakrifkan lapisan rangkaian saraf. Contoh kod berikut mentakrifkan rangkaian neural suapan hadapan yang disambungkan sepenuhnya dengan dua lapisan tersembunyi dan lapisan keluaran: ```python import aliran tensor astf model = tf.keras.models.Sequential([ tf.keras.layers.Dense(unit=64, activation='relu', input_shape=(input_dim,)), tf.keras.layers.Dense(unit=32, activation='relu'), tf.keras.layers.Dense(units=output_dim, activation='softmax') ]) ``` Dalam kod di atas, kami menggunakan model `Sequential` untuk membina rangkaian saraf. Lapisan `Dense` mewakili lapisan yang bersambung sepenuhnya, menyatakan bilangan neuron (unit) dan fungsi pengaktifan (pengaktifan) setiap lapisan. Bentuk input lapisan tersembunyi pertama diberikan oleh `input_shape

import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

Dalam contoh ini, kami menggunakan model Sequential untuk menentukan rangkaian saraf kami. Ia adalah model susun ringkas di mana setiap lapisan dibina pada yang sebelumnya. Kami mentakrifkan tiga lapisan, lapisan pertama dan kedua kedua-duanya adalah lapisan bersambung sepenuhnya dengan 64 neuron, dan ia menggunakan fungsi pengaktifan ReLU. Bentuk lapisan input ialah (784,) kerana kami akan menggunakan set data digit tulisan tangan MNIST dan setiap imej dalam set data ini ialah 28x28 piksel, yang mengembang kepada 784 piksel. Lapisan terakhir ialah lapisan bersambung sepenuhnya dengan 10 neuron, yang menggunakan fungsi pengaktifan softmax dan digunakan untuk tugas pengelasan seperti klasifikasi digit dalam set data MNIST.

Kita perlu menyusun model dan menentukan pengoptimuman, fungsi kerugian dan metrik penilaian. Berikut ialah contoh:

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

Dalam contoh ini, kami menggunakan pengoptimum Adam untuk melatih model kami menggunakan entropi silang sebagai fungsi kehilangan untuk masalah pengelasan berbilang kelas. Kami juga menyatakan ketepatan sebagai metrik penilaian untuk menjejak prestasi model semasa latihan dan penilaian.

Sekarang kita telah menentukan struktur dan konfigurasi latihan model, kita boleh membaca data dan mula melatih model. Kami akan menggunakan set data digit tulisan tangan MNIST sebagai contoh. Berikut ialah contoh kod:

from tensorflow.keras.datasets import mnist

(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

train_images = train_images.reshape((60000, 784))
train_images = train_images.astype('float32') / 255

test_images = test_images.reshape((10000, 784))
test_images = test_images.astype('float32') / 255

train_labels = tf.keras.utils.to_categorical(train_labels)
test_labels = tf.keras.utils.to_categorical(test_labels)

model.fit(train_images, train_labels, epochs=5, batch_size=64)

Dalam contoh ini, kami memuatkan set data MNIST menggunakan fungsi mnist.load_data(). Kami kemudian meratakan latihan dan menguji imej kepada 784 piksel dan menskalakan nilai piksel menjadi antara 0 dan 1. Kami juga mengekod satu-panas label untuk menukarnya menjadi tugas pengelasan. Akhir sekali, kami menggunakan fungsi muat untuk melatih model kami, menggunakan imej latihan dan label, menentukan latihan untuk 5 zaman, menggunakan 64 sampel untuk setiap zaman.

Selepas latihan selesai, kita boleh menggunakan fungsi menilai untuk menilai prestasi model pada set ujian:

test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)

Dalam contoh ini, kita memanggil fungsi menilai dengan imej dan label ujian, dan mencetak keputusan untuk ditunjukkan prestasi model pada ketepatan set ujian pada set.

Ini adalah contoh mudah cara membina dan melatih rangkaian saraf menggunakan TensorFlow. Sudah tentu, dalam aplikasi sebenar, anda mungkin memerlukan struktur rangkaian yang lebih kompleks dan set data yang lebih kompleks. Walau bagaimanapun, contoh ini menyediakan titik permulaan yang baik untuk membantu anda memahami penggunaan asas TensorFlow.

Contoh kod lengkap adalah seperti berikut:

import tensorflow as tf
from tensorflow.keras.datasets import mnist

# Define the model architecture
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

# Compile the model
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# Load the data
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

train_images = train_images.reshape((60000, 784))
train_images = train_images.astype('float32') / 255

test_images = test_images.reshape((10000, 784))
test_images = test_images.astype('float32') / 255

train_labels = tf.keras.utils.to_categorical(train_labels)
test_labels = tf.keras.utils.to_categorical(test_labels)

# Train the model
model.fit(train_images, train_labels, epochs=5, batch_size=64)

# Evaluate the model
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)

Di atas ialah contoh kod untuk membina rangkaian saraf menggunakan TensorFlow, yang mentakrifkan rangkaian neural suapan ke hadapan bersambung sepenuhnya yang mengandungi dua lapisan tersembunyi dan satu lapisan keluaran, menggunakan MNIST data digit tulisan tangan Set dilatih dan diuji menggunakan pengoptimum Adam dan fungsi kehilangan entropi silang. Output akhir ialah ketepatan pada set ujian.

Atas ialah kandungan terperinci Bagaimana untuk membina rangkaian saraf menggunakan TensorFlow. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:163.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Kelemahan model TransformerArtikel seterusnya:Kelemahan model Transformer