W tensorflow tutoriale, widzę oba kody jak tf.add(tf.matmul(X, W), b)
i tf.matmul(X, W) + b
, jaka jest różnica między pomocą funkcji matematycznej, tf.assign()
tf.add()
, etc i operatorów +
i =
, itp, precyzji lub innych aspektach?W tensorflow jaka jest różnica między tf.add a operatorem (+)?
Odpowiedz
Nie ma różnicy w precyzji między a+b
a tf.add(a, b)
. Były przekłada się a.__add__(b)
który zostanie odwzorowany na tf.add
za pomocą following line w math_ops.py
_OverrideBinaryOperatorHelper(gen_math_ops.add, "add")
Jedyną różnicą jest to, że nazwa węzła w leżącej wykres jest add
zamiast Add
. Można ogólnie porównać rzeczy patrząc na podstawowej reprezentacji Graph jak ten
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())
Można także zobaczyć bezpośrednio poprzez kontrolę sposobu __add__
. Jest dodatkowy poziom pośredni, ponieważ jest to zamknięcie, ale można dostać się funkcję podstawową następująco
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__)
I zobaczysz wyjście poniżej, co oznacza, że nazywają sama funkcja bazowy
tensorflow.python.ops.gen_math_ops.add
tensorflow.python.ops.gen_math_ops.add
You można zobaczyć z tf.Tensor.OVERLOADABLE_OPERATORS
że Python następujące metody specjalne są potencjalnie przeciążony odpowiednich wersjach TensorFlow
{'__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__'}
Ci meto ds zostały opisane w Python reference 3.3.7: emulacja typów liczbowych. Zauważ, że model danych Pythona nie zapewnia możliwości przeciążenia operatora przypisania =
, więc przydział zawsze używa natywnej implementacji Pythona.
- 1. jaka jest różnica między operatorem kropki a operatorem rozdzielczości zakresu
- 2. Jaka jest różnica między isEqualToString a operatorem == w Objective C?
- 3. Jaka jest różnica między operatorem * i operatorem w programie c?
- 4. Jaka jest różnica między operatorem zwarć Perla (lub, i) a (||, &&)?
- 5. Jaka jest różnica między tf.estimator.Estimator a tf.contrib.learn.Estimator w TensorFlow
- 6. Różnica między operatorem globalnym a operatorem członkowskim
- 7. Jaka jest różnica między jawnym obciążeniem/magazynem a zwykłym operatorem = a operatorem T?
- 8. Jaka jest różnica między operacją tf.sub just minus w tensorflow?
- 9. Różnica między zmiennym_sklepem a nazwanym_skresem w TensorFlow
- 10. Jaka jest różnica między operatorem "=" i "==" w Bash?
- 11. Jaka jest różnica między == a === w Verilog?
- 12. Jaka jest różnica między operatorem Java equals() i C++ ==?
- 13. Jaka jest różnica między Tensor i Variable w Tensorflow
- 14. Jaka jest różnica między $ a a $$ a w php?
- 15. Jaka jest różnica między operatorem "+" w ggplot2 i operatorem "%>%" w magrittr?
- 16. Jaka jest różnica między Ember.computed.alias a Ember.binding?
- 17. Jaka jest różnica między pakietem a intencją?
- 18. Jaka jest różnica między krotką a kompresją?
- 19. Jaka jest różnica między uchwytem a wątkiem?
- 20. Jaka jest różnica między cancelBubble a stopPropagation?
- 21. Jaka jest różnica między HAVING a WHERE?
- 22. Jaka jest różnica między użytkownikiem a rolą?
- 23. Jaka jest różnica między StudlyCaps a CamelCase?
- 24. Jaka jest różnica między Const a Constant?
- 25. Jaka jest różnica między @Inject a @PersistenceContext?
- 26. Jaka jest różnica między preferredLocalization a preferredLanguage?
- 27. Jaka jest różnica między JavaBean a POJO?
- 28. Jaka jest różnica między podprocesiem.popen a podprocesią.run?
- 29. Jaka jest różnica między funkcjami a zamknięciami?
- 30. Jaka jest różnica między ramką a ramką?
Dlaczego więc te metody tensorflow są w ogóle zdefiniowane? – Hossein