Hi albanD,
Sorry for my late response. I might find out the answer myself. I used multi GPUs for training. The Gaussian Noise layer defined above creates tensors and moves them to GPUs at run-time. The created tensors may not be on the same GPUs with those whom are to be added noise to. When I used a single GPU for training, the segmentation fault problem did not occur.
So the problem reduced to how to make sure the created tensors moved to the proper GPU?