XJDKC commented on pull request #697: URL: https://github.com/apache/singa/pull/697#issuecomment-637290809
> > > > Summary: > > > > ``` > > > > * set hx.creator and cx.creator to None. (Still can't use the graph to train correctly but can be executed normally) > > > > > > > > * create ReLU layer instance > > > > ``` > > > > > > > > > update conv and linear layers to include an argument for `activation` > > > > ``` > > > > * create Loss layer instance > > > > > > > > * remove set_attribute function, just copy the initial value from tensor directly. Raise warning in __setattr__ when the types do not match > > > > ``` > > > > > > > > > Shall we totally disable reassignment, like self.W=..., because it may affect the graph as it replace the tensor W with another tensor? > > > > ``` > > > > * remove on_device function, get device info from input tensors > > > > ``` > > > > > > But I'm not sure where the reassignment is used in the whole project. Maybe it's used in many places. I think reassignment is still very common. > > I see. > Will reassignment have any side effect to the computational graph? Reassignment will not be buffered in the graph. If we want to update a tensor in the graph, we may need to copy(will create an operator) the new value to the original tensor. Just like we use Axpy to update parameters. Another strategy is to swap pointers of the two blocks. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
