Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.keras.optimizers.Adamax

TensorFlow 1 versi Lihat sumber di GitHub

Pengoptimal yang menerapkan algoritme Adamax.

Mewarisi Dari: Optimizer

Itu adalah varian dari Adam berdasarkan norma tak terhingga. Parameter default mengikuti yang disediakan di kertas. Adamax terkadang lebih unggul dari adam, khususnya dalam model dengan embeddings.

Inisialisasi:

m = 0  # Initialize initial 1st moment vector
v = 0  # Initialize the exponentially weighted infinity norm
t = 0  # Initialize timestep

Aturan pembaruan untuk parameter w dengan gradien g dijelaskan di akhir bagian 7.1 dari makalah ini:

t += 1
m = beta1 * m + (1 - beta) * g
v = max(beta2 * v, abs(g))
current_lr = learning_rate / (1 - beta1 ** t)
w = w - current_lr * m / (v + epsilon)

Mirip dengan Adam , epsilon ditambahkan untuk stabilitas numerik (terutama untuk menghilangkan pembagian dengan nol ketika v_t == 0 ).

Berbeda dengan Adam , pelaksanaan jarang algoritma ini (digunakan ketika gradien adalah IndexedSlices keberatan, biasanya karena tf.gather atau embedding lookup di depan pass) hanya update irisan variabel dan sesuai m_t , v_t istilah ketika bagian dari variabel tersebut digunakan di forward pass. Ini berarti bahwa perilaku jarang berbeda dengan perilaku padat (mirip dengan beberapa implementasi momentum yang mengabaikan momentum kecuali potongan variabel benar-benar digunakan).

learning_rate Tensor , nilai floating point, atau jadwal yang merupakan tf.keras.optimizers.schedules.LearningRateSchedule . Kecepatan pembelajaran.
beta_1 Nilai float atau tensor float konstan. Tingkat peluruhan eksponensial untuk perkiraan momen pertama.
beta_2 Nilai float atau tensor float konstan. Tingkat peluruhan eksponensial untuk norma tak terhingga yang berbobot eksponensial.
epsilon Konstanta kecil untuk stabilitas numerik.
name Nama opsional untuk operasi yang dibuat saat menerapkan gradien. Default-nya adalah "Adamax" .
**kwargs Argumen kata kunci. Diizinkan untuk menjadi salah satu "clipnorm" atau "clipvalue" . "clipnorm" (float) klip gradien menurut norma; "clipvalue" (float) klip gradien berdasarkan nilai.

Referensi:

name String tidak kosong. Nama yang digunakan untuk akumulator dibuat untuk pengoptimal.
**kwargs argumen kata kunci. Diizinkan untuk menjadi { clipnorm , clipvalue , lr , decay }. clipnorm adalah gradien klip menurut norma; clipvalue adalah gradien klip berdasarkan nilai, decay disertakan untuk kompatibilitas mundur untuk memungkinkan peluruhan terbalik dari kecepatan pembelajaran. lr disertakan untuk kompatibilitas mundur, disarankan untuk menggunakan learning_rate sebagai gantinya.

ValueError Jika nama salah format.

iterations Variabel. Jumlah langkah pelatihan yang telah dijalankan Pengoptimal ini.
weights Mengembalikan variabel dari Pengoptimal ini berdasarkan pesanan yang dibuat.

Metode

add_slot

Lihat sumber

Tambahkan variabel slot baru untuk var .

add_weight

Lihat sumber

apply_gradients

Lihat sumber

.dll

Terapkan gradien ke variabel.

Ini adalah bagian kedua dari minimize() . Ini mengembalikan Operation yang menerapkan gradien.

Metode ini menjumlahkan gradien dari semua replika dengan adanya tf.distribute.Strategy secara default. Anda dapat menggabungkan sendiri gradien dengan meneruskan experimental_aggregate_gradients=False .

Contoh:

grads = tape.gradient(loss, vars)
grads = tf.distribute.get_replica_context().all_reduce('sum', grads)
# Processing aggregated gradients.
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)

Args
grads_and_vars Daftar pasangan (gradien, variabel).
name Nama opsional untuk operasi yang dikembalikan. Default untuk nama yang diteruskan ke konstruktor Optimizer .
experimental_aggregate_gradients Apakah akan menjumlahkan gradien dari replika yang berbeda dengan adanya tf.distribute.Strategy . Jika False, itu tanggung jawab pengguna untuk menggabungkan gradien. Default ke True.

Kembali
Operation yang menerapkan gradien yang ditentukan. iterations akan ditingkatkan secara otomatis sebesar 1.

Kenaikan
TypeError Jika grads_and_vars salah grads_and_vars .
ValueError Jika tidak ada variabel yang memiliki gradien.

from_config

Lihat sumber

Membuat pengoptimal dari konfigurasinya.

Metode ini adalah kebalikan dari get_config , yang mampu membuat contoh pengoptimal yang sama dari kamus konfigurasi.

Argumen
config Kamus Python, biasanya keluaran get_config.
custom_objects Kamus Python memetakan nama ke objek Python tambahan yang digunakan untuk membuat pengoptimal ini, seperti fungsi yang digunakan untuk hyperparameter.

Kembali
Contoh pengoptimal.

get_config

Lihat sumber

Mengembalikan konfigurasi pengoptimal.

Konfigurasi pengoptimal adalah kamus Python (dapat serial) yang berisi konfigurasi pengoptimal. Pengoptimal yang sama dapat dipulihkan nanti (tanpa status tersimpan) dari konfigurasi ini.

Kembali
Kamus Python.

get_gradients

Lihat sumber

Mengembalikan gradien loss sehubungan dengan params .

Argumen
loss Tensor rugi.
params Daftar variabel.

Kembali
Daftar tensor gradien.

Kenaikan
ValueError Dalam hal gradi