2016-01-29 23 views
18

sự khác biệt giữaTensorFlow điều hành quá tải

tf.add(x, y) 

x + y 

trong TensorFlow là gì? Điều gì sẽ khác trong biểu đồ tính toán của bạn khi bạn xây dựng biểu đồ với + thay vì tf.add()?

Thông thường hơn, là + hoặc các hoạt động khác bị quá tải cho tensors?

Trả lời

40

Nếu ít nhất một trong x hoặc y là một đối tượng tf.Tensor, các từ ngữ tf.add(x, y)x + y là tương đương. Lý do chính bạn có thể sử dụng tf.add() là chỉ định một đối số từ khóa name rõ ràng cho op được tạo, điều này là không thể với phiên bản toán tử quá tải.

Lưu ý rằng nếu không x cũng không y là một tf.Tensor — ví dụ nếu họ là mảng NumPy — sau đó x + y sẽ không tạo ra một op TensorFlow. tf.add() luôn tạo một biến TensorFlow và chuyển đổi các đối số của nó thành các đối tượng tf.Tensor. Do đó, nếu bạn đang viết một hàm thư viện có thể chấp nhận cả mảng tensors và NumPy, bạn có thể thích sử dụng tf.add().

Các nhà khai thác sau quá tải trong API TensorFlow Python:

  • __neg__ (unary -)
  • __abs__ (abs())
  • __invert__ (unary ~)
  • __add__ (nhị phân +)
  • __sub__ (nhị phân -)
  • __mul__ (nhị phân elementwise *)
  • __div__ (nhị phân / bằng Python 2)
  • __floordiv__ (nhị phân // bằng Python 3)
  • __truediv__ (nhị phân / bằng Python 3)
  • __mod__ (nhị phân %)
  • __pow__ (nhị phân **)
  • __and__ (nhị phân &)
  • __or__ (nhị phân |)
  • __xor__ (nhị phân ^)
  • __lt__ (nhị phân <)
  • __le__ (nhị phân <=)
  • __gt__ (nhị phân >)
  • __ge__ (số nhị phân >=)
+0

nếu chúng ta muốn điều khiển '==' trên so sánh vô hướng tensar thì sao? –

Các vấn đề liên quan