Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.case

TensorFlow 1 versi Lihat sumber di GitHub

Buat operasi kasus.

Lihat juga tf.switch_case .

The pred_fn_pairs parameter adalah daftar pasang ukuran N. Setiap pasangan berisi tensor skalar boolean dan callable python yang menciptakan tensor dikembalikan jika mengevaluasi boolean ke True. default adalah callable menghasilkan daftar tensor. Semua callables di pred_fn_pairs serta default (jika disediakan) harus kembali nomor yang sama dan jenis tensor.

Jika exclusive==True , semua predikat dievaluasi, dan eksepsi dilemparkan jika lebih dari satu predikat mengevaluasi ke True . Jika exclusive==False , eksekusi berhenti di predikat pertama yang mengevaluasi untuk Benar, dan tensor yang dihasilkan oleh fungsi yang sesuai dikembalikan segera. Jika tidak ada predikat mengevaluasi True, operasi ini mengembalikan tensor yang dihasilkan oleh default .

tf.case mendukung bersarang struktur seperti yang diterapkan dalam tf.contrib.framework.nest . Semua callables harus kembali (mungkin bersarang) struktur nilai yang sama dari daftar, tupel, dan / atau bernama tupel. daftar tunggal dan tupel membentuk satu-satunya pengecualian untuk ini: ketika kembali oleh callable, mereka secara implisit membongkar nilai-nilai tunggal. Perilaku ini dinonaktifkan dengan melewati strict=True .

Contoh 1:

pseudocode:

 if (x < y) return 17;
else return 23;
 

ekspresi:

 f1 = lambda: tf.constant(17)
f2 = lambda: tf.constant(23)
r = tf.case([(tf.less(x, y), f1)], default=f2)
 

Contoh 2:

pseudocode:

 if (x < y && x > z) raise OpError("Only one predicate may evaluate to True");
if (x < y) return 17;
else if (x > z) return 23;
else return -1;
 

ekspresi:

 def f1(): return tf.constant(17)
def f2(): return tf.constant(23)
def f3(): return tf.constant(-1)
r = tf.case([(tf.less(x, y), f1), (tf.greater(x, z), f2)],
         default=f3, exclusive=True)
 

pred_fn_pairs Daftar pasang dari tensor skalar boolean dan callable yang mengembalikan daftar tensor.
default callable opsional yang mengembalikan daftar tensor.
exclusive Benar IFF paling banyak satu predikat diperbolehkan untuk mengevaluasi untuk True .
strict Sebuah boolean yang memungkinkan 'ketat' mode / menonaktifkan; Lihat di atas.
name Sebuah nama untuk operasi ini (opsional).

The tensor dikembalikan oleh pasangan pertama yang predikatnya dievaluasi untuk Benar, atau mereka dikembalikan oleh default jika tidak tidak.

TypeError Jika pred_fn_pairs bukan daftar / tupel.
TypeError Jika pred_fn_pairs adalah daftar tetapi tidak mengandung 2-tupel.
TypeError Jika fns[i] tidak callable untuk setiap i, atau default tidak callable.

V2 Kompatibilitas

pred_fn_pairs bisa menjadi kamus di v1. Namun, tf.Tensor dan tf.Variable tidak lagi hashable di v2, sehingga tidak dapat digunakan sebagai kunci untuk kamus. Harap menggunakan daftar atau tupel sebagai gantinya.