caffe数学运算

caffe_cpu_gemm

C = α A T r a n s A B T r a n s B + β C C =\alpha A^{TransA}B^{TransB}+\beta C C=αATransABTransB+βC

void caffe_cpu_gemm(const CBLAS_TRANSPOSE TransA,
 const CBLAS_TRANSPOSE TransB, const int M, const int N, const int K,
    const Dtype alpha, const Dtype* A, const Dtype* B, const Dtype beta,
    Dtype* C);

caffe_cpu_gemv

Y = α A T r a n s A X + β Y Y=\alpha A^{TransA}X + \beta Y Y=αATransAX+βY

template <typename Dtype>
void caffe_cpu_gemv(const CBLAS_TRANSPOSE TransA, const int M, const int N,const Dtype alpha, const Dtype* A, const Dtype* x, const Dtype beta,Dtype* y);

caffe_axpy

Y = α X + Y Y = \alpha X +Y Y=αX+Y

template <typename Dtype>
void caffe_axpy(const int N, const Dtype alpha, const Dtype* X,Dtype* Y);

caffe_cpu_axpby

Y = α X + β Y Y = \alpha X +\beta Y Y=αX+βY

template <typename Dtype>
void caffe_cpu_axpby(const int N, const Dtype alpha, const Dtype* X,const Dtype beta, Dtype* Y);

caffe_copy

Y = X Y=X Y=X

template <typename Dtype>
void caffe_copy(const int N, const Dtype *X, Dtype *Y);

caffe_set

Y = α Y=\alpha Y=α

template <typename Dtype>
void caffe_set(const int N, const Dtype alpha, Dtype *X);

caffe_memset

inline void caffe_memset(const size_t N, const int alpha, void* X) {
  memset(X, alpha, N);  // NOLINT(caffe/alt_fn)
}

caffe_add_scalar

X = X + α X = X+ \alpha X=X+α

template <typename Dtype>
void caffe_add_scalar(const int N, const Dtype alpha, Dtype *X);

caffe_scal

X = α X X = \alpha X X=αX

template <typename Dtype>
void caffe_scal(const int N, const Dtype alpha, Dtype *X);

caffe_sqr

y i = a i 2 y_i = a_{i}^2 yi=ai2

template <typename Dtype>
void caffe_sqr(const int N, const Dtype* a, Dtype* y);

caffe_sqrt

y i = a i y_i = \sqrt{a_{i}} yi=ai

template <typename Dtype>
void caffe_sqrt(const int N, const Dtype* a, Dtype* y);

caffe_add

y i = a i + b i y_i = a_i + b_i yi=ai+bi

template <typename Dtype>
void caffe_add(const int N, const Dtype* a, const Dtype* b, Dtype* y);

caffe_sub

y i = a i − b i y_i = a_i - b_i yi=aibi

template <typename Dtype>
void caffe_sub(const int N, const Dtype* a, const Dtype* b, Dtype* y);

caffe_mul

y i = a i × b i y_i = a_i \times b_i yi=ai×bi

template <typename Dtype>
void caffe_mul(const int N, const Dtype* a, const Dtype* b, Dtype* y);

caffe_div

y i = a i / b i y_i = a_i/b_i yi=ai/bi

template <typename Dtype>
void caffe_div(const int N, const Dtype* a, const Dtype* b, Dtype* y);

caffe_powx

y i = a i b y_i = a_i^b yi=aib

template <typename Dtype>
void caffe_powx(const int n, const Dtype* a, const Dtype b, Dtype* y);

caffe_rng_rand

返回随机数

unsigned int caffe_rng_rand();

caffe_nextafter

template <typename Dtype>
Dtype caffe_nextafter(const Dtype b);

caffe_rng_uniform

产生[a,b]范围的均匀分布

template <typename Dtype>
void caffe_rng_uniform(const int n, const Dtype a, const Dtype b, Dtype* r);

caffe_rng_gaussian

产 生 服 从 ( ν , σ ) 的 高 斯 分 布 产生服从(\nu , \sigma)的高斯分布 (ν,σ)

template <typename Dtype>
void caffe_rng_gaussian(const int n, const Dtype mu, const Dtype sigma,Dtype* r);

caffe_rng_bernoulli

产生概率为p的伯努利分布

template <typename Dtype>
void caffe_rng_bernoulli(const int n, const Dtype p, int* r);

caffe_rng_bernoulli

产生概率为p的伯努利分布

template <typename Dtype>
void caffe_rng_bernoulli(const int n, const Dtype p, unsigned int* r);

caffe_exp

y i = e a i y_i = e^{a_i} yi=eai

template <typename Dtype>
void caffe_exp(const int n, const Dtype* a, Dtype* y);

caffe_log

y i = l o g ( a i ) y_i = log(a_i) yi=log(ai)

template <typename Dtype>
void caffe_log(const int n, const Dtype* a, Dtype* y);

caffe_abs

y i = ∣ a i ∣ y_i = |a_i| yi=ai

template <typename Dtype>
void caffe_abs(const int n, const Dtype* a, Dtype* y);

caffe_cpu_dot

∑ i n x i y i \sum_i^n{x_{i}y_{i}} inxiyi

template <typename Dtype>
Dtype caffe_cpu_dot(const int n, const Dtype* x, const Dtype* y);

caffe_cpu_strided_dot

∑ i n x i ∗ i n c x y i ∗ i n c y \sum_i^n{x_{i*incx}y_{i*incy}} inxiincxyiincy

template <typename Dtype>
Dtype caffe_cpu_strided_dot(const int n, const Dtype* x, const int incx,const Dtype* y, const int incy);

caffe_cpu_asum

∑ i n ∣ x i ∣ \sum_i^n{|x_i|} inxi

// Returns the sum of the absolute values of the elements of vector x
template <typename Dtype>
Dtype caffe_cpu_asum(const int n, const Dtype* x);

你可能感兴趣的:(caffe数学运算)