Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.keras.optimizers.Adadelta

TensorFlow 1 versi Lihat sumber di GitHub

Pengoptimal yang menerapkan algoritma Adadelta.

Mewarisi Dari: Optimizer

Pengoptimalan Adadelta adalah metode penurunan gradien stokastik yang didasarkan pada kecepatan pemelajaran adaptif per dimensi untuk mengatasi dua kekurangan:

  • Penurunan kecepatan pembelajaran yang berkelanjutan selama pelatihan
  • Perlunya kecepatan pembelajaran global yang dipilih secara manual

Adadelta adalah ekstensi Adagrad yang lebih kuat yang menyesuaikan kecepatan pembelajaran berdasarkan jendela bergerak pembaruan gradien, daripada mengakumulasikan semua gradien sebelumnya. Dengan cara ini, Adadelta terus belajar meski banyak pembaharuan telah dilakukan. Dibandingkan dengan Adagrad, di Adadelta versi asli Anda tidak perlu menyetel kecepatan pembelajaran awal. Dalam versi ini, kecepatan pemelajaran awal dapat disetel, seperti di sebagian besar pengoptimal Keras lainnya.

Menurut bagian 4.3 ("Kecepatan Pembelajaran Efektif"), ukuran langkah menjelang akhir pelatihan bertemu dengan 1 yang secara efektif merupakan kecepatan pembelajaran tinggi yang akan menyebabkan perbedaan. Ini hanya terjadi di dekat akhir pelatihan karena gradien dan ukuran langkah kecil, dan konstanta epsilon di pembilang dan penyebut mendominasi gradien sebelumnya dan pembaruan parameter yang menyatukan kecepatan pembelajaran ke 1.

Menurut bagian 4.4 ("Speech Data"), di mana jaringan neural besar dengan 4 lapisan tersembunyi dilatih pada korpus data Inggris AS, ADADELTA digunakan dengan 100 replika jaringan. Epsilon yang digunakan adalah 1e-6 dengan rho = 0,95 yang mana berkumpul lebih cepat dari ADAGRAD, dengan konstruksi berikut: def init (self, lr = 1.0, rho = 0.95, epsilon = 1e-6, decay = 0., ** kwargs):

learning_rate Tensor , nilai floating point, atau jadwal yang merupakan tf.keras.optimizers.schedules.LearningRateSchedule . Kecepatan pembelajaran. Untuk mencocokkan bentuk persis di kertas asli gunakan 1.0.
rho Tensor atau nilai floating point. Tingkat kerusakan.
epsilon Tensor atau nilai floating point. Epsilon konstan digunakan untuk mengondisikan pembaruan grad dengan lebih baik.
name Awalan nama opsional untuk operasi yang dibuat saat menerapkan gradien. Default-nya adalah "Adadelta" .
**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 yang 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

.dll

Tambahkan variabel slot baru untuk var .

add_weight

Lihat sumber

apply_gradients

Lihat sumber

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 Rugi tensor.
params Daftar variabel.

Kembali
Daftar tensor gradien.

Kenaikan
ValueError Dalam hal gradien tidak dapat dihitung (misalnya jika fungsi gradien tidak diterapkan).

get_slot