SigmoidCrossEntropyWithLogits

lớp công khai SigmoidCrossEntropyWithLogits

Nhà xây dựng công cộng

Phương pháp công khai

tĩnh <T mở rộng TNumber > Toán hạng <T>
sigmoidCrossEntropyWithLogits ( Phạm vi phạm vi, nhãn Toán hạng <T>, nhật ký Toán hạng <T>)
Tính toán entropy chéo sigmoid cho logits đã cho.

Phương pháp kế thừa

Nhà xây dựng công cộng

SigmoidCrossEntropyWithLogits công khai ()

Phương pháp công khai

public static Operand <T> sigmoidCrossEntropyWithLogits ( Phạm vi phạm vi, nhãn Toán hạng <T>, nhật ký Toán hạng <T>)

Tính toán entropy chéo sigmoid cho logits đã cho.

Đo lường sai số xác suất trong các nhiệm vụ phân loại riêng biệt trong đó mỗi lớp độc lập và không loại trừ lẫn nhau. Ví dụ: người ta có thể thực hiện phân loại nhiều nhãn trong đó một bức ảnh có thể chứa cả con voi và con chó cùng một lúc.

Để ngắn gọn, hãy đặt x = logits , z = labels . Tổn thất logistic trong mã giả là

 z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
  = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
  = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
  = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
  = (1 - z) * x + log(1 + exp(-x))
  = x - x * z + log(1 + exp(-x))
 

Đối với x < 0 , để tránh tràn exp(-x) , chúng tôi định dạng lại

 x - x * z + log(1 + exp(-x))
  = log(exp(x)) - x * z + log(1 + exp(-x))
  = - x * z + log(1 + exp(x))
 
ở trên

Do đó, để đảm bảo sự ổn định và tránh tràn, việc triển khai sử dụng công thức tương đương

   max(x, 0) - x * z + log(1 + exp(-abs(x)))
 

nhật ký và labels phải có cùng loại và hình dạng.

Thông số
phạm vi Phạm vi TensorFlow
nhãn nhãn
nhật ký nhật ký kiểu float32 hoặc float64
Trả lại
  • tổn thất logistic theo thành phần.
Ném
Ngoại lệ Đối số bất hợp pháp nếu nhật ký' và nhãn' không có hình dạng giống nhau