mirror of
https://github.com/lordmathis/CUDANet.git
synced 2025-11-05 17:34:21 +00:00
Add epsilon param to batch norm
This commit is contained in:
@@ -10,7 +10,7 @@ namespace CUDANet::Layers {
|
||||
|
||||
class BatchNorm : public WeightedLayer {
|
||||
public:
|
||||
BatchNorm(int inputSize, int inputChannels, ActivationType activationType);
|
||||
BatchNorm(int inputSize, int inputChannels, float epsilon, ActivationType activationType);
|
||||
|
||||
~BatchNorm();
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ using namespace CUDANet::Layers;
|
||||
BatchNorm::BatchNorm(
|
||||
int inputSize,
|
||||
int inputChannels,
|
||||
float epsilon,
|
||||
ActivationType activationType
|
||||
)
|
||||
: inputSize(inputSize), inputChannels(inputChannels) {
|
||||
@@ -47,7 +48,6 @@ BatchNorm::BatchNorm(
|
||||
CUDA_CHECK(cudaMemcpy(d_length, &length, sizeof(float), cudaMemcpyHostToDevice));
|
||||
|
||||
d_epsilon = nullptr;
|
||||
float epsilon = 1e-5f;
|
||||
CUDA_CHECK(cudaMalloc((void **)&d_epsilon, sizeof(float)));
|
||||
CUDA_CHECK(cudaMemcpy(d_epsilon, &epsilon, sizeof(float), cudaMemcpyHostToDevice));
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ TEST(BatchNormLayerTest, BatchNormSmallForwardTest) {
|
||||
cudaError_t cudaStatus;
|
||||
|
||||
CUDANet::Layers::BatchNorm batchNorm(
|
||||
inputSize, nChannels, CUDANet::Layers::ActivationType::NONE
|
||||
inputSize, nChannels, 1e-5f, CUDANet::Layers::ActivationType::NONE
|
||||
);
|
||||
|
||||
std::vector<float> weights = {0.63508f, 0.64903f};
|
||||
|
||||
Reference in New Issue
Block a user