[ https://issues.apache.org/jira/browse/SINGA-478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16903750#comment-16903750 ]
ASF subversion and git services commented on SINGA-478: ------------------------------------------------------- Commit 6d1f90e0d2d6f4cfa5efbb858e71e8249d67cb1f in incubator-singa's branch refs/heads/master from Wei Wang [ https://gitbox.apache.org/repos/asf?p=incubator-singa.git;h=6d1f90e ] Merge pull request #500 from chrishkchris/SINGA-478 SINGA-478 (Python 3 uses __itruediv__ instead of __idiv__) > Python 3 uses __itruediv__ instead of __idiv__ > ---------------------------------------------- > > Key: SINGA-478 > URL: https://issues.apache.org/jira/browse/SINGA-478 > Project: Singa > Issue Type: Improvement > Components: Core > Reporter: YEUNG SAI HO > Priority: Major > Time Spent: 1h 20m > Remaining Estimate: 0h > > We need to add __itruediv__ in tensor.py because the original __idiv__ is > not supported by python 3 anymore. > > To understand the problem, let's study the following code first: > {code:java} > from singa import tensor > from singa import device > import numpy as np > Y = np.ones(shape=[10],dtype=np.float32) * 10.0 > y = tensor.from_numpy(Y) > y.to_device(device.get_default_device()) > def divide(y): > y /= 10 > divide(y) > print(tensor.to_numpy(y)) > {code} > Without adding the {color:#333333}__itruediv__{color} function, the result > is as follows, which means that the /= operation is not in place: > {code:java} > [10. 10. 10. 10. 10. 10. 10. 10. 10. 10.] > {code} > After adding the __itruediv__ function, the result is as follows, which means > that the /= operation is in place: > {code:java} > [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.] > {code} > This is because the {color:#333333}__idiv__ operation is for python 2, while > __itruediv__ is for python 3. Therefore, if we do not add the __itruediv__ > operator in tensor.py, it just uses a default operation which is not in > place.{color} > > -- This message was sent by Atlassian JIRA (v7.6.14#76016)