tiny_dnn 1.0.0
A header only, dependency-free deep learning framework in C++11
Loading...
Searching...
No Matches
Public Member Functions | List of all members
tiny_dnn::core::nnp_backend Class Reference
Inheritance diagram for tiny_dnn::core::nnp_backend:
Inheritance graph
[legend]
Collaboration diagram for tiny_dnn::core::nnp_backend:
Collaboration graph
[legend]

Public Member Functions

 nnp_backend (conv_params *params, std::function< void(const tensor_t &)> f1, conv_layer_worker_specific_storage *ptr)
 
 nnp_backend (deconv_params *params)
 
 nnp_backend (maxpool_params *params)
 
 nnp_backend (fully_params *params)
 
void conv2d (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void conv2d_q (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void conv2d_eq (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void conv2d (const std::vector< tensor_t * > &in_data, const std::vector< tensor_t * > &out_data, std::vector< tensor_t * > &out_grad, std::vector< tensor_t * > &in_grad) override
 
void conv2d_q (const std::vector< tensor_t * > &in_data, const std::vector< tensor_t * > &out_data, std::vector< tensor_t * > &out_grad, std::vector< tensor_t * > &in_grad) override
 
void deconv2d (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void deconv2d_q (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void deconv2d_eq (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void deconv2d (const std::vector< tensor_t * > &in_data, const std::vector< tensor_t * > &out_data, std::vector< tensor_t * > &out_grad, std::vector< tensor_t * > &in_grad) override
 
void deconv2d_q (const std::vector< tensor_t * > &in_data, const std::vector< tensor_t * > &out_data, std::vector< tensor_t * > &out_grad, std::vector< tensor_t * > &in_grad) override
 
void maxpool (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void maxpool (const std::vector< tensor_t * > &in_data, const std::vector< tensor_t * > &out_data, std::vector< tensor_t * > &out_grad, std::vector< tensor_t * > &in_grad) override
 
void fully (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void fully_q (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void fully_eq (const std::vector< tensor_t * > &in_data, std::vector< tensor_t * > &out_data) override
 
void fully (const std::vector< tensor_t * > &in_data, const std::vector< tensor_t * > &out_data, std::vector< tensor_t * > &out_grad, std::vector< tensor_t * > &in_grad) override
 
void fully_q (const std::vector< tensor_t * > &in_data, const std::vector< tensor_t * > &out_data, std::vector< tensor_t * > &out_grad, std::vector< tensor_t * > &in_grad) override
 
backend_t type () const override
 
- Public Member Functions inherited from tiny_dnn::core::backend
 backend (context *ctx_=nullptr)
 
contextget_context () const
 
void set_layer (layerptr_t layer)
 

Additional Inherited Members

- Protected Attributes inherited from tiny_dnn::core::backend
contextctx_
 
layerptr_t layer_
 

Member Function Documentation

◆ conv2d() [1/2]

void tiny_dnn::core::nnp_backend::conv2d ( const std::vector< tensor_t * > &  in_data,
const std::vector< tensor_t * > &  out_data,
std::vector< tensor_t * > &  out_grad,
std::vector< tensor_t * > &  in_grad 
)
inlineoverridevirtual

◆ conv2d() [2/2]

void tiny_dnn::core::nnp_backend::conv2d ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ conv2d_eq()

void tiny_dnn::core::nnp_backend::conv2d_eq ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ conv2d_q() [1/2]

void tiny_dnn::core::nnp_backend::conv2d_q ( const std::vector< tensor_t * > &  in_data,
const std::vector< tensor_t * > &  out_data,
std::vector< tensor_t * > &  out_grad,
std::vector< tensor_t * > &  in_grad 
)
inlineoverridevirtual

◆ conv2d_q() [2/2]

void tiny_dnn::core::nnp_backend::conv2d_q ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ deconv2d() [1/2]

void tiny_dnn::core::nnp_backend::deconv2d ( const std::vector< tensor_t * > &  in_data,
const std::vector< tensor_t * > &  out_data,
std::vector< tensor_t * > &  out_grad,
std::vector< tensor_t * > &  in_grad 
)
inlineoverridevirtual

◆ deconv2d() [2/2]

void tiny_dnn::core::nnp_backend::deconv2d ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ deconv2d_eq()

void tiny_dnn::core::nnp_backend::deconv2d_eq ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ deconv2d_q() [1/2]

void tiny_dnn::core::nnp_backend::deconv2d_q ( const std::vector< tensor_t * > &  in_data,
const std::vector< tensor_t * > &  out_data,
std::vector< tensor_t * > &  out_grad,
std::vector< tensor_t * > &  in_grad 
)
inlineoverridevirtual

◆ deconv2d_q() [2/2]

void tiny_dnn::core::nnp_backend::deconv2d_q ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ fully() [1/2]

void tiny_dnn::core::nnp_backend::fully ( const std::vector< tensor_t * > &  in_data,
const std::vector< tensor_t * > &  out_data,
std::vector< tensor_t * > &  out_grad,
std::vector< tensor_t * > &  in_grad 
)
inlineoverridevirtual

◆ fully() [2/2]

void tiny_dnn::core::nnp_backend::fully ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ fully_eq()

void tiny_dnn::core::nnp_backend::fully_eq ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ fully_q() [1/2]

void tiny_dnn::core::nnp_backend::fully_q ( const std::vector< tensor_t * > &  in_data,
const std::vector< tensor_t * > &  out_data,
std::vector< tensor_t * > &  out_grad,
std::vector< tensor_t * > &  in_grad 
)
inlineoverridevirtual

◆ fully_q() [2/2]

void tiny_dnn::core::nnp_backend::fully_q ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

◆ maxpool() [1/2]

void tiny_dnn::core::nnp_backend::maxpool ( const std::vector< tensor_t * > &  in_data,
const std::vector< tensor_t * > &  out_data,
std::vector< tensor_t * > &  out_grad,
std::vector< tensor_t * > &  in_grad 
)
inlineoverridevirtual

◆ maxpool() [2/2]

void tiny_dnn::core::nnp_backend::maxpool ( const std::vector< tensor_t * > &  in_data,
std::vector< tensor_t * > &  out_data 
)
inlineoverridevirtual

if (params_m_->stride_x != 2 || params_m_->stride_y != 2) { throw nn_error("NNPACK Max-Pool requires a stride == 2."); }

if (params_m_->pool_size_x != 2 || params_m_->pool_size_y != 2) { throw nn_error("NNPACK Max-Pool requires a pool size == 2."); }

const tensor_t& in = *in_data[0]; tensor_t& a = *out_data[1];

kernels::nnp_maxpool_kernel(*params_m_, in, a);

Implements tiny_dnn::core::backend.

◆ type()

backend_t tiny_dnn::core::nnp_backend::type ( ) const
inlineoverridevirtual

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