TF: TensorFlow menggunakan Keras
Keras adalah antarmuka high-level dari TensorFlow yang memudahkan kita dalam membangun Neural Network (NN) tanpa harus menulis kode tingkat rendah. Dengan Keras, kita bisa membuat model dengan beberapa baris kode.
1. Instalasi TensorFlow
Jika belum terinstal, jalankan perintah berikut:
pip install tensorflow
Lalu, kita bisa mengimpor TensorFlow dan Keras:
import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers
2. Membuat Model Neural Network Sederhana
Kita bisa membangun model Sequential yang paling umum digunakan.
model = keras.Sequential([ layers.Dense(64, activation='relu', input_shape=(10,)), # Layer pertama dengan 64 neuron layers.Dense(32, activation='relu'), # Hidden layer dengan 32 neuron layers.Dense(1, activation='sigmoid') # Output layer (sigmoid untuk binary classification) ]) # Menampilkan struktur model model.summary()
3. Mengompilasi Model
Sebelum melatih model, kita perlu mengompilasinya dengan menentukan loss function, optimizer, dan metrics.
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
4. Melatih Model dengan Data Buatan
Sekarang, kita buat data acak untuk melatih model ini.
import numpy as np # Data latih (1000 sampel, 10 fitur) X_train = np.random.rand(1000, 10) y_train = np.random.randint(0, 2, 1000) # Label binary (0 atau 1) # Melatih model model.fit(X_train, y_train, epochs=10, batch_size=32)
5. Memprediksi Data Baru
Setelah dilatih, kita bisa melakukan prediksi dengan model kita.
X_new = np.random.rand(5, 10) # 5 sampel baru predictions = model.predict(X_new) print(predictions)
6. Contoh Model yang Lebih Kompleks
Jika kita ingin membangun deep neural network yang lebih kompleks, kita bisa menggunakan API `Functional`.
inputs = keras.Input(shape=(10,)) x = layers.Dense(128, activation='relu')(inputs) x = layers.Dense(64, activation='relu')(x) x = layers.Dense(32, activation='relu')(x) outputs = layers.Dense(1, activation='sigmoid')(x) model = keras.Model(inputs=inputs, outputs=outputs) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.summary()
7. Membangun Model untuk Klasifikasi Multi-Kelas
Jika kita ingin membangun model untuk klasifikasi multi-kelas (contoh: 3 kelas), kita bisa menggunakan softmax sebagai aktivasi output.
model = keras.Sequential([ layers.Dense(64, activation='relu', input_shape=(10,)), layers.Dense(32, activation='relu'), layers.Dense(3, activation='softmax') # 3 output classes ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Data dummy untuk multi-kelas y_train = np.random.randint(0, 3, 1000) # Label dari 0, 1, atau 2 model.fit(X_train, y_train, epochs=10, batch_size=32)
8. Model untuk Prediksi Data Numerik (Regresi)
Jika target adalah nilai numerik, kita pakai activation linear dan loss MSE.
model = keras.Sequential([ layers.Dense(64, activation='relu', input_shape=(10,)), layers.Dense(32, activation='relu'), layers.Dense(1) # Tidak ada aktivasi untuk regresi ]) model.compile(optimizer='adam', loss='mse', # Mean Squared Error untuk regresi metrics=['mae']) # Mean Absolute Error y_train = np.random.rand(1000) * 100 # Target nilai antara 0-100 model.fit(X_train, y_train, epochs=10, batch_size=32)
9. Membangun Convolutional Neural Network (CNN) untuk Gambar
Untuk image classification, kita bisa menggunakan CNN.
model = keras.Sequential([ layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), layers.MaxPooling2D((2,2)), layers.Conv2D(64, (3,3), activation='relu'), layers.MaxPooling2D((2,2)), layers.Flatten(), layers.Dense(64, activation='relu'), layers.Dense(10, activation='softmax') # 10 kelas (misalnya MNIST) ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.summary()
10. Membuat Recurrent Neural Network (RNN) untuk Data Urutan
Jika kita bekerja dengan data sekuensial (seperti teks atau time series), kita bisa menggunakan LSTM.
model = keras.Sequential([ layers.Embedding(input_dim=10000, output_dim=128), layers.LSTM(64, return_sequences=True), layers.LSTM(32), layers.Dense(1, activation='sigmoid') # Binary classification ]) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.summary()
Kesimpulan
- Keras memudahkan kita dalam membangun model neural network dengan sedikit kode.
- Kita bisa membuat model untuk berbagai keperluan:
- Binary classification (aktivasi `sigmoid` dan loss `binary_crossentropy`).
- Multi-class classification (aktivasi `softmax` dan loss `sparse_categorical_crossentropy`).
- Regression (tanpa aktivasi di output, loss `mse`).
- Computer vision (CNN) untuk image classification.
- Recurrent models (RNN/LSTM) untuk text atau time-series.
Coba eksperimen dengan model di atas dan sesuaikan dengan dataset yang kamu gunakan!