dimensions for future use in cuda implementation.
rows = rhs.rows;
n_channels = rhs.n_channels;
n_scales = rhs.n_scales;
+ foreign_data = true;
p_data = rhs.p_data;
}
int rows;
int n_channels;
int n_scales = 1;
+ bool foreign_data = false;
ComplexMat() : cols(0), rows(0), n_channels(0) {}
ComplexMat(int _rows, int _cols, int _n_channels) : cols(_cols), rows(_rows), n_channels(_n_channels)
~ComplexMat()
{
- if(p_data != nullptr){
+ if(p_data != nullptr && !foreign_data){
CudaSafeCall(cudaFree(p_data));
p_data = nullptr;
}
num_of_feats = 31;
if(m_use_color) num_of_feats += 3;
if(m_use_cnfeat) num_of_feats += 10;
+ poi_width = p_windows_size[0]/p_cell_size;
+ poi_height = p_windows_size[1]/p_cell_size;
fft.init(p_windows_size[0]/p_cell_size, p_windows_size[1]/p_cell_size, num_of_feats, p_scales.size(), m_use_big_batch);
p_yf = fft.forward(gaussian_shaped_labels(p_output_sigma, p_windows_size[0]/p_cell_size, p_windows_size[1]/p_cell_size));
fft.set_window(cosine_window_function(p_windows_size[0]/p_cell_size, p_windows_size[1]/p_cell_size));
//for big batch
int num_of_feats;
+ int poi_height, poi_width;
float *xf_sqr_norm = nullptr, *yf_sqr_norm = nullptr;
#ifdef CUFFT
float *xf_sqr_norm_d = nullptr, *yf_sqr_norm_d = nullptr;