Trong hướng dẫn lưu lượng, tôi thấy cả hai mã như tf.add(tf.matmul(X, W), b)
và tf.matmul(X, W) + b
, sự khác biệt giữa việc sử dụng hàm toán học tf.add()
, tf.assign()
, v.v ... và các toán tử +
và =
, v.v.Trong tensorflow sự khác nhau giữa tf.add và operator (+) là gì?
Trả lời
Không có sự khác biệt về độ chính xác giữa a+b
và tf.add(a, b)
. Các cựu dịch để a.__add__(b)
mà được ánh xạ tới tf.add
bằng following line trong math_ops.py
_OverrideBinaryOperatorHelper(gen_math_ops.add, "add")
Sự khác biệt duy nhất là tên nút trong đồ thị cơ bản là add
thay vì Add
. Bạn thường có thể so sánh những thứ bằng cách nhìn vào biểu đồ cơ bản như thế này
tf.reset_default_graph()
dtype = tf.int32
a = tf.placeholder(dtype)
b = tf.placeholder(dtype)
c = a+b
print(tf.get_default_graph().as_graph_def())
Bạn cũng có thể thấy điều này trực tiếp bằng cách kiểm tra các phương pháp __add__
. Có một cấp thêm về mình bởi vì đó là một kết thúc, nhưng bạn có thể nhận được các chức năng cơ bản như sau
real_function = tf.Tensor.__add__.im_func.func_closure[0].cell_contents
print(real_function.__module__ + "." + real_function.__name__)
print(tf.add.__module__ + "." + tf.add.__name__)
Và bạn sẽ thấy đầu ra dưới đây có nghĩa là họ gọi chức năng cơ bản giống nhau
tensorflow.python.ops.gen_math_ops.add
tensorflow.python.ops.gen_math_ops.add
Bạn có thể nhìn thấy từ tf.Tensor.OVERLOADABLE_OPERATORS
rằng sau Python phương pháp đặc biệt có khả năng bị quá tải bởi các phiên bản TensorFlow thích hợp
{'__abs__',
'__add__',
'__and__',
'__div__',
'__floordiv__',
'__ge__',
'__getitem__',
'__gt__',
'__invert__',
'__le__',
'__lt__',
'__mod__',
'__mul__',
'__neg__',
'__or__',
'__pow__',
'__radd__',
'__rand__',
'__rdiv__',
'__rfloordiv__',
'__rmod__',
'__rmul__',
'__ror__',
'__rpow__',
'__rsub__',
'__rtruediv__',
'__rxor__',
'__sub__',
'__truediv__',
'__xor__'}
Những metho ds được mô tả trong Python reference 3.3.7: mô phỏng các loại số. Lưu ý rằng mô hình dữ liệu Python không cung cấp cách để quá tải toán tử gán =
do đó việc gán luôn sử dụng việc triển khai Python gốc.
- 1. TensorFlow: sự khác nhau giữa sparse_softmax_cross_entropy_with_logits và softmax_cross_entropy_with_logits là gì?
- 2. Sự khác biệt giữa tf.sub và hoạt động chỉ trừ trong tensorflow là gì?
- 3. Sự khác nhau giữa Keras và tf.contrib.keras trong TensorFlow 1.1+ là gì?
- 4. Sự khác nhau giữa Tensor và Biến số trong Tensorflow
- 5. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 6. Sự khác nhau giữa == và = trong Prolog là gì?
- 7. Sự khác nhau giữa // và /// trong Visual Studio là gì?
- 8. Sự khác nhau giữa: = và + = trong tạo tệp là gì?
- 9. Sự khác nhau giữa * và. * Trong MATLAB là gì?
- 10. Sự khác nhau giữa $ @ và $ * trong UNIX là gì?
- 11. Sự khác nhau giữa% và vw trong css là gì?
- 12. Sự khác nhau giữa: = và = trong MySQL là gì?
- 13. Sự khác nhau giữa "||" là gì và "hoặc" trong Perl?
- 14. Sự khác nhau giữa 'eq' và '= ~' trong Perl là gì?
- 15. Sự khác nhau giữa 'và #' trong Lisp là gì?
- 16. Sự khác nhau giữa StudlyCaps và CamelCase là gì?
- 17. Sự khác nhau giữa khối NSAutoreleasePool và @autoreleasepool là gì?
- 18. Sự khác nhau giữa VCS và SCM là gì?
- 19. sự khác nhau giữa e.keyCode và e.which là gì?
- 20. Sự khác nhau giữa ssize_t và ptrdiff_t là gì?
- 21. Sự khác nhau giữa java.lang.Math và java.lang.StrictMath là gì?
- 22. Sự khác nhau giữa spark.sql.shuffle.partitions và spark.default.allelism là gì?
- 23. Sự khác nhau giữa static_cast và reinterpret_cast là gì?
- 24. Sự khác nhau giữa init() và window.init() là gì?
- 25. Sự khác nhau giữa fancyLocalization và preferredLanguage là gì?
- 26. Sự khác nhau giữa CreateObject và Wscript.CreateObject là gì?
- 27. Sự khác nhau giữa keras model.save() và model.save_weights() là gì?
- 28. Sự khác nhau giữa CellClick và CellMouseClick là gì?
- 29. Sự khác nhau giữa -0 và 0 là gì?
- 30. Sự khác nhau giữa TCHAR và WCHAR là gì?
Vậy tại sao các phương pháp tensorflow này được xác định? – Hossein