niftynet.layer.resampler module¶
Resampler layer initially implemented in https://github.com/niftk/NiftyNet/blob/v0.2.0.post1/niftynet/layer/spatial_transformer.py
-
class
ResamplerLayer(interpolation='LINEAR', boundary='REPLICATE', name='resampler')[source]¶ Bases:
niftynet.layer.base_layer.Layerresample inputs according to
sample_coords-
layer_op(inputs, sample_coords)[source]¶ This layer resamples 2D or 3D data given the coordinates.
In terms of 3D inputs,
when the shape of
inputsis[batch, x, y, z, num_channels], the shape ofsample_coordscan be[1, d0, d1, ..., 3]or[batch, d0, d1, ..., 3].The output shape would be
[batch, d0, d1, ..., num_channels].Similarly, in 2D,
when the shape of
inputsis[batch, x, y, num_channels], the shape ofsample_coordscan be[1, d0, d1, ..., 2]or[batch, d0, d1, ..., 2].The output shape would be
[batch, d0, d1, ... num_channels](If the shape of
inputsis not fully specified,sample_coordsmust be checked before using this function, to make sure the coordinates are pointing to locations within the inputs.)(Resampling 2D inputs is implemented by calling
tf.contrib.resampler.resampler. The interpretaion of coordinates is different in between this function andtf.contrib.resampler.resampler: usingself.layer_op(inputs, sample_coords)for 2D data is equivalent to (apart from the batch size broadcasting feature):tf.contrib.resampler.resampler( tf.transpose(inputs, [0, 2, 1, 3]), sample_coords)
- (No gradient is computed for
NEARESTmethod, and - some of the padding modes.)
- (No gradient is computed for
-