Keras: Konsep Secara Umum

From OnnoWiki
Jump to: navigation, search

Persiapan: 30 detik Mengenal Keras

Inti Struktur data Keras adalah model, cara untuk mengatur lapisan. Jenis model paling sederhana adalah model Sequential, setumpuk linear lapisan. Untuk arsitektur yang lebih kompleks, anda harus menggunakan API fungsional Keras, yang memungkinkan untuk membuat lapisan graph secara bebas.

Berikut adalah model Sequential:

from keras.models import Sequential
model = Sequential()

Menumpuk lapisan sangat mudah dengan .add():

from keras.layers import Dense

model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))

Setelah model anda tampak baik, konfigurasi proses learning dengan .compile():

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

Jika perlu, anda dapat mengkonfigurasi pengoptimal lebih lanjut. Prinsip inti Keras adalah membuat hal-hal menjadi sederhana, sambil memungkinkan pengguna untuk sepenuhnya mengendalikan ketika mereka perlu (kontrol utama adalah kemudahan ekstensibilitas dari source code).

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))

Kita sekarang dapat melakukan iteeasi dari training data dalam beberapa batch:

# x_train and y_train are Numpy arrays --just like in the Scikit-Learn API.
model.fit(x_train, y_train, epochs=5, batch_size=32)

Alternatif lain, kita dapat memasukan batch secara manual ke model:

model.train_on_batch(x_batch, y_batch)

Evaluasi performance dalam satu kalimat:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

Atau generate prediksi (per-"dukun"-an) terhadap data:

classes = model.predict(x_test, batch_size=128)

Membangun sistem penjawab pertanyaan, model klasifikasi gambar, Neural Turing Machine, atau model lain sama cepatnya. Gagasan di balik Deep Learning sederhana, jadi mengapa penerapannya harus susah?


Pranala Menarik