@@ -218,7 +218,7 @@ def __impl__(self, other_var):
218218 return __impl__
219219
220220 # Todo(zhouwei): implement dygraph template to adapt to any function, receive('op_type', 'arg_template')
221- # Such as _method_creator_('addmm', 'x, y, alpha=1.0, beta=1.0, name=None')
221+ # Such as _method_creator_('addmm', 'x, y, alpha=1.0, beta=1.0, name=None'). It can reduce call time.
222222 def _method_creator_ (op_type , arg_template = None ):
223223 def __impl__ (self ):
224224 op = getattr (core .ops , op_type )
@@ -246,36 +246,22 @@ def __impl__(self):
246246 ('ndim' , _ndim_ ),
247247 ('size' , lambda x : x .shape ),
248248 # Type2: From Template that create core.ops automatically. It's recommended.
249- ('__add__' ,
250- _binary_creator_ ('__add__' , 'elementwise_add' , False , _scalar_add_ )),
249+ ('__add__' , _binary_creator_ ('__add__' , 'elementwise_add' , False , _scalar_add_ )),
251250 ## a+b == b+a. Do not need to reverse explicitly
252- ('__radd__' ,
253- _binary_creator_ ('__radd__' , 'elementwise_add' , False , _scalar_add_ )),
254- ('__sub__' , _binary_creator_ ('__sub__' , 'elementwise_sub' , False ,
255- _scalar_sub_ )),
256- ('__rsub__' , _binary_creator_ ('__rsub__' , 'elementwise_sub' , True ,
257- _scalar_rsub_ )),
258- ('__mul__' ,
259- _binary_creator_ ('__mul__' , 'elementwise_mul' , False , _scalar_mul_ )),
251+ ('__radd__' , _binary_creator_ ('__radd__' , 'elementwise_add' , False , _scalar_add_ )),
252+ ('__sub__' , _binary_creator_ ('__sub__' , 'elementwise_sub' , False , _scalar_sub_ )),
253+ ('__rsub__' , _binary_creator_ ('__rsub__' , 'elementwise_sub' , True , _scalar_rsub_ )),
254+ ('__mul__' , _binary_creator_ ('__mul__' , 'elementwise_mul' , False , _scalar_mul_ )),
260255 ## a*b == b*a. Do not need to reverse explicitly
261- ('__rmul__' ,
262- _binary_creator_ ('__rmul__' , 'elementwise_mul' , False , _scalar_mul_ )),
263- ('__div__' , _binary_creator_ ('__div__' , 'elementwise_div' , False ,
264- _scalar_div_ )),
265- ('__truediv__' , _binary_creator_ ('__truediv__' , 'elementwise_div' ,
266- False , _scalar_div_ )),
267- ('__rdiv__' , _binary_creator_ ('__rdiv__' , 'elementwise_div' , True ,
268- None )),
269- ('__rtruediv__' , _binary_creator_ ('rtruediv__' , 'elementwise_div' , True ,
270- None )),
271- ('__pow__' , _binary_creator_ ('__pow__' , 'elementwise_pow' , False ,
272- None )),
273- ('__rpow__' , _binary_creator_ ('__rpow__' , 'elementwise_pow' , True ,
274- None )),
275- ('__floordiv__' , _binary_creator_ ('__floordiv__' ,
276- 'elementwise_floordiv' , False , None )),
277- ('__mod__' , _binary_creator_ ('__mod__' , 'elementwise_mod' , False ,
278- None )),
256+ ('__rmul__' , _binary_creator_ ('__rmul__' , 'elementwise_mul' , False , _scalar_mul_ )),
257+ ('__div__' , _binary_creator_ ('__div__' , 'elementwise_div' , False , _scalar_div_ )),
258+ ('__truediv__' , _binary_creator_ ('__truediv__' , 'elementwise_div' , False , _scalar_div_ )),
259+ ('__rdiv__' , _binary_creator_ ('__rdiv__' , 'elementwise_div' , True , None )),
260+ ('__rtruediv__' , _binary_creator_ ('rtruediv__' , 'elementwise_div' , True , None )),
261+ ('__pow__' , _binary_creator_ ('__pow__' , 'elementwise_pow' , False , None )),
262+ ('__rpow__' , _binary_creator_ ('__rpow__' , 'elementwise_pow' , True , None )),
263+ ('__floordiv__' , _binary_creator_ ('__floordiv__' , 'elementwise_floordiv' , False , None )),
264+ ('__mod__' , _binary_creator_ ('__mod__' , 'elementwise_mod' , False , None )),
279265 ## for logical compare
280266 ('__eq__' , _binary_creator_ ('__eq__' , 'equal' , False , None )),
281267 ('__ne__' , _binary_creator_ ('__ne__' , 'not_equal' , False , None )),
0 commit comments