0
$\begingroup$

I have an image which is divided into four equal size square blocks. I want to apply neural network for denoising. Usually, I apply on the whole image. But i was thinking that is it possible to divide the image into equal parts and apply NN on each part parallelly.

Anyone, please help me how can I do that

$\endgroup$
4
  • $\begingroup$ 1. NN is already parallel. You mean without overlap? 2. Are you using CNN, convolutional auto-encoders? $\endgroup$ Commented Sep 21, 2016 at 7:01
  • $\begingroup$ @TolgaBirdal Yes, I want to check CNN on the each of the block parallelly. $\endgroup$ Commented Sep 22, 2016 at 0:06
  • $\begingroup$ but how can i do that in MATLAB to apply CNN parallelly on each block so i can get the output as same time $\endgroup$ Commented Sep 22, 2016 at 1:01
  • $\begingroup$ Can you please clarify what do you mean by "same time"? Your outputs per layer should all be generated "at the same time". That is, first layer works on the image and produces another image with the output of the first layer. Then, that output is used as an input to the next layer and so on until you get the final output. This is an inherent serial step in the process. Generating an output for each neuron within THE SAME layer is trivially paralelisable. $\endgroup$
    – A_A
    Commented Sep 23, 2016 at 11:08

1 Answer 1

1
$\begingroup$

The question has multi-fold answers:

First, you can simply crop the image 4 times and then pass them to the network. To parallelize you can use OpenMP. Of course the size of the input layer should match the size of the cropped patch. And just make sure your network doesn't use global variables.

Next, I don't think it's a good idea to divide the image into parts. Another approach would be to adjust the network connections such that different parts are not connected in the first layers, but accommodate the information in the deeper ones. In short, the desired way should be encoded into the network, rather than some ad-hoc external procedures. This way your network can be trained end-to-end.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.