arrow_back

TensorFlow: Qwik Start

Login Gabung
Uji dan bagikan pengetahuan Anda kepada komunitas kami.
done
Dapatkan akses ke lebih dari 700 lab praktik, badge keahlian, dan kursus

TensorFlow: Qwik Start

Lab 45 menit universal_currency_alt 1 Kredit show_chart Pengantar
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Uji dan bagikan pengetahuan Anda kepada komunitas kami.
done
Dapatkan akses ke lebih dari 700 lab praktik, badge keahlian, dan kursus

GSP637

Lab Mandiri Google Cloud

Ringkasan

Di lab ini, Anda akan mempelajari ‘Halo Dunia' dasar machine learning. Anda akan membangun sistem yang dilatih berdasarkan data untuk menginferensikan aturan yang menentukan hubungan antar-angka, alih-alih memprogram aturan eksplisit dalam bahasa seperti Java atau C++.

Tujuan

Di lab ini, Anda akan mempelajari cara:

  • Menyiapkan lingkungan pengembangan di notebook Jupyter
  • Mendesain model machine learning
  • Melatih jaringan neural
  • Menguji model

Penyiapan dan persyaratan

Sebelum mengklik tombol Mulai Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Pengantar

Pertimbangkan masalah berikut: Anda sedang membangun sistem yang menjalankan pengenalan aktivitas untuk pelacakan kebugaran. Anda mungkin memiliki akses ke kecepatan gerak seseorang dan mencoba menginferensikan aktivitasnya berdasarkan kecepatan ini menggunakan kondisi:

if(speed<4){ status=WALKING; }
  • Anda dapat memperluas ini hingga berlari dengan kondisi lain:
if(speed<4){ status=WALKING; } else { status=RUNNING; }
  • Dengan cara yang sama, Anda dapat mendeteksi bersepeda dengan kondisi lain:
if(speed<4){ status=WALKING; } else if(speed<12){ status=RUNNING; } else { status=BIKING; }
  • Sekarang, pertimbangkan apa yang terjadi jika Anda ingin menyertakan aktivitas seperti golf? Kini, cara membuat aturan untuk menentukan aktivitas tersebut menjadi kurang begitu jelas.
// Now what?

Sangatlah sulit menulis program (yang diekspresikan dalam kode) yang membantu Anda mendeteksi aktivitas bermain golf.

Jadi, apa yang akan Anda lakukan? Anda dapat menggunakan machine learning untuk menyelesaikan masalah ini.

Apa itu machine learning?

Pada bagian sebelumnya, Anda mengalami masalah saat mencoba menentukan aktivitas kebugaran pengguna. Anda terbentur pada batasan terkait apa yang bisa dicapai dengan menulis lebih banyak kode karena kondisi yang Anda tulis harus lebih kompleks untuk mendeteksi aktivitas seperti golf.

Pertimbangkan membangun aplikasi dengan cara tradisional seperti yang ditunjukkan dalam diagram berikut:

Diagram yang mengilustrasikan alur aturan dan data sebagai input ke pemrograman tradisional, dengan output berupa jawaban

Anda mengekspresikan aturan dalam bahasa pemrograman. Aturan ini bertindak berdasarkan data dan program Anda menyediakan jawaban. Dalam kasus pendeteksian aktivitas ini, aturan (kode yang Anda tulis untuk menentukan jenis aktivitas) bertindak berdasarkan data (kecepatan gerak seseorang) untuk menemukan jawaban -- nilai hasil dari fungsi untuk menentukan status aktivitas pengguna (jalan kaki, lari, bersepeda, dll.).

Proses untuk mendeteksi aktivitas ini melalui machine learning sangat mirip -- sumbunya saja yang berbeda:

Diagram yang mengilustrasikan alur jawaban dan data sebagai input ke machine learning, dengan output berupa aturan

Alih-alih mencoba menentukan aturan dan mengekspresikannya dalam bahasa pemrograman, Anda memberikan jawaban (biasanya disebut label) beserta datanya. Selanjutnya, machine learning akan menginferensikan aturan yang menentukan hubungan antara jawaban dan data. Misalnya, dalam konteks machine learning, skenario pendeteksian aktivitas Anda mungkin akan terlihat seperti ini:

Empat label - jalan kaki, lari, bersepeda, dan golf - ditampilkan sebagai satu dan nol

Anda mengumpulkan banyak data dan melabelinya untuk dapat mengatakan "Seperti inilah jalan kaki", "Seperti inilah lari", dst. Selanjutnya, dari data tersebut, komputer dapat menginferensikan aturan yang menentukan apa saja pola unik yang menunjukkan aktivitas tertentu.

Selain menjadi metode alternatif untuk memprogram skenario ini, cara ini juga memberi Anda kemampuan untuk membuka skenario baru, misalnya bermain golf, yang mungkin tidak dapat dilakukan menggunakan pendekatan pemrograman tradisional berbasis aturan.

Dalam pemrograman tradisional, kode Anda dikompilasi menjadi program biner yang biasanya disebut program. Dalam machine learning, item yang Anda buat dari data dan label disebut model.

Jadi, jika Anda kembali ke diagram ini:

Diagram yang mengilustrasikan alur jawaban dan data sebagai input ke machine learning, dengan output berupa aturan

Pertimbangkan hasil diagram di atas sebagai model, yang digunakan seperti berikut saat runtime:

Diagram yang mengilustrasikan alur data sebagai input ke model, dengan output berupa prediksi

Anda meneruskan data ke model ini, dan model tersebut menggunakan aturan yang diinferensikannya dari pelatihan untuk menghasilkan prediksi -- yakni "Data itu sepertinya jalan kaki", "Data itu sepertinya bersepeda", dll.

Di lab ini, Anda akan membangun model 'Halo Dunia' sangat sederhana yang terbuat dari elemen penyusun yang dapat digunakan dalam skenario machine learning apa pun.

Tugas 1. Membuka notebook di Vertex AI Workbench

  1. Di Konsol Google Cloud, pada Navigation menu, klik Vertex AI > Workbench.

  2. Cari instance lalu klik tombol Open JupyterLab.

Antarmuka JupyterLab untuk instance Workbench Anda akan terbuka di tab browser baru.

Menginstal TensorFlow dan paket tambahan

  1. Dari menu Launcher, di bagian Other, pilih Terminal.

  2. Periksa apakah lingkungan Python Anda sudah dikonfigurasi. Salin dan tempel perintah berikut di terminal.

python --version

Contoh output:

Python 3.10.14
  1. Jalankan perintah berikut untuk menginstal paket TensorFlow.
pip3 install tensorflow
  1. Untuk mengupgrade pip3, jalankan perintah berikut di terminal.
pip3 install --upgrade pip

Pylint adalah alat yang memeriksa error dalam kode Python, serta menandai masalah sintaksis dan gaya dalam kode sumber Python Anda.

  1. Jalankan perintah berikut untuk menginstal paket pylint.
pip install -U pylint --user
  1. Instal paket yang diperlukan untuk lab ini dalam file requirements.txt:
pip install -r requirements.txt

Lingkungan Anda berhasil disiapkan.

Tugas 2. Membuat model machine learning pertama Anda

Pertimbangkan rangkaian angka berikut. Dapatkah Anda memahami hubungan antara angka-angka tersebut?

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

Jika Anda membaca dari kiri ke kanan, perhatikan bahwa nilai X bertambah 1 dan nilai Y terkaitnya bertambah 3. Jadi, hubungannya adalah Y=3X plus atau minus suatu nilai.

Lalu, perhatikan 0 di X dan lihat bahwa nilai Y terkaitnya adalah 1.

Dari kedua pengamatan ini, Anda dapat menyimpulkan bahwa hubungan antara dua rangkaian angka tersebut adalah Y=3X+1.

Kurang lebih seperti itulah Anda akan menggunakan kode untuk melatih model (disebut jaringan neural) guna menemukan pola dalam data.

Anda menggunakan data untuk melatih jaringan neural. Dengan memberinya serangkaian X dan serangkaian Y, jaringan neural akan dapat mengetahui hubungan antara data tersebut.

Membuat notebook baru dan mengimpor library

  1. Klik ikon + di sebelah kiri Workbench untuk membuka Launcher baru.

  2. Dari menu Launcher, di bagian Notebook, pilih Python3.

file notebook baru

Anda akan melihat notebook Jupyter baru. Untuk informasi selengkapnya tentang cara menggunakan notebook Jupyter, lihat dokumentasi Notebook Jupyter.

  1. Impor dan konfigurasi logging serta google-cloud-logging untuk Cloud Logging. Pada sel pertama, tambahkan kode berikut:
import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler())
  1. Impor tensorflow untuk melatih dan mengevaluasi model. Namai sebagai tf untuk memudahkan. Tambahkan kode berikut ke sel pertama.
# Import TensorFlow import tensorflow as tf
  1. Impor numpy guna mengurai data untuk tujuan proses debug. Namai sebagai np untuk memudahkan. Tambahkan kode berikut ke sel pertama.
# Import numpy import numpy as np
  1. Untuk menjalankan sel ini, klik tombol Run atau tekan Shift + Enter.

  2. Simpan notebook. Klik File -> Save. Namai filenya sebagai model.ipynb, lalu klik OK.

Catatan: Anda dapat mengabaikan peringatan apa pun yang mungkin muncul dalam output.

Menyiapkan data

Berikutnya, siapkan data yang akan digunakan melatih model Anda. Di lab ini, Anda menggunakan 6 X dan 6 Y yang digunakan sebelumnya:

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

Seperti yang Anda lihat, hubungan antara X dan Y adalah Y=3x+1, jadi jika X=1, Y=4, dst.

Library python yang disebut numpy menyediakan beragam struktur data jenis array yang merupakan cara standar defacto untuk menyuplai data. Untuk menggunakan struktur ini, tentukan nilai sebagai array dalam numpy menggunakan np.array([])

  1. Pada sel kedua, tambahkan kode berikut:
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)

Mendesain model

Di bagian ini, Anda akan mendesain model menggunakan TensorFlow.

Anda akan menggunakan algoritma machine learning yang disebut jaringan neural untuk melatih model. Anda akan membuat jaringan neural yang paling sederhana. Jaringan ini memiliki 1 lapisan, dan lapisan tersebut memiliki 1 neuron. Input jaringan neural ini hanya satu nilai pada satu waktu. Oleh karena itu, bentuk inputnya harus [1].

Catatan: Anda akan mempelajari lebih lanjut jaringan neural di lab mendatang dalam Quest ini.
  1. Pada sel kedua, tambahkan kode berikut:
model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])

Mengompilasi model

Selanjutnya, Anda akan menulis kode untuk mengompilasi jaringan neural. Saat melakukannya, Anda harus menentukan 2 fungsi: loss (kerugian) dan optimizer (pengoptimal).

Jika Anda telah melihat banyak perhitungan matematika untuk machine learning, di sinilah biasanya Anda akan menggunakannya, tetapi tf.keras mengenkapsulasinya dengan baik sebagai fungsi untuk memudahkan Anda.

  • Dari pengamatan sebelumnya, Anda mengetahui bahwa hubungan antara rangkaian angka tersebut adalah y=3x+1.

  • Saat mencoba mempelajari hubungan ini, komputer akan menebak...mungkin y=10x+10. Fungsi loss mengukur jawaban tebakan itu berdasarkan jawaban benar yang diketahui dan mengukur seberapa baik atau buruk kualitasnya.

Catatan: Pelajari lebih lanjut berbagai jenis fungsi kerugian yang ada di tf.keras dalam Modul: dokumentasi tf.keras.losses.
  • Selanjutnya, model menggunakan fungsi pengoptimal untuk membuat tebakan lain. Berdasarkan hasil fungsi kerugian, model akan mencoba meminimalkan kerugian. Pada tahap ini, model tersebut mungkin akan memunculkan hasil seperti y=5x+5. Meskipun belum bisa disebut baik, hasil ini sudah mendekati hasil yang benar (artinya kerugiannya lebih rendah).
Catatan: Pelajari lebih lanjut berbagai jenis pengoptimal yang ada di tf.keras dalam Modul: dokumentasi tf.keras.optimizers.
  • Model akan mengulang proses ini untuk sejumlah epoch yang Anda tentukan.
  1. Tambahkan kode berikut ke sel kedua:
model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError())

Dalam cuplikan kode di atas, Anda meminta model untuk menggunakan mean_squared_error untuk kerugian dan stochastic gradient descent (sgd) untuk pengoptimal. Anda belum perlu memahami matematika keduanya, tetapi Anda akan melihat bahwa fungsi tersebut efektif.

Catatan: Seiring waktu, Anda akan mempelajari fungsi kerugian dan pengoptimal yang tepat untuk berbagai skenario.

Melatih jaringan neural

Untuk melatih jaringan neural agar 'mempelajari' hubungan antara X dan Y, Anda akan menggunakan model.fit.

Fungsi ini akan melatih model secara terus-menerus di mana model akan membuat tebakan, mengukur seberapa baik atau buruk kualitasnya (alias kerugian), menggunakan pengoptimal untuk membuat tebakan lain, dll. Model akan mengulang proses ini untuk sejumlah epoch yang Anda tentukan, yang di lab ini berjumlah 500.

  1. Tambahkan kode berikut ke sel kedua:
model.fit(xs, ys, epochs=500)

Dalam kode di atas, model.fit akan melatih model untuk sejumlah epoch yang sudah ditetapkan.

Catatan: Pelajari lebih lanjut model.fit dari bagian fit dalam dokumentasi tf.keras.Model.

Kini, file Anda akan terlihat seperti ini (perhatikan bahwa kode akan ditampilkan dalam dua sel terpisah):

import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler()) import tensorflow as tf import numpy as np xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float) model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])]) model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError()) model.fit(xs, ys, epochs=500)

Menjalankan kode

Skrip Anda sudah siap. Jalankan skrip tersebut untuk melihat hasilnya.

  1. Klik tombol Run atau tekan Shift + Enter untuk menjalankan sel kedua di notebook.

  2. Lihat output-nya. Perhatikan bahwa skrip mencetak kerugian untuk setiap epoch. Output Anda mungkin akan sedikit berbeda dengan yang diilustrasikan di sini.

Catatan: Angka dengan e- pada nilainya ditampilkan dalam notasi ilmiah dengan eksponen negatif.

Jika terus men-scroll epoch, Anda akan melihat bahwa nilai kerugian cukup besar untuk beberapa epoch awal, tetapi makin mengecil seiring berjalannya pelatihan. Contoh:

Garis-garis kerugian epoch yang menurun bertahap. Garis kedua kerugian epoch adalah 52.1992, sedangkan garis kesembilannya adalah 9.7403

Seiring berjalannya pelatihan, kerugian makin mengecil:

Garis ke-45 kerugian epoch adalah 0.0023, sedangkan garis ke-54 adalah 7.1057e-04

Dan pada saat pelatihan selesai, kerugiannya menjadi sangat kecil, yang menunjukkan bahwa model kita berperforma sangat baik dalam menginferensikan hubungan antar-angka:

Garis ke-495 kerugian epoch adalah 5.4194e-08, sedangkan garis ke-500 adalah 4.8896e-08

Anda mungkin tidak memerlukan 500 epoch. Cobalah bereksperimen dengan jumlah berbeda. Dalam contoh ini, kerugian sudah sangat kecil setelah 50 epoch saja, jadi jumlah ini mungkin sudah cukup.

Klik Check my progress untuk memverifikasi tujuan. Membuat model machine learning

Menggunakan model

Kini, Anda memiliki model yang sudah dilatih untuk mempelajari hubungan antara X dan Y.

Anda dapat menggunakan metode model.predict guna mencari tahu Y untuk X yang sebelumnya tidak terlihat oleh model selama pelatihan. Jadi, misalnya, jika X=10, menurut Anda berapa Y-nya?

  1. Tambahkan kode berikut ke sel ketiga untuk membuat prediksi:
cloud_logger.info(str(model.predict(np.array([10.0])))) Catatan: Hasil prediksi Anda diteruskan ke cloud_logger untuk menghasilkan log cloud yang dapat diperiksa perkembangannya.
  1. Tekan Ctrl+S atau klik File -> Save untuk menyimpan notebook.

  2. Untuk menjalankan sel ketiga, klik tombol Run atau tekan Shift + Enter.

Nilai Y dicantumkan setelah log pelatihan (epoch).

Contoh output:

Nilai Y adalah 31.005917

Anda mungkin mengira Y=31, kan? Tetapi ternyata sedikit lebih tinggi (31.005917). Kira-kira apa penyebabnya?

Jawaban: Jaringan neural menangani probabilitas. Berdasarkan perhitungannya, terdapat probabilitas yang sangat tinggi bahwa hubungan X dan Y adalah Y=3X+1. Namun, karena hanya ada 6 titik data, jaringan neural tidak dapat memastikannya. Akibatnya, hasil untuk 10 epoch sangat mendekati 31, tetapi tidak tepat 31.

Saat bekerja dengan jaringan neural, Anda akan melihat pola ini berulang. Hampir bisa dipastikan, Anda akan berurusan dengan probabilitas, bukan kepastian, dan perlu melakukan sedikit coding untuk mengetahui hasilnya berdasarkan probabilitas tersebut, khususnya jika berkaitan dengan klasifikasi.

Klik Check my progress untuk memverifikasi tujuan. Menggunakan model

Selamat!

Selamat! Di lab ini, Anda telah membuat, melatih, dan menguji Model Machine Learning Anda sendiri menggunakan TensorFlow.

Langkah berikutnya/pelajari lebih lanjut

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui 16 September 2024

Lab Terakhir Diuji 16 September 2024

Hak cipta 2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia