10 #include "eteq/generated/api.hpp" 14 #ifndef LAYR_ULAYER_HPP 15 #define LAYR_ULAYER_HPP 96 const std::unordered_map<std::string,UnaryF>
unaries =
100 {
return tenncor::sigmoid<PybindT>(input); }},
103 {
return tenncor::tanh<PybindT>(input); }},
112 ULayer (
const std::string& ulayer_type,
const std::string& extra_info =
"") :
116 "failed to find unary function `%s`", ulayer_type.c_str())),
123 std::string label_prefix =
"") :
177 auto out =
unary_(*
this, input);
179 input->get_tensor().get(),
187 return new ULayer(*
this, label_prefix);
219 #endif // LAYR_ULAYER_HPP UnaryptrT meanpool2d(std::pair< teq::DimT, teq::DimT > dims={0, 1})
Return pooling layer using mean aggregation.
const std::string tanh_layer_key
Identifier for tanh activation layer.
Definition: ulayer.hpp:56
ULayer * clone(std::string label_prefix="") const
Return deep copy of this layer with prefixed label.
Definition: ulayer.hpp:139
NodeptrT< T > make_constant_scalar(T scalar, teq::Shape shape)
Return constant node given scalar and shape.
Definition: constant.hpp:146
UnaryptrT softmax(teq::RankT dim)
Return activation layer using softmax of specified dimension.
LayerRegistry & get_layer_reg(void)
Return global layer registry reference.
void set_sublayer(LayerptrT layer) override
Implementation of iLayerBuilder.
Definition: ulayer.hpp:36
Layer implementation to apply activation and pooling functions.
Definition: ulayer.hpp:110
UnaryptrT tanh(void)
Return activation layer using tanh.
size_t get_noutput(void) const override
Implementation of iLayer.
Definition: ulayer.hpp:151
Definition: constant.hpp:17
NodeptrT placeholder_
Definition: ulayer.hpp:196
std::string get_ltype(void) const override
Implementation of iLayer.
Definition: ulayer.hpp:157
uint8_t RankT
Type used for shape rank.
Definition: shape.hpp:23
std::string register_tagr(std::string key, LayerBuildF builder)
Definition: layer.hpp:198
void recursive_tag(teq::TensptrT root, teq::TensSetT ignores, LayerId subs) const
std::string label_
Definition: ulayer.hpp:190
std::shared_ptr< iLayerBuilder > LBuilderptrT
Layer builder smart pointer.
Definition: layer.hpp:179
std::shared_ptr< ULayer > UnaryptrT
Smart pointer of unary layer.
Definition: ulayer.hpp:200
NodeptrT meanpool_from_layer(const ULayer &layer, NodeptrT input)
const std::string sigmoid_layer_key
Identifier for sigmoid activation layer.
Definition: ulayer.hpp:48
ULayer(const ULayer &other, std::string label_prefix="")
Definition: ulayer.hpp:122
void set_tensor(teq::TensptrT tens, std::string target) override
Implementation of iLayerBuilder.
Definition: ulayer.hpp:33
const std::string layers_key_prefix
String prefixed to every layer key.
Definition: layer.hpp:25
UnaryptrT maxpool2d(std::pair< teq::DimT, teq::DimT > dims={0, 1})
Return pooling layer using max aggregation.
UnaryptrT sigmoid(void)
Return activation layer using sigmoid.
size_t get_ninput(void) const override
Implementation of iLayer.
Definition: ulayer.hpp:145
iLayer * clone_impl(const std::string &label_prefix) const override
Definition: ulayer.hpp:185
Definition: layer.hpp:164
ULayer & operator=(const ULayer &other)=default
teq::TensptrsT get_contents(void) const override
Implementation of iLayer.
Definition: ulayer.hpp:169
std::string utype_
Definition: ulayer.hpp:42
std::string label_
Definition: ulayer.hpp:44
std::string get_label(void) const override
Implementation of iLayer.
Definition: ulayer.hpp:163
void tag(teq::TensptrT tensor, LayerId subs) const
std::shared_ptr< iTensor > TensptrT
Tensor smart pointer.
Definition: itensor.hpp:51
std::vector< TensptrT > TensptrsT
Vector of tensor smart pointers.
Definition: itensor.hpp:60
Sublayer type, label, and index encapsulation.
Definition: layer.hpp:35
ULayer(const std::string &ulayer_type, const std::string &extra_info="")
Definition: ulayer.hpp:112
const std::string maxpool2d_layer_key
Identifier for max pooling layer.
Definition: ulayer.hpp:72
ULayerBuilder(std::string act_type, std::string label)
Definition: ulayer.hpp:29
std::function< NodeptrT(const ULayer &, NodeptrT)> UnaryF
Function that takes corresponding unary layer and node.
Definition: ulayer.hpp:24
UnaryF unary_
Definition: ulayer.hpp:194
const std::string meanpool2d_layer_key
Identifier for mean pooling layer.
Definition: ulayer.hpp:80
const std::string softmax_layer_key
Identifier for softmax activation layer.
Definition: ulayer.hpp:64
std::shared_ptr< iNode< T > > NodeptrT
Smart pointer of node.
Definition: inode.hpp:63
NodeptrT softmax_from_layer(const ULayer &layer, NodeptrT input)
const std::unordered_map< std::string, UnaryF > unaries
Map unary layer identifier to connection function.
Definition: ulayer.hpp:96
NodeptrT maxpool_from_layer(const ULayer &layer, NodeptrT input)
LayerptrT build(void) const override
Implementation of iLayerBuilder.
std::shared_ptr< iLayer > LayerptrT
Smart pointer of layer.
Definition: layer.hpp:159
NodeptrT connect(NodeptrT input) const override
Implementation of iLayer.
Definition: ulayer.hpp:175
std::string utype_
Definition: ulayer.hpp:192
Definition: layer.hpp:121
Builder implementation for activation layer.
Definition: ulayer.hpp:27