ELEKTRONN / ELEKTRONN2

A highly configurable toolkit for training 3D/2D CNNs and general Neural Networks, based on Theano
Other
7 stars 8 forks source link

Documentation : How is img-img performed #11

Closed yizziy closed 6 years ago

yizziy commented 7 years ago

What is electronn2's img-img mode based on?

As the feature list includes up-conv , I suppose it is based on this paper : Fully Convolutional Networks for Semantic Segmentation , is that correct ?

For scientific research it might be useful to get the connection between techniques used by electronn and the corresponding paper and reference to it in the documentary.

mdraw commented 7 years ago

The img-img mode is just the general way image-to-image convolutional neural networks work. These have been discussed and improved in hundreds of different publications and our implementation uses techniques from many different papers. ELEKTRONN2 is more of a toolkit that can be used to implement and test many different neural network architectures. It is not limited to any single approach of one paper. (Actually, the notion of "modes" comes from the predecessor ELEKTRONN 1.0, where those modes had to be explicitly chosen. In network configs for ELEKTRONN2's, the "mode" is not explicitly stated.)

As noted in the documentation, the UpConv operation is based on the idea of transposed convolution: http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html#transposed-convolution-arithmetic. Terminology is pretty confusing here, because the terms "transposed convolution", "upconvolution" and "deconvolution" are (sometimes wrongly) used by other researchers for the same idea. @xeray implemented this operation to make it possible to design networks similar to U-Net in ELEKTRONN2: multiple network branches operate on different image scales and the smaller-scale outputs are "up-convoluted" to combine them with larger-scale branches. An example implementation of a similar network can be found in the unet_3d.py example file in this repo.

I definitely agree that we should always link to references when possible in the documentation. I am working on this.