BlackCat_Tensors
A GPU-supported autograd and linear algebra library, designed for neural network construction
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator > Struct Template Referenceabstract

#include <polymorphic_layer_base.h>

Collaboration diagram for bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >:
Collaboration graph
[legend]

Public Types

using allocator_type = Allocator
 
using value_type = ValueType
 
using system_tag = SystemTag
 
using input_tensor_dimension = Dimension
 
using batched_input_tensor_dimension = bc::traits::Integer< Dimension::value+1 >
 
using output_tensor_dimension = OutputDimension
 
using batched_output_tensor_dimension = bc::traits::Integer< OutputDimension::value+1 >
 
using output_value_type = OutputValueType
 
using output_system_tag = OutputSystemTag
 
using output_allocator_type = OutputAllocator
 
using next_layer_type = Polymorphic_Layer_Base< output_tensor_dimension, output_value_type, output_system_tag >
 
using this_layer_type = Polymorphic_Layer_Base< input_tensor_dimension, value_type, system_tag >
 
using input_tensor_type = bc::Tensor< input_tensor_dimension::value, value_type, allocator_type >
 
using output_tensor_type = bc::Tensor< output_tensor_dimension::value, value_type, output_allocator_type >
 
using batched_input_tensor_type = bc::Tensor< input_tensor_dimension::value+1, value_type, allocator_type >
 
using batched_output_tensor_type = bc::Tensor< output_tensor_dimension::value+1, value_type, output_allocator_type >
 
using this_layer_pointer_type = std::shared_ptr< this_layer_type >
 
using next_layer_pointer_type = std::shared_ptr< next_layer_type >
 
using input_shape_type = bc::Dim< input_tensor_dimension::value >
 
using output_shape_type = bc::Dim< output_tensor_dimension::value >
 
using allocator_type = Allocator
 
using value_type = ValueType
 
using system_tag = SystemTag
 
using input_tensor_dimension = Dimension
 
using batched_input_tensor_dimension = bc::traits::Integer< Dimension::value+1 >
 
using output_tensor_dimension = OutputDimension
 
using batched_output_tensor_dimension = bc::traits::Integer< OutputDimension::value+1 >
 
using output_value_type = OutputValueType
 
using output_system_tag = OutputSystemTag
 
using output_allocator_type = OutputAllocator
 
using next_layer_type = Polymorphic_Layer_Base< output_tensor_dimension, output_value_type, output_system_tag >
 
using this_layer_type = Polymorphic_Layer_Base< input_tensor_dimension, value_type, system_tag >
 
using input_tensor_type = bc::Tensor< input_tensor_dimension::value, value_type, allocator_type >
 
using output_tensor_type = bc::Tensor< output_tensor_dimension::value, value_type, output_allocator_type >
 
using batched_input_tensor_type = bc::Tensor< input_tensor_dimension::value+1, value_type, allocator_type >
 
using batched_output_tensor_type = bc::Tensor< output_tensor_dimension::value+1, value_type, output_allocator_type >
 
using this_layer_pointer_type = std::shared_ptr< this_layer_type >
 
using next_layer_pointer_type = std::shared_ptr< next_layer_type >
 
using input_shape_type = bc::Dim< input_tensor_dimension::value >
 
using output_shape_type = bc::Dim< output_tensor_dimension::value >
 

Public Member Functions

 Polymorphic_Layer_Base (std::string classname)
 
virtual ~Polymorphic_Layer_Base ()=default
 
template<int ADL = 0>
std::string get_string_architecture () const
 
virtual batched_output_tensor_type forward_propagation (const batched_input_tensor_type &inputs)=0
 
virtual batched_input_tensor_type back_propagation (const batched_output_tensor_type &delta)=0
 
batched_output_tensor_type fp (const batched_input_tensor_type &inputs)
 
batched_input_tensor_type bp (const batched_output_tensor_type &delta)
 
virtual void update_weights ()
 
virtual void init ()=0
 
void set_batch_size (int bs)
 
void set_learning_rate (double lr)
 
std::shared_ptr< this_layer_typeprev ()
 
std::shared_ptr< this_layer_typeprev () const
 
std::shared_ptr< next_layer_typenext ()
 
std::shared_ptr< next_layer_typenext () const
 
void set_prev (this_layer_pointer_type prev_layer)
 
void set_next (next_layer_pointer_type next_layer)
 
auto batch_size () const
 
auto learning_rate () const
 
auto batched_learning_rate () const
 
auto input_shape () const
 
auto output_shape () const
 
auto batched_input_shape () const
 
auto batched_output_shape () const
 
std::string classname () const
 
virtual void save (Layer_Loader &) const =0
 
virtual void save_from_cache (Layer_Loader &, Cache &) const
 
virtual void load (Layer_Loader &)=0
 
virtual void load_to_cache (Layer_Loader &, Cache &)
 
void copy_training_data_to_single_predict (Cache &, int batch_index)
 
 Polymorphic_Layer_Base (std::string classname)
 
virtual ~Polymorphic_Layer_Base ()=default
 
template<int ADL = 0>
std::string get_string_architecture () const
 
virtual batched_output_tensor_type forward_propagation (const batched_input_tensor_type &inputs)=0
 
virtual batched_input_tensor_type back_propagation (const batched_output_tensor_type &delta)=0
 
batched_output_tensor_type fp (const batched_input_tensor_type &inputs)
 
batched_input_tensor_type bp (const batched_output_tensor_type &delta)
 
virtual void update_weights ()
 
virtual void init ()=0
 
void set_batch_size (int bs)
 
void set_learning_rate (double lr)
 
std::shared_ptr< this_layer_typeprev ()
 
std::shared_ptr< this_layer_typeprev () const
 
std::shared_ptr< next_layer_typenext ()
 
std::shared_ptr< next_layer_typenext () const
 
void set_prev (this_layer_pointer_type prev_layer)
 
void set_next (next_layer_pointer_type next_layer)
 
auto batch_size () const
 
auto learning_rate () const
 
auto batched_learning_rate () const
 
auto input_shape () const
 
auto output_shape () const
 
auto batched_input_shape () const
 
auto batched_output_shape () const
 
std::string classname () const
 
virtual void save (Layer_Loader &) const =0
 
virtual void save_from_cache (Layer_Loader &, Cache &) const
 
virtual void load (Layer_Loader &)=0
 
virtual void load_to_cache (Layer_Loader &, Cache &)
 
void copy_training_data_to_single_predict (Cache &, int batch_index)
 

Static Public Member Functions

static std::string parse_classname (std::string classname)
 
static std::string parse_classname (std::string classname)
 

Public Attributes

batched_output_tensor_type y
 

Protected Member Functions

virtual void set_batch_size_hook (int bs)
 
virtual void set_learning_rate_hook (double lr)
 
virtual void set_batch_size_hook (int bs)
 
virtual void set_learning_rate_hook (double lr)
 

Protected Attributes

std::shared_ptr< allocator_typem_allocator
 
std::weak_ptr< this_layer_typem_input_layer
 
std::shared_ptr< next_layer_typem_output_layer
 
input_shape_type m_input_shape
 
output_shape_type m_output_shape
 

Member Typedef Documentation

◆ allocator_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::allocator_type = Allocator

◆ allocator_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::allocator_type = Allocator

◆ batched_input_tensor_dimension [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_input_tensor_dimension = bc::traits::Integer<Dimension::value+1>

◆ batched_input_tensor_dimension [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_input_tensor_dimension = bc::traits::Integer<Dimension::value+1>

◆ batched_input_tensor_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_input_tensor_type = bc::Tensor<input_tensor_dimension::value + 1, value_type, allocator_type>

◆ batched_input_tensor_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_input_tensor_type = bc::Tensor<input_tensor_dimension::value + 1, value_type, allocator_type>

◆ batched_output_tensor_dimension [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_output_tensor_dimension = bc::traits::Integer<OutputDimension::value+1>

◆ batched_output_tensor_dimension [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_output_tensor_dimension = bc::traits::Integer<OutputDimension::value+1>

◆ batched_output_tensor_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_output_tensor_type = bc::Tensor<output_tensor_dimension::value + 1, value_type, output_allocator_type>

◆ batched_output_tensor_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_output_tensor_type = bc::Tensor<output_tensor_dimension::value + 1, value_type, output_allocator_type>

◆ input_shape_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_shape_type = bc::Dim<input_tensor_dimension::value>

◆ input_shape_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_shape_type = bc::Dim<input_tensor_dimension::value>

◆ input_tensor_dimension [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_tensor_dimension = Dimension

◆ input_tensor_dimension [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_tensor_dimension = Dimension

◆ input_tensor_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_tensor_type = bc::Tensor< input_tensor_dimension::value, value_type, allocator_type>

◆ input_tensor_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_tensor_type = bc::Tensor< input_tensor_dimension::value, value_type, allocator_type>

◆ next_layer_pointer_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next_layer_pointer_type = std::shared_ptr<next_layer_type>

◆ next_layer_pointer_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next_layer_pointer_type = std::shared_ptr<next_layer_type>

◆ next_layer_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next_layer_type = Polymorphic_Layer_Base< output_tensor_dimension, output_value_type, output_system_tag>

◆ next_layer_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next_layer_type = Polymorphic_Layer_Base< output_tensor_dimension, output_value_type, output_system_tag>

◆ output_allocator_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_allocator_type = OutputAllocator

◆ output_allocator_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_allocator_type = OutputAllocator

◆ output_shape_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_shape_type = bc::Dim<output_tensor_dimension::value>

◆ output_shape_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_shape_type = bc::Dim<output_tensor_dimension::value>

◆ output_system_tag [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_system_tag = OutputSystemTag

◆ output_system_tag [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_system_tag = OutputSystemTag

◆ output_tensor_dimension [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_tensor_dimension = OutputDimension

◆ output_tensor_dimension [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_tensor_dimension = OutputDimension

◆ output_tensor_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_tensor_type = bc::Tensor<output_tensor_dimension::value, value_type, output_allocator_type>

◆ output_tensor_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_tensor_type = bc::Tensor<output_tensor_dimension::value, value_type, output_allocator_type>

◆ output_value_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_value_type = OutputValueType

◆ output_value_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_value_type = OutputValueType

◆ system_tag [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::system_tag = SystemTag

◆ system_tag [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::system_tag = SystemTag

◆ this_layer_pointer_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::this_layer_pointer_type = std::shared_ptr<this_layer_type>

◆ this_layer_pointer_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::this_layer_pointer_type = std::shared_ptr<this_layer_type>

◆ this_layer_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::this_layer_type = Polymorphic_Layer_Base< input_tensor_dimension, value_type, system_tag>

◆ this_layer_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::this_layer_type = Polymorphic_Layer_Base< input_tensor_dimension, value_type, system_tag>

◆ value_type [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::value_type = ValueType

◆ value_type [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
using bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::value_type = ValueType

Constructor & Destructor Documentation

◆ Polymorphic_Layer_Base() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::Polymorphic_Layer_Base ( std::string  classname)
inline

◆ ~Polymorphic_Layer_Base() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::~Polymorphic_Layer_Base ( )
virtualdefault

◆ Polymorphic_Layer_Base() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::Polymorphic_Layer_Base ( std::string  classname)
inline

◆ ~Polymorphic_Layer_Base() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::~Polymorphic_Layer_Base ( )
virtualdefault

Member Function Documentation

◆ back_propagation() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual batched_input_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::back_propagation ( const batched_output_tensor_type delta)
pure virtual

◆ back_propagation() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual batched_input_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::back_propagation ( const batched_output_tensor_type delta)
pure virtual

◆ batch_size() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batch_size ( ) const
inline

◆ batch_size() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batch_size ( ) const
inline

◆ batched_input_shape() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_input_shape ( ) const
inline

◆ batched_input_shape() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_input_shape ( ) const
inline

◆ batched_learning_rate() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_learning_rate ( ) const
inline

◆ batched_learning_rate() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_learning_rate ( ) const
inline

◆ batched_output_shape() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_output_shape ( ) const
inline

◆ batched_output_shape() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::batched_output_shape ( ) const
inline

◆ bp() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
batched_input_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::bp ( const batched_output_tensor_type delta)
inline

◆ bp() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
batched_input_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::bp ( const batched_output_tensor_type delta)
inline

◆ classname() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::string bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::classname ( ) const
inline

◆ classname() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::string bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::classname ( ) const
inline

◆ copy_training_data_to_single_predict() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::copy_training_data_to_single_predict ( Cache ,
int  batch_index 
)
inline

◆ copy_training_data_to_single_predict() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::copy_training_data_to_single_predict ( Cache ,
int  batch_index 
)
inline

◆ forward_propagation() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual batched_output_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::forward_propagation ( const batched_input_tensor_type inputs)
pure virtual

◆ forward_propagation() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual batched_output_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::forward_propagation ( const batched_input_tensor_type inputs)
pure virtual

◆ fp() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
batched_output_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::fp ( const batched_input_tensor_type inputs)
inline

◆ fp() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
batched_output_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::fp ( const batched_input_tensor_type inputs)
inline

◆ get_string_architecture() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
template<int ADL = 0>
std::string bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::get_string_architecture ( ) const
inline

◆ get_string_architecture() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
template<int ADL = 0>
std::string bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::get_string_architecture ( ) const
inline

◆ init() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::init ( )
pure virtual

◆ init() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::init ( )
pure virtual

◆ input_shape() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_shape ( ) const
inline

◆ input_shape() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::input_shape ( ) const
inline

◆ learning_rate() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::learning_rate ( ) const
inline

◆ learning_rate() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::learning_rate ( ) const
inline

◆ load() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::load ( Layer_Loader )
pure virtual

◆ load() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::load ( Layer_Loader )
pure virtual

◆ load_to_cache() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::load_to_cache ( Layer_Loader ,
Cache  
)
inlinevirtual

◆ load_to_cache() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::load_to_cache ( Layer_Loader ,
Cache  
)
inlinevirtual

◆ next() [1/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<next_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next ( )
inline

◆ next() [2/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<next_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next ( )
inline

◆ next() [3/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<next_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next ( ) const
inline

◆ next() [4/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<next_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::next ( ) const
inline

◆ output_shape() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_shape ( ) const
inline

◆ output_shape() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
auto bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::output_shape ( ) const
inline

◆ parse_classname() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
static std::string bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::parse_classname ( std::string  classname)
inlinestatic

◆ parse_classname() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
static std::string bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::parse_classname ( std::string  classname)
inlinestatic

◆ prev() [1/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<this_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::prev ( )
inline

◆ prev() [2/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<this_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::prev ( )
inline

◆ prev() [3/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<this_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::prev ( ) const
inline

◆ prev() [4/4]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr<this_layer_type> bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::prev ( ) const
inline

◆ save() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::save ( Layer_Loader ) const
pure virtual

◆ save() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::save ( Layer_Loader ) const
pure virtual

◆ save_from_cache() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::save_from_cache ( Layer_Loader ,
Cache  
) const
inlinevirtual

◆ save_from_cache() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::save_from_cache ( Layer_Loader ,
Cache  
) const
inlinevirtual

◆ set_batch_size() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_batch_size ( int  bs)
inline

◆ set_batch_size() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_batch_size ( int  bs)
inline

◆ set_batch_size_hook() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_batch_size_hook ( int  bs)
inlineprotectedvirtual

◆ set_batch_size_hook() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_batch_size_hook ( int  bs)
inlineprotectedvirtual

◆ set_learning_rate() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_learning_rate ( double  lr)
inline

◆ set_learning_rate() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_learning_rate ( double  lr)
inline

◆ set_learning_rate_hook() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_learning_rate_hook ( double  lr)
inlineprotectedvirtual

◆ set_learning_rate_hook() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_learning_rate_hook ( double  lr)
inlineprotectedvirtual

◆ set_next() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_next ( next_layer_pointer_type  next_layer)
inline

◆ set_next() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_next ( next_layer_pointer_type  next_layer)
inline

◆ set_prev() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_prev ( this_layer_pointer_type  prev_layer)
inline

◆ set_prev() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::set_prev ( this_layer_pointer_type  prev_layer)
inline

◆ update_weights() [1/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::update_weights ( )
inlinevirtual

◆ update_weights() [2/2]

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
virtual void bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::update_weights ( )
inlinevirtual

Member Data Documentation

◆ m_allocator

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr< allocator_type > bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::m_allocator
protected

◆ m_input_layer

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::weak_ptr< this_layer_type > bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::m_input_layer
protected

◆ m_input_shape

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
input_shape_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::m_input_shape
protected

◆ m_output_layer

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
std::shared_ptr< next_layer_type > bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::m_output_layer
protected

◆ m_output_shape

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
output_shape_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::m_output_shape
protected

◆ y

template<class Dimension , class ValueType , class SystemTag , class Allocator = layer_default_allocator<ValueType, SystemTag>, class OutputDimension = Dimension, class OutputValueType = ValueType, class OutputSystemTag = SystemTag, class OutputAllocator = Allocator>
batched_output_tensor_type bc::nn::Polymorphic_Layer_Base< Dimension, ValueType, SystemTag, Allocator, OutputDimension, OutputValueType, OutputSystemTag, OutputAllocator >::y

The documentation for this struct was generated from the following file: