@Mvystrcilova, @pollytur
For the Basic3dCore and Factorized3dCore in 3dcores.py the parameter final_nonlin has no effect if the core has more than 1 layer the reason for this is a if statement that is aways true in the loop that defines all layers after the first one.
In the for loop defined here the variable l takes values from 0 to number of layers - 2 and the condition a few lines after (line 183) compares l to self.layers. The result of this comparison is aways True by definition for l. The same holds for the for loop defined here and if condition here (line 430)