Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.compat.v1.train.MomentumOptimizer

Lihat sumber di GitHub

Optimizer yang mengimplementasikan algoritma Momentum.

Mewarisi Dari: Optimizer

Menghitung (jika use_nesterov = False ):

 accumulation = momentum * accumulation + gradient
variable -= learning_rate * accumulation
 

Perhatikan bahwa dalam versi padat algoritma ini, accumulation diperbarui dan diterapkan terlepas dari nilai gradien, sedangkan versi jarang (ketika gradien adalah IndexedSlices , biasanya karena tf.gather atau embedding) hanya update irisan variabel dan sesuai accumulation istilah ketika bagian dari variabel yang digunakan dalam maju lulus.

learning_rate Sebuah Tensor atau nilai floating point. Tingkat pembelajaran.
momentum Sebuah Tensor atau nilai floating point. Momentum.
use_locking Jika True kunci digunakan untuk operasi update.
name Opsional nama awalan untuk operasi dibuat ketika menerapkan gradien. Defaultnya "Momentum".
use_nesterov Jika True penggunaan Nesterov Momentum. Lihat (Sutskever et al., 2013). Implementasi ini selalu menghitung gradien pada nilai variabel (s) dilewatkan ke optimizer. Menggunakan Nesterov Momentum membuat variabel (s) melacak nilai-nilai yang disebut theta_t + mu*v_t di koran. Implementasi ini adalah perkiraan rumus asli, berlaku untuk nilai-nilai yang tinggi momentum. Ini akan menghitung "gradien disesuaikan" di NAG dengan mengasumsikan bahwa gradien baru akan diperkirakan dengan gradien rata-rata saat ini ditambah produk dari momentum dan perubahan gradien rata-rata.

metode

apply_gradients

Lihat sumber

Terapkan gradien untuk variabel.

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

args
grads_and_vars Daftar (gradien, variabel) pasang sebagai dikembalikan oleh compute_gradients() .
global_step Opsional Variable untuk kenaikan per satu setelah variabel telah diperbarui.
name nama opsional untuk operasi kembali. Default ke nama diteruskan ke Optimizer konstruktor.

Pengembalian
Sebuah Operation yang menerapkan gradien tertentu. Jika global_step tidak ada, operasi yang juga increment global_step .

kenaikan gaji
TypeError Jika grads_and_vars adalah kelainan bentuk.
ValueError Jika tidak ada variabel memiliki gradien.
RuntimeError Jika Anda harus menggunakan _distributed_apply() sebagai gantinya.

compute_gradients

Lihat sumber

Hitung gradien dari loss untuk variabel-variabel di var_list .

Ini adalah bagian pertama dari minimize() . Ia mengembalikan daftar (gradien, variabel) pasang di mana "gradien" adalah gradien untuk "variabel". Perhatikan bahwa "gradien" bisa menjadi Tensor , sebuah IndexedSlices , atau None jika tidak ada gradien untuk variabel diberikan.

args
loss Sebuah Tensor mengandung nilai untuk meminimalkan atau mengambil callable tanpa argumen yang mengembalikan nilai untuk meminimalkan. Ketika eksekusi ingin diaktifkan itu harus menjadi callable.
var_list Daftar opsional atau tuple dari tf.Variable untuk memperbarui untuk meminimalkan loss . Default ke daftar variabel yang dikumpulkan dalam grafik di bawah kunci GraphKeys.TRAINABLE_VARIABLES .
gate_gradients Cara gerbang perhitungan gradien. Bisa GATE_NONE , GATE_OP , atau GATE_GRAPH .
aggregation_method Menentukan metode yang digunakan untuk menggabungkan istilah gradien. Nilai yang valid didefinisikan di kelas AggregationMethod .
colocate_gradients_with_ops Jika Benar, coba colocating gradien dengan yang sesuai op.
grad_loss Pilihan. Sebuah Tensor memegang gradien dihitung untuk loss .

Pengembalian
Daftar (gradien, variabel) pasang. Variabel selalu hadir, tapi gradien bisa None .

kenaikan gaji
TypeError Jika var_list mengandung apa pun dari Variable obyek.
ValueError Jika beberapa argumen yang tidak valid.
RuntimeError Jika disebut dengan eksekusi bersemangat diaktifkan dan loss tidak callable.

Kompatibilitas bersemangat

Ketika eksekusi bersemangat diaktifkan, gate_gradients , aggregation_method , dan colocate_gradients_with_ops diabaikan.

get_name

Lihat sumber

get_slot

Lihat sumber

Kembali slot bernama name dibuat untuk var oleh Optimizer.

Beberapa Optimizer subclass menggunakan variabel tambahan. Misalnya Momentum dan Adagrad penggunaan variabel untuk update menumpuk. Metode ini memberikan akses ke Variable obyek jika untuk beberapa alasan Anda membutuhkan mereka.

Gunakan get_slot_names() untuk mendapatkan daftar nama slot yang diciptakan oleh Optimizer .

args
var Sebuah variabel dilewatkan ke minimize() atau apply_gradients() .
name Sebuah benang.

Pengembalian
The Variable untuk slot jika dibuat, None sebaliknya.

get_slot_names

Lihat sumber

Kembali daftar nama-nama slot diciptakan oleh Optimizer .

Lihat get_slot() .

Pengembalian
Sebuah daftar string.

minimize

Lihat sumber

Menambahkan operasi untuk meminimalkan loss oleh memperbarui var_list .

Metode ini hanya menggabungkan panggilan compute_gradients() dan apply_gradients() . Jika Anda ingin memproses gradien sebelum menerapkannya panggilan compute_gradients() dan apply_gradients() secara eksplisit daripada menggunakan fungsi ini.

args
loss Sebuah Tensor mengandung nilai untuk meminimalkan.
global_step Opsional Variable untuk kenaikan per satu setelah variabel telah diperbarui.
var_list Daftar opsional atau tuple dari Variable objek untuk memperbarui untuk meminimalkan loss . Default ke daftar variabel yang dikumpulkan dalam grafik di bawah kunci GraphKeys.TRAINABLE_VARIABLES .
gate_gradients Cara gerbang perhitungan gradien. Bisa GATE_NONE , GATE_OP , atau GATE_GRAPH .
aggregation_method Menentukan metode yang digunakan untuk menggabungkan istilah gradien. Nilai yang valid didefinisikan di kelas AggregationMethod .
colocate_gradients_with_ops Jika Benar, coba colocating gradien dengan yang sesuai op.
name nama opsional untuk operasi kembali.
grad_loss Pilihan. Sebuah Tensor memegang gradien dihitung untuk loss .

Pengembalian
Operasi yang update variabel dalam var_list . Jika global_step tidak None , operasi yang juga increment global_step .

kenaikan gaji
ValueError Jika beberapa variabel yang tidak Variable benda.

Kompatibilitas bersemangat

Ketika eksekusi bersemangat diaktifkan, loss harus menjadi fungsi Python yang tidak membutuhkan argumen dan menghitung nilai yang akan diminimalkan. Minimisasi (dan perhitungan gradien) dilakukan sehubungan dengan unsur-unsur var_list jika tidak ada, yang lain sehubungan dengan variabel dilatih dibuat selama pelaksanaan loss fungsi. gate_gradients , aggregation_method , colocate_gradients_with_ops dan grad_loss diabaikan ketika eksekusi bersemangat diaktifkan.

variables

Lihat sumber

Sebuah daftar variabel yang menyandikan keadaan saat Optimizer .

Termasuk variabel Slot dan variabel global tambahan yang diciptakan oleh optimizer dalam grafik default saat ini.

Pengembalian
Sebuah daftar variabel.

Variabel kelas

  • GATE_GRAPH = 2
  • GATE_NONE = 0
  • GATE_OP = 1