|
| std::string | get_type () const final |
| | Get the layer type's name. More...
|
| |
| data_layout | get_data_layout () const final |
| | Get data layout of the data tensors. We assume that the data layouts of the previous activations, activations, previous error signals, and error signals are the same. Each concrete layer that is templated on its data layout should override this function to return its template parameter. More...
|
| |
| El::Device | get_device_allocation () const final |
| | Get the device allocation for the data tensors. We assume that the decice allocation of the previous activations, activations, previous error signals, and error signals are the same. Each concrete layer that is templated on its device allocation should override this function to return its template parameter. More...
|
| |
| bool | can_run_inplace () const override |
| | If True, the computation can run in-place (feeding each input activations tensor as the corresponding output activations) More...
|
| |
| int | get_backprop_requirements () const override |
| | Returns the necessary tensors for computing backpropagation. More...
|
| |
| description | get_description () const final |
| | Human-readable description. More...
|
| |
|
| | PermuteLayer (std::vector< int > const &axes) |
| |
| | PermuteLayer (PermuteLayer const &other) |
| |
| PermuteLayer & | operator= (PermuteLayer const &other) |
| |
| | PermuteLayer (PermuteLayer &&other)=default |
| |
| PermuteLayer & | operator= (PermuteLayer &&other)=default |
| |
| | ~PermuteLayer () |
| |
| PermuteLayer * | copy () const final |
| | Copy function. This function dynamically allocates memory for a layer instance and instantiates a copy. The caller is responsible for deallocating the instance. More...
|
| |
| void | swap (PermuteLayer &other) |
| |
|
| template<typename ArchiveT > |
| void | serialize (ArchiveT &ar) |
| |
| | data_type_layer (lbann_comm *, bool persistent_error_signals=false) |
| |
| virtual | ~data_type_layer ()=default |
| |
| std::string | get_datatype_name () const override |
| |
| void | forward_prop () final |
| |
| void | summarize_matrices (lbann_summary &summarizer, int step) override |
| |
| void | check_setup () override |
| |
| const OutputAbsDistMatrixType & | get_activations (const Layer &child) const override |
| |
| OutputAbsDistMatrixType & | get_activations (int child_index=0) |
| |
| const OutputAbsDistMatrixType & | get_activations (int child_index=0) const |
| |
| const InputAbsDistMatrixType & | get_error_signals (const Layer &parent) const override |
| |
| InputAbsDistMatrixType & | get_error_signals (int parent_index=0) |
| |
| const InputAbsDistMatrixType & | get_error_signals (int parent_index=0) const |
| |
| El::Int | current_output_mini_batch_size () const override |
| |
| El::Int | infer_mini_batch_size_from_parents_or_default_to_current () const override |
| |
| OutputAbsDistMatrixType & | get_temp_grad () |
| |
| InputAbsDistMatrixType & | get_branch_tag_input (int tag) |
| |
| std::vector< std::unique_ptr< InputAbsDistMatrixType > > & | get_branch_tag_input_vector () |
| |
| std::vector< std::unique_ptr< OutputAbsDistMatrixType > > & | get_all_activations () |
| |
| std::vector< std::unique_ptr< InputAbsDistMatrixType > > & | get_all_prev_activations () |
| |
| std::vector< std::unique_ptr< OutputAbsDistMatrixType > > & | get_all_prev_error_signals () |
| |
| std::vector< std::unique_ptr< InputAbsDistMatrixType > > & | get_all_error_signals () |
| |
| OutputAbsMatrixType & | get_local_activations (int child_index=0) |
| |
| const OutputAbsMatrixType & | get_local_activations (int child_index=0) const |
| |
| InputAbsMatrixType & | get_local_error_signals (int parent_index=0) |
| |
| const InputAbsMatrixType & | get_local_error_signals (int parent_index=0) const |
| |
| void | set_keep_error_signals (bool) override |
| | Set whether to keep or dynamically reallocate error signals. More...
|
| |
| El::mpi::Comm & | get_subgrid_comm () |
| |
| void | serialize (ArchiveT &ar) |
| |
| void | write_proto (lbann_data::Layer &proto) const |
| | Write layer to proto file. More...
|
| |
| lbann_comm * | get_comm () const |
| |
| int | get_grid_tag () const noexcept |
| | Identifying tag for process grid. More...
|
| |
| void | set_grid_tag (int tag) |
| | Set process grid. More...
|
| |
| bool | runs_inplace () const |
| | If true, the layer will run in-place (the input and output activations point to the same tensor). Value is set during graph setup (in setup_pointers) based on layer traits and neighboring layers. More...
|
| |
| bool | distconv_enabled () const |
| | Indicate whether distconv is enabled. More...
|
| |
| | Layer () |
| |
| virtual | ~Layer ()=default |
| |
| void | set_name (const std::string name) |
| | Set the layer instance's name. Each layer in a model should have a unique, preferably human-readable, name. More...
|
| |
| void | set_model (model *m) |
| | Set the model that manages this layer. More...
|
| |
| std::string | get_name () const |
| | Get the layer instance's name. More...
|
| |
| model * | get_model () const noexcept |
| | Get a reference to the model that manages this layer. More...
|
| |
| int | get_expected_num_parent_layers () const noexcept |
| | Get expected number of parent layers. A negative value indicates no limit. More...
|
| |
| int | get_expected_num_child_layers () const noexcept |
| | Get expected number of child layers. A negative value indicates no limit. More...
|
| |
| ParallelStrategy & | get_parallel_strategy () noexcept |
| | Get the parallel strategy for the layer. More...
|
| |
| ParallelStrategy const & | get_parallel_strategy () const noexcept |
| | Get the parallel strategy for the layer. More...
|
| |
| bool | using_gpus () const noexcept |
| | Whether the layer is using a GPU implementation. More...
|
| |
| void | back_prop () |
| | Backward propagation step. Given the objective function gradients w.r.t. the output tensors, compute the gradients w.r.t. the input tensors and w.r.t. the weights. This is essentially an application of the chain rule. More...
|
| |
| bool | update () |
| | Update step. Update the layer's internal members. Note that the optimization step for the weights happens elsewhere. More...
|
| |
| virtual void | setup (size_t max_mini_batch_size, const std::vector< El::Grid *> &grids) |
| | Setup layer members. More...
|
| |
| void | summarize_stats (lbann_summary &summarizer, int step) |
| |
| void | reset_counters () |
| | Reset layer stat counters. More...
|
| |
| void | set_communication_flag (SubGraphCommunication type) |
| |
| SubGraphCommunication | get_communication_flag () |
| |
| void | set_num_spliting_groups (El::Int spliting_groups) |
| |
| El::Int | get_num_spliting_groups () const |
| |
| std::shared_ptr< El::Grid > | get_mygrid () const |
| |
| void | reset_inter_subgrid_vc_comm (std::shared_ptr< El::mpi::Comm > mpi_comm) |
| |
| void | set_subgraph_parallelism_execution () |
| |
| bool | subgraph_parallelism_execution () const noexcept |
| |
| void | set_run_layer_in_subgraph () |
| |
| bool | get_run_layer_in_subgraph () const noexcept |
| |
| const Layer & | get_parent_layer (size_t index=0) const |
| |
| const Layer & | get_child_layer (size_t index=0) const |
| |
| std::vector< const Layer * > | get_parent_layers () const |
| |
| std::vector< const Layer * > | get_child_layers () const |
| |
| size_t | find_parent_layer_index (const Layer &l) const |
| |
| size_t | find_child_layer_index (const Layer &l) const |
| |
| int | get_num_parents () const noexcept |
| | Get number of parent layers. More...
|
| |
| int | get_num_children () const noexcept |
| | Get number of child layers. More...
|
| |
| void | add_parent_layer (ViewingLayerPtr parent) |
| | Add a parent layer. More...
|
| |
| void | add_child_layer (ViewingLayerPtr child) |
| | Add a child layer. More...
|
| |
| void | replace_parent_layer (ViewingLayerPtr l, size_t index) |
| |
| void | replace_child_layer (ViewingLayerPtr l, size_t index) |
| |
| void | clear_parent_layers () |
| | Remove pointers to parent layers. More...
|
| |
| void | clear_child_layers () |
| | Remove pointers to child layers. More...
|
| |
| ViewingLayerPtr | get_parent_layer_pointer (size_t index) const |
| |
| ViewingLayerPtr | get_child_layer_pointer (size_t index) const |
| |
| virtual std::vector< ViewingLayerPtr > | get_layer_pointers () |
| | List of pointers to other layers. More...
|
| |
| virtual void | set_layer_pointers (std::vector< ViewingLayerPtr > layers) |
| | Set list of pointers to other layers. More...
|
| |
| std::vector< ViewingWeightsPtr > | get_weights_pointers () const |
| | List of pointers to weights. More...
|
| |
| void | set_weights_pointers (std::vector< ViewingWeightsPtr > ptrs) |
| | Set list of pointers to weights. More...
|
| |
| void | replace_weights (Layer const &other_layer) |
| | Replace weights with another Layer's weights. More...
|
| |
| std::vector< int > | get_input_dims (size_t input_index=0) const |
| | Get input tensor dimensions. More...
|
| |
| int | get_input_size (size_t input_index=0) const |
| | Get input tensor size. More...
|
| |
| std::vector< int > | get_output_dims (size_t output_index=0) const |
| | Get output tensor dimensions. More...
|
| |
| int | get_output_size (size_t output_index=0) const |
| | Get output tensor size. More...
|
| |
| void | set_output_dims (std::vector< int > dims, size_t output_index=0) |
| | Set output tensor dimensions. More...
|
| |
| El::Int | infer_mini_batch_size_from_parents () const |
| |
| void | set_hint_layer (ViewingLayerPtr l) |
| | Set hint layer. More...
|
| |
| const Layer * | get_hint_layer () const |
| | Get hint layer. More...
|
| |
| void | freeze () |
| |
| void | unfreeze () |
| |
| bool | is_frozen () const |
| |
| template<typename ArchiveT > |
| void | serialize (ArchiveT &ar) |
| |
template<typename T>
class lbann::PermuteLayer< T >
Permute the indices of a tensor.
Expects one input tensor of order N, and a length N array of permuted indices [0..N-1], with respect to the input tensor dimensions. (Therefore, passing axes=[0,1,2] for a rank-3 tensor is just a (deep) copy.)
At this time, only simple "tensor transpose" is supported. Each index must be accounted for in the permuted array.
The current implementation of this layer is written for CUDA. Other implementations will be added as needed.
Definition at line 49 of file permute.hpp.