mirror of
https://github.com/lordmathis/CUDANet.git
synced 2025-11-06 01:34:22 +00:00
Implement simple test for host conv2d
This commit is contained in:
@@ -5,11 +5,11 @@
|
||||
|
||||
#include "conv2d.cuh"
|
||||
|
||||
TEST(Conv2dTest, ValidPadding) {
|
||||
TEST(Conv2dTest, SimpleExample) {
|
||||
|
||||
int inputSize = 3;
|
||||
int inputSize = 4;
|
||||
int inputChannels = 1;
|
||||
int kernelSize = 3;
|
||||
int kernelSize = 2;
|
||||
int stride = 1;
|
||||
std::string padding = "VALID";
|
||||
int numFilters = 1;
|
||||
@@ -28,8 +28,31 @@ TEST(Conv2dTest, ValidPadding) {
|
||||
int outputSize = (inputSize - kernelSize) / stride + 1;
|
||||
EXPECT_EQ(outputSize, conv2d.outputSize);
|
||||
|
||||
std::vector<float> input(inputSize * inputSize * inputChannels);
|
||||
std::vector<float> input = {
|
||||
1.0f, 2.0f, 3.0f, 4.0f,
|
||||
5.0f, 6.0f, 7.0f, 8.0f,
|
||||
9.0f, 10.0f, 11.0f, 12.0f,
|
||||
13.0f, 14.0f, 15.0f, 16.0f
|
||||
};
|
||||
std::vector<float> kernels = {
|
||||
1.0f, 2.0f, 3.0f, 4.0f,
|
||||
};
|
||||
|
||||
conv2d.setKernels(kernels);
|
||||
|
||||
|
||||
std::vector<float> output(outputSize * outputSize * numFilters);
|
||||
std::vector<float> kernels(kernelSize * kernelSize * inputChannels * numFilters);
|
||||
|
||||
conv2d.host_conv(input.data(), output.data());
|
||||
|
||||
std::vector<float> expected = {
|
||||
44.0f, 54.0f, 64.0f,
|
||||
84.0f, 94.0f, 104.0f,
|
||||
124.0f, 134.0f, 144.0f
|
||||
};
|
||||
|
||||
for (int i = 0; i < output.size(); ++i) {
|
||||
EXPECT_FLOAT_EQ(expected[i], output[i]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user