% findsize
dim.bottom = [7 9 9];
dim.data  = [64 244 248];

%3D U-Net Architecture
scalefun   = @(x) deal([(((((((x(1)+4)*2)+4)*2)+4)*2)+4) (((((((x(2)+4)*2)+4)*2)+4)*2)+4) (((((((x(3)+4)*2)+4)*2)+4)*2)+4)], ...
    [((((((x(1)*2)-4)*2)-4)*2)-4) ((((((x(2)*2)-4)*2)-4)*2)-4) ((((((x(3)*2)-4)*2)-4)*2)-4)]);

[dim.input dim.output] = scalefun(dim.bottom);
dim.tiles = ceil(dim.data(1:3)./dim.output);
dim.min_offset = -[(dim.input(1)-dim.output(1))/2 ...
               (dim.input(2)-dim.output(2))/2 ...
               (dim.input(3)-dim.output(3))/2];
dim.max_offset = dim.data(1:3)+dim.min_offset-dim.output;
dim