#### signed-off-by check result #### * ../report/0001-Graph-change-of-inplace-type-setting-method.patch ============== commit body: start ===================== [DEBUG] [DEBUG] The method of setting the inplace-type has been redefined. [DEBUG] [DEBUG] The reason why inplace processing becomes complicated is that since a multi-out layer shares output variables, so it needs to be considered whether or not inplace can be performed. [DEBUG] [DEBUG] To simplify the problem, the layers that can perform inplace even after the multi-out layer are only no-operation layers(no-op layers). These no-op layers include identity, reshape, and flatten layers. [DEBUG] [DEBUG] For other layers, even if they support inplace, they cannot perform inplace when there is a multi-out layer in front of them. [DEBUG] [DEBUG] Note that because no-op layers connected with multi-out layer share memory with the multi-out layer, so they have the same properties as the multi-out layer. This is expressed as RESTRICTING in our script. [DEBUG] [DEBUG] Based on these definitions, I've redesigned the method of setting inplace type. [DEBUG] [DEBUG] 1. By default, initialize the inplace type for each layer. If supportInPlace is true, it will be initialized as NON_RESTRICTING; otherwise, it will be initialized as NONE. [DEBUG] 2. However, not all layers are initialized like this. For multi-out layers or no-op layers, if supportInPlace is true, they will be initialized as RESTRICTING types(However, the no-op layer will be changed to a non-restricting type if that is not connected with the multi-out layer). [DEBUG] 3. After initialization, confirm the input connections from the network_graph.cpp to determine the final inplace type. It's clearer to see the source code for this part. [DEBUG] [DEBUG] **Self evaluation:** [DEBUG] 1. Build test: [X]Passed [ ]Failed [ ]Skipped [DEBUG] 2. Run test: [X]Passed [ ]Failed [ ]Skipped [DEBUG] [DEBUG] Signed-off-by: Seungbaek Hong ============== commit body: end =====================