What is element-wise max pooling? I came across this term in the VoxelNet paper  in relation to point cloud based object detection using machine learning. It is mentioned in figures 2&3 and in 2.2.1 
I am familiar with 2d max pooling, but this is alien to me and am struggling to find any useful information on it. After discussion with a colleague we think it may be as follows but would be grateful for a good reference/explanation: From a vector Y of vectors (y1..yk) the output z would be a vector of max values for each vector in Y:
Y   |   y1    |   y2    |   y3    |   y4    |   yk    |
    | ------- | ------- | ------- | ------- | ------- |
z   | max(y1) | max(y2) | max(y3) | max(y4) | max(yk) |

 A: In the paper you reference, they do the following:


*

*Assign lidar points to voxels, such that each voxel contains several points.

*Augment the point representation by stacking the offset from the voxel centroid to the original representation (denoted $\hat p$ in the text).

*Pass each point belonging to a voxel $\hat p_i$ through a neural net, getting some $m$-dimensional representation $f_i$ of that point.

*Compute the maximum of each dimension over all points $f_i$ belonging to the same voxel, getting $m$-dimensional vector $\tilde f$ representing the voxel.


In terms of programming, you would have vectors $f_i$ in an array f of shape (n_points_in_voxel, m) and compute np.max(f, axis=0).
A: It's a particular case of 1D max pooling where the pool size and stride are the same as the length of each y_i where 1 <= i <= k.
Unfortunately there doesn't seem to be many implementations or definitions of this to use as reference. At least in here they define it as you are using it. Here how the issuer defined element-wise max pooling, loosely:

Given the vector of vectors Y=y_1,...,y_k, the result would be a
  vector z where the kth element in z would be the maximum of the kth
  elements in Y.

