Commit 875a43fd authored by Benjamin Thomas Graham's avatar Benjamin Thomas Graham
Browse files

Integer division trunc mode

parent 7cef0ed8
...@@ -29,7 +29,7 @@ class AveragePooling(Module): ...@@ -29,7 +29,7 @@ class AveragePooling(Module):
output = SparseConvNetTensor() output = SparseConvNetTensor()
output.metadata = input.metadata output.metadata = input.metadata
output.spatial_size = ( output.spatial_size = (
input.spatial_size - self.pool_size) // self.pool_stride + 1 input.spatial_size - self.pool_size).div(self.pool_stride, rounding_mode='trunc') + 1
assert ((output.spatial_size - 1) * self.pool_stride + assert ((output.spatial_size - 1) * self.pool_stride +
self.pool_size == input.spatial_size).all() self.pool_size == input.spatial_size).all()
output.features = AveragePoolingFunction.apply( output.features = AveragePoolingFunction.apply(
......
...@@ -32,8 +32,8 @@ class Convolution(Module): ...@@ -32,8 +32,8 @@ class Convolution(Module):
assert input.features.nelement() == 0 or input.features.size(1) == self.nIn assert input.features.nelement() == 0 or input.features.size(1) == self.nIn
output = SparseConvNetTensor() output = SparseConvNetTensor()
output.metadata = input.metadata output.metadata = input.metadata
output.spatial_size =\ output.spatial_size = (input.spatial_size - self.filter_size).div(
(input.spatial_size - self.filter_size) // self.filter_stride + 1 self.filter_stride, rounding_mode='trunc') + 1
assert ((output.spatial_size - 1) * self.filter_stride + assert ((output.spatial_size - 1) * self.filter_stride +
self.filter_size == input.spatial_size).all(), (input.spatial_size,output.spatial_size,self.filter_size,self.filter_stride) self.filter_size == input.spatial_size).all(), (input.spatial_size,output.spatial_size,self.filter_size,self.filter_stride)
output.features = ConvolutionFunction.apply( output.features = ConvolutionFunction.apply(
......
...@@ -80,7 +80,7 @@ class MaxPooling(Module): ...@@ -80,7 +80,7 @@ class MaxPooling(Module):
output = SparseConvNetTensor() output = SparseConvNetTensor()
output.metadata = input.metadata output.metadata = input.metadata
output.spatial_size = ( output.spatial_size = (
input.spatial_size - self.pool_size) // self.pool_stride + 1 input.spatial_size - self.pool_size).div(self.pool_stride, rounding_mode='trunc') + 1
assert ((output.spatial_size - 1) * self.pool_stride + assert ((output.spatial_size - 1) * self.pool_stride +
self.pool_size == input.spatial_size).all() self.pool_size == input.spatial_size).all()
output.features = MaxPoolingFunction.apply( output.features = MaxPoolingFunction.apply(
......
...@@ -44,7 +44,7 @@ class RandomizedStrideConvolution(Module): ...@@ -44,7 +44,7 @@ class RandomizedStrideConvolution(Module):
output = SparseConvNetTensor() output = SparseConvNetTensor()
output.metadata = input.metadata output.metadata = input.metadata
output.spatial_size =\ output.spatial_size =\
(input.spatial_size - self.filter_size) // self.filter_stride + 1 (input.spatial_size - self.filter_size).div(self.filter_stride, rounding_mode='trunc') + 1
assert ((output.spatial_size - 1) * self.filter_stride + assert ((output.spatial_size - 1) * self.filter_stride +
self.filter_size == input.spatial_size).all() self.filter_size == input.spatial_size).all()
output.features = (RandomizedStrideConvolutionFunction if self.training else ConvolutionFunction).apply( output.features = (RandomizedStrideConvolutionFunction if self.training else ConvolutionFunction).apply(
......
...@@ -80,7 +80,7 @@ class RandomizedStrideMaxPooling(Module): ...@@ -80,7 +80,7 @@ class RandomizedStrideMaxPooling(Module):
output = SparseConvNetTensor() output = SparseConvNetTensor()
output.metadata = input.metadata output.metadata = input.metadata
output.spatial_size = ( output.spatial_size = (
input.spatial_size - self.pool_size) // self.pool_stride + 1 input.spatial_size - self.pool_size).div(self.pool_stride, rounding_mode='trunc') + 1
assert ((output.spatial_size - 1) * self.pool_stride + assert ((output.spatial_size - 1) * self.pool_stride +
self.pool_size == input.spatial_size).all() self.pool_size == input.spatial_size).all()
output.features = (RandomizedStrideMaxPoolingFunction if self.training else MaxPoolingFunction).apply( output.features = (RandomizedStrideMaxPoolingFunction if self.training else MaxPoolingFunction).apply(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment