You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If x only have 1 element, mean(x) = x, std(x) = 0. The output will be entirely zero (ignoring the bias). The feature is no meaningless. In this case, we should not use feature-wise batch normalization.
The text was updated successfully, but these errors were encountered:
If there is only one element in norm dimension, for example, feature map is [1, 128, 1, 1] or [1, 32], the moving variance will be NaN. The following test can reproduce this problem:
import numpy as np
import paddle
import paddle.fluid as fluid
def main():
epoc = 8
dshape = [1, 128, 1, 1]
data = fluid.layers.data(name='data', shape=[128, 1, 1], dtype='float32')
conv = fluid.layers.conv2d(data, 128, 3, stride=1, padding=1)
norm = fluid.layers.batch_norm(conv)
place = fluid.CUDAPlace(0)
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())
for i in range(epoc):
input = np.random.random(dshape).astype('float32')
exe.run(fluid.default_main_program(), feed={'data': input})
v = fluid.global_scope().find_var('batch_norm_0.w_2').get_tensor()
v = np.array(v)
print v
# import math
# for it in v.flatten().tolist():
# if np.isnan(it):
# print 'nan'
# if np.isinf(it):
# print 'inf'
if __name__ == '__main__':
main()
Will print:
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan]
[nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan]
...
If x only have 1 element, mean(x) = x, std(x) = 0. The output will be entirely zero (ignoring the bias). The feature is no meaningless. In this case, we should not use feature-wise batch normalization.
The text was updated successfully, but these errors were encountered: