Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.keras.optimizers.SGD

TensorFlow 1 versi Lihat sumber di GitHub

gradient descent (dengan momentum) optimizer.

Mewarisi Dari: Optimizer

Digunakan di notebook

Digunakan dalam panduan Digunakan dalam tutorial

Aturan update untuk parameter w dengan gradien g ketika momentum adalah 0:

 w = w - learning_rate * g
 

Memperbarui aturan ketika momentum lebih besar dari 0:

 velocity = momentum * velocity - learning_rate * g
w = w * velocity
 

Ketika nesterov=False , aturan ini menjadi:

 velocity = momentum * velocity - learning_rate * g
w = w + momentum * velocity - learning_rate * g
 

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. Defaultnya 0,01.
momentum mengapung hyperparameter> = 0 yang mempercepat keturunan gradien dalam arah dan meredam osilasi yang relevan. Default ke 0, yaitu, vanili gradien keturunan.
nesterov boolean. Apakah untuk menerapkan Nesterov momentum. Default untuk False .
name Opsional nama awalan untuk operasi dibuat ketika menerapkan gradien. Defaultnya "SGD" .
**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.

Pemakaian:

opt = tf.keras.optimizers.SGD(learning_rate=0.1)
var = tf.Variable(1.0)
loss = lambda: (var ** 2)/2.0         # d(loss)/d(var1) = var1
step_count = opt.minimize(loss, [var]).numpy()
# Step is `- learning_rate * grad`
var.numpy()
0.9
opt = tf.keras.optimizers.SGD(learning_rate=0.1, momentum=0.9)
var = tf.Variable(1.0)
val0 = var.value()
loss = lambda: (var ** 2)/2.0         # d(loss)/d(var1) = var1
# First step is `- learning_rate * grad`
step_count = opt.minimize(loss, [var]).numpy()
val1 = var.value()
(val0 - val1).numpy()
0.1
# On later steps, step-size increases because of momentum
step_count = opt.minimize(loss, [var]).numpy()
val2 = var.value()
(val1 - val2).numpy()
0.18

Referensi:

name Sebuah string yang tidak kosong. Nama digunakan untuk akumulator diciptakan untuk optimizer.
**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.

ValueError Jika namanya kelainan bentuk.

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 s