I wrote a layer modifying euclidean loss layer , it compiles correctly both test file and layer file but when make run test it gives me error like that/usr/bin/ld:
.build_release/src/caffe/test/test_MAE.o: In function `caffe::MAELayerTest_TestGradient_Test<caffe::GPUDevice<double> >::TestBody()':
test_MAE.cpp:(.text._ZN5caffe30MAELayerTest_TestGradient_TestINS_9GPUDeviceIdEEE8TestBodyEv[_ZN5caffe30MAELayerTest_TestGradient_TestINS_9GPUDeviceIdEEE8TestBodyEv]+0x145): undefined reference to `caffe::MAELayer<double>::Reshape(std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&, std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&)'
.build_release/src/caffe/test/test_MAE.o: In function `caffe::MAELayerTest<caffe::GPUDevice<double> >::TestForward()':
test_MAE.cpp:(.text._ZN5caffe12MAELayerTestINS_9GPUDeviceIdEEE11TestForwardEv[_ZN5caffe12MAELayerTestINS_9GPUDeviceIdEEE11TestForwardEv]+0x62): undefined reference to `caffe::MAELayer<double>::Reshape(std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&, std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&)'
test_MAE.cpp:(.text._ZN5caffe12MAELayerTestINS_9GPUDeviceIdEEE11TestForwardEv[_ZN5caffe12MAELayerTestINS_9GPUDeviceIdEEE11TestForwardEv]+0xd4): undefined reference to `caffe::MAELayer<double>::Reshape(std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&, std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&)'
.build_release/src/caffe/test/test_MAE.o: In function `caffe::MAELayerTest_TestGradient_Test<caffe::GPUDevice<float> >::TestBody()':
test_MAE.cpp:(.text._ZN5caffe30MAELayerTest_TestGradient_TestINS_9GPUDeviceIfEEE8TestBodyEv[_ZN5caffe30MAELayerTest_TestGradient_TestINS_9GPUDeviceIfEEE8TestB
What do you think it can be a problem?
p.s does any one have a goo step by step tutorial for writing a layer from scratch?
best regards