1 #ifndef CAFFE_ACL_TANH_LAYER_HPP_
2 #define CAFFE_ACL_TANH_LAYER_HPP_
6 #include "caffe/blob.hpp"
7 #include "caffe/layer.hpp"
8 #include "caffe/proto/caffe.pb.h"
10 #include "caffe/layers/neuron_layer.hpp"
11 #include "caffe/layers/tanh_layer.hpp"
14 #include "caffe/acl_layer.hpp"
15 #include "caffe/layers/acl_base_activation_layer.hpp"
22 * @brief ACL acceleration of TanHLayer.
23 * Fallback to TanHLayer for some corner cases.
25 template <typename Dtype>
26 class ACLTanHLayer : public ACLBaseActivationLayer<Dtype>,public TanHLayer<Dtype> {
28 explicit ACLTanHLayer(const LayerParameter& param)
29 : ACLBaseActivationLayer<Dtype>(param),TanHLayer<Dtype>(param) {}
30 virtual void LayerSetUp(const vector<Blob<Dtype>*>& bottom,
31 const vector<Blob<Dtype>*>& top);
32 virtual void Reshape(const vector<Blob<Dtype>*>& bottom,
33 const vector<Blob<Dtype>*>& top);
34 virtual ~ACLTanHLayer();
37 virtual void Forward_gpu(const vector<Blob<Dtype>*>& bottom,
38 const vector<Blob<Dtype>*>& top);
39 virtual void Forward_cpu(const vector<Blob<Dtype>*>& bottom,
40 const vector<Blob<Dtype>*>& top);
41 virtual void Backward_gpu(const vector<Blob<Dtype>*>& top,
42 const vector<bool>& propagate_down, const vector<Blob<Dtype>*>& bottom){
45 virtual void Backward_cpu(const vector<Blob<Dtype>*>& top,
46 const vector<bool>& propagate_down, const vector<Blob<Dtype>*>& bottom){
49 virtual void SetupACLLayer(const vector<Blob<Dtype>*>& bottom,
50 const vector<Blob<Dtype>*>& top, ActivationLayerInfo::ActivationFunction type);
56 #endif // CAFFE_ACL_TANH_LAYER_HPP_