|
|
@@ -241,6 +241,41 @@ TEST_F(CUDA, SHAKE_LOCAL_SHARE) { |
|
|
|
checker.exec({{20, 16, 32, 32}, {3, 3, 16, 3, 3, 64}, {}}); |
|
|
|
} |
|
|
|
|
|
|
|
TEST_F(CUDA, SHAKE_CONVOLUTION_BACKWARD_DATA) { |
|
|
|
AccuracyShakeChecker<ConvolutionBackwardData> checker(handle_cuda()); |
|
|
|
NormalRNG default_rng; |
|
|
|
checker.set_dtype(0, dtype::Float32()) |
|
|
|
.set_dtype(1, dtype::Float32()) |
|
|
|
.set_rng(0, &default_rng) |
|
|
|
.set_rng(1, &default_rng); |
|
|
|
// ConvolutionBackwardData |
|
|
|
checker.exec({{8, 16, 3, 3}, {64, 8, 5, 5}, {64, 16, 7, 7}}); |
|
|
|
|
|
|
|
// group |
|
|
|
ConvolutionBackwardData::Param param; |
|
|
|
param.sparse = Convolution::Param::Sparse::GROUP; |
|
|
|
checker.set_param(param); |
|
|
|
checker.exec({{2, 16, 32, 3, 3}, {2, 32, 5, 5}, {2, 64, 7, 7}}); |
|
|
|
checker.exec({{2, 8, 32, 3, 3}, {64, 16, 19, 19}, {64, 64, 21, 21}}); |
|
|
|
} |
|
|
|
|
|
|
|
TEST_F(CUDA, SHAKE_CONVOLUTION_BACKWARD_FILTER) { |
|
|
|
AccuracyShakeChecker<ConvolutionBackwardFilter> checker(handle_cuda()); |
|
|
|
NormalRNG default_rng; |
|
|
|
checker.set_dtype(0, dtype::Float32()) |
|
|
|
.set_dtype(1, dtype::Float32()) |
|
|
|
.set_rng(0, &default_rng) |
|
|
|
.set_rng(1, &default_rng); |
|
|
|
// ConvolutionBackwardFilter |
|
|
|
checker.exec({{2, 64, 7, 7}, {2, 32, 5, 5}, {32, 64, 3, 3}}); |
|
|
|
|
|
|
|
// group |
|
|
|
ConvolutionBackwardFilter::Param param; |
|
|
|
param.sparse = Convolution::Param::Sparse::GROUP; |
|
|
|
checker.set_param(param); |
|
|
|
checker.exec({{2, 64, 7, 7}, {2, 32, 5, 5}, {2, 16, 32, 3, 3}}); |
|
|
|
} |
|
|
|
|
|
|
|
} // namespace test |
|
|
|
} // namespace megdnn |
|
|
|
|
|
|
|