Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.keras.optimizers.RMSprop

TensorFlow 1 versi Lihat sumber di GitHub

Optimizer yang mengimplementasikan algoritma RMSprop.

Mewarisi Dari: Optimizer

Digunakan di notebook

Digunakan dalam panduan Digunakan dalam tutorial

Inti dari RMSprop adalah untuk:

  • Menjaga bergerak (diskon) rata-rata kuadrat dari gradien
  • Membagi gradien oleh akar ini rata-rata

Implementasi ini RMSprop menggunakan momentum polos, tidak Nesterov momentum.

Versi berpusat tambahan mempertahankan rata-rata bergerak dari gradien, dan penggunaan yang rata-rata untuk memperkirakan varians.

learning_rate Sebuah Tensor , nilai floating point, atau jadwal yang merupakan tf.keras.optimizers.schedules.LearningRateSchedule , atau callable yang tidak mengambil argumen dan mengembalikan nilai sebenarnya untuk digunakan. Tingkat pembelajaran. Defeaults ke 0,001.
rho Diskon faktor untuk gradien sejarah / datang. Default menjadi 0,9.
momentum Sebuah skalar atau skalar Tensor . Defaultnya 0.0.
epsilon Sebuah konstan kecil untuk stabilitas numerik. epsilon ini adalah "epsilon topi" di Kingma dan Ba ​​kertas (dalam formula sebelum Bagian 2.1), bukan epsilon di Algoritma 1 kertas. Default untuk 1e-7.
centered Boolean. Jika True , gradien yang dinormalisasi dengan perkiraan varians dari gradien; jika False, dengan momen kedua uncentered. Pengaturan ini untuk True dapat membantu dengan pelatihan, tapi sedikit lebih mahal dalam hal perhitungan dan memori. Default untuk False .
name Opsional nama awalan untuk operasi dibuat ketika menerapkan gradien. Defaultnya "RMSprop" .
**kwargs argumen kata kunci. Diizinkan untuk menjadi salah satu dari "clipnorm" atau "clipvalue" . "clipnorm" (float) klip gradien oleh norma; "clipvalue" (float) klip gradien berdasarkan nilai.

Perhatikan bahwa dalam pelaksanaan padat algoritma ini, variabel dan akumulator yang sesuai mereka (momentum, gradien rata-rata bergerak, gradien persegi rata-rata bergerak) akan diperbarui bahkan jika gradien adalah nol (yaitu akumulator akan membusuk, momentum akan diterapkan). The jarang pelaksanaan (digunakan ketika gradien adalah IndexedSlices keberatan, biasanya karena tf.gather atau lookup embedding di depan lulus) tidak akan memperbarui irisan variabel atau akumulator mereka kecuali mereka irisan digunakan dalam maju lulus (juga tidak ada "akhirnya" koreksi ke akun untuk ini update dihilangkan). Ini mengarah ke update lebih efisien untuk besar tabel embedding lookup (di mana sebagian besar iris tidak diakses dalam pelaksanaan grafik tertentu), tetapi berbeda dari algoritma diterbitkan.

Pemakaian:

opt = tf.keras.optimizers.RMSprop(learning_rate=0.1)
var1 = tf.Variable(10.0)
loss = lambda: (var1 ** 2) / 2.0    # d(loss) / d(var1) = var1
step_count = opt.minimize(loss, [var1]).numpy()
var1.numpy()
9.683772

Referensi:

learning_rate Sebuah Tensor , nilai floating point, atau jadwal yang merupakan tf.keras.optimizers.schedules.LearningRateSchedule , atau callable yang tidak mengambil argumen dan mengembalikan nilai sebenarnya untuk digunakan. Tingkat pembelajaran. Defeaults ke 0,001.
rho Diskon faktor untuk gradien sejarah / datang. Default menjadi 0,9.
momentum Sebuah skalar atau skalar Tensor . Defaultnya 0.0.
epsilon Sebuah konstan kecil untuk stabilitas numerik. epsilon ini adalah "epsilon topi" di Kingma dan Ba ​​kertas (dalam formula sebelum Bagian 2.1), bukan epsilon di Algoritma 1 kertas. Default untuk 1e-7.
centered Boolean. Jika True , gradien yang dinormalisasi dengan perkiraan varians dari gradien; jika False, dengan momen kedua uncentered. Pengaturan ini untuk True dapat membantu dengan pelatihan, tapi sedikit lebih mahal dalam hal perhitungan dan memori. Default untuk False .
name Opsional nama awalan untuk operasi dibuat ketika menerapkan gradien. Defaultnya "RMSprop".
**kwargs argumen kata kunci. Boleh { clipnorm , clipvalue , lr , decay }. clipnorm adalah klip gradien dengan norma; clipvalue adalah klip gradien dengan nilai, decay termasuk untuk kompatibilitas untuk memungkinkan waktu peluruhan kebalikan dari tingkat belajar. lr disertakan untuk kompatibilitas, dianjurkan untuk menggunakan learning_rate sebagai gantinya.

iterations Variabel. Jumlah pelatihan langkah Optimizer ini telah berjalan.
weights Pengembalian variabel Optimizer ini berdasarkan urutan dibuat.

metode

add_slot

Lihat sumber

Menambahkan variabel slot yang baru untuk var .

add_weight

Lihat sumber

apply_gradients

Lihat sumber

Terapkan gradien untuk variabel.

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

Metode ini merangkum gradien dari semua replika di hadapan tf.distribute.Strategy secara default. Anda dapat agregat gradien diri dengan melewati 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 (gradien, variabel) pasang.
name nama opsional untuk operasi kembali. Default ke nama diteruskan ke Optimizer konstruktor.
experimental_aggregate_gradients Apakah untuk jumlah gradien dari replika yang berbeda dalam Keberadaan ini tf.distribute.Strategy . Jika False, tanggung jawab pengguna itu untuk agregat gradien. Default Benar.

Pengembalian
Sebuah Operation yang menerapkan gradien tertentu. The iterations akan secara otomatis meningkat sebesar 1.

kenaikan gaji
TypeError Jika grads_and_vars adalah kelainan bentuk.
ValueError Jika tidak ada variabel memiliki gradien.

from_config

Lihat sumber

Menciptakan optimizer dari konfigurasi nya.

Metode ini adalah kebalikan dari get_config , mampu instantiating optimizer yang sama dari config kamus.

argumen
config Sebuah Python kamus, biasanya output dari get_config.
custom_objects Sebuah Python pemetaan nama kamus untuk tambahan Python benda yang digunakan untuk membuat optimizer ini, seperti fungsi yang digunakan untuk hyperparameter a.

Pengembalian
Sebuah optimizer misalnya.

get_config

Lihat sumber

Mengembalikan konfigurasi dari optimizer.

Sebuah config optimizer adalah kamus Python (serializable) yang berisi konfigurasi dari optimizer. Optimizer yang sama dapat reinstantiated kemudian (tanpa negara disimpan) dari konfigurasi ini.

Pengembalian
Python kamus.

get_gradients

Lihat sumber

Pengembalian gradien dari loss sehubungan dengan params .

argumen
loss tensor kerugian.
params Daftar variabel.

Pengembalian
Daftar tensor gradien.

kenaikan gaji
ValueError Dalam hal gradien apapun tidak dapat dihitung (misalnya jika fungsi gradien tidak dilaksanakan).

get_slot

Lihat sumber

get_slot_names

Lihat sumber