Skip to content

Commit

Permalink
update github url
Browse files Browse the repository at this point in the history
  • Loading branch information
chrischoy committed Jul 9, 2020
1 parent 93297b5 commit 423f526
Show file tree
Hide file tree
Showing 20 changed files with 120 additions and 94 deletions.
6 changes: 3 additions & 3 deletions MinkowskiEngine/SparseTensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class SparseTensorQuantizationMode(Enum):

_sparse_tensor_operation_mode = SparseTensorOperationMode.SEPARATE_COORDS_MANAGER
_global_coords_man = None
COORDS_MAN_DIFFERENT_ERROR = "SparseTensors must share the same coordinate manager for this operation. Please refer to the SparseTensor creation API (https://stanfordvl.github.io/MinkowskiEngine/sparse_tensor.html) to share the coordinate manager, or set the sparse tensor operation mode with `set_sparse_tensor_operation_mode` to share it by default."
COORDS_MAN_DIFFERENT_ERROR = "SparseTensors must share the same coordinate manager for this operation. Please refer to the SparseTensor creation API (https://nvidia.github.io/MinkowskiEngine/sparse_tensor.html) to share the coordinate manager, or set the sparse tensor operation mode with `set_sparse_tensor_operation_mode` to share it by default."
COORDS_KEY_DIFFERENT_ERROR = "SparseTensors must have the same coords_key."


Expand Down Expand Up @@ -116,7 +116,7 @@ class SparseTensor():
The :attr:`SparseTensor` class is the basic tensor in MinkowskiEngine. For
the definition of a sparse tensor, please visit `the terminology page
<https://stanfordvl.github.io/MinkowskiEngine/terminology.html#sparse-tensor>`_.
<https://nvidia.github.io/MinkowskiEngine/terminology.html#sparse-tensor>`_.
We use the COOrdinate (COO) format to save a sparse tensor `[1]
<http://groups.csail.mit.edu/commit/papers/2016/parker-thesis.pdf>`_. This
representation is simply a concatenation of coordinates in a matrix
Expand Down Expand Up @@ -216,7 +216,7 @@ def __init__(
`allow_duplicate_coords=True` is not recommended as it could hide
obvious errors in your data loading and preprocessing steps. Please
refer to the quantization and data loading tutorial on `here
<https://stanfordvl.github.io/MinkowskiEngine/demo/training.html>`_
<https://nvidia.github.io/MinkowskiEngine/demo/training.html>`_
for more details.
:attr:`quantizatino_mode`
Expand Down
6 changes: 3 additions & 3 deletions MinkowskiEngine/utils/collation.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def batched_coordinates(coords):

def sparse_collate(coords, feats, labels=None):
r"""Create input arguments for a sparse tensor `the documentation
<https://stanfordvl.github.io/MinkowskiEngine/sparse_tensor.html>`_.
<https://nvidia.github.io/MinkowskiEngine/sparse_tensor.html>`_.
Convert a set of coordinates and features into the batch coordinates and
batch features.
Expand Down Expand Up @@ -160,7 +160,7 @@ def batch_sparse_collate(data):
`torch.utils.data.DataLoader` to generate inputs for a sparse tensor.
Please refer to `the training example
<https://stanfordvl.github.io/MinkowskiEngine/demo/training.html>`_ for the
<https://nvidia.github.io/MinkowskiEngine/demo/training.html>`_ for the
usage.
Args:
Expand All @@ -174,7 +174,7 @@ class SparseCollation:
r"""Generates collate function for coords, feats, labels.
Please refer to `the training example
<https://stanfordvl.github.io/MinkowskiEngine/demo/training.html>`_ for the
<https://nvidia.github.io/MinkowskiEngine/demo/training.html>`_ for the
usage.
Args:
Expand Down
75 changes: 44 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,19 @@

[![PyPI Version][pypi-image]][pypi-url] [![Join the chat at https://gitter.im/MinkowskiEngineGitter/general](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/MinkowskiEngineGitter/general)

The Minkowski Engine is an auto-differentiation library for sparse tensors. It supports all standard neural network layers such as convolution, pooling, unpooling, and broadcasting operations for sparse tensors. For more information, please visit [the documentation page](http://stanfordvl.github.io/MinkowskiEngine/overview.html).
The Minkowski Engine is an auto-differentiation library for sparse tensors. It supports all standard neural network layers such as convolution, pooling, unpooling, and broadcasting operations for sparse tensors. For more information, please visit [the documentation page](http://nvidia.github.io/MinkowskiEngine/overview.html).

## Example Networks

The Minkowski Engine supports various functions that can be built on a sparse tensor. We list a few popular network architectures and applications here. To run the examples, please install the package and run the command in the package root directory.

| Examples | Networks and Commands |
|:---------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Semantic Segmentation | <img src="https://stanfordvl.github.io/MinkowskiEngine/_images/segmentation_3d_net.png"> <br /> <img src="https://stanfordvl.github.io/MinkowskiEngine/_images/segmentation.png" width="256"> <br /> `python -m examples.indoor` |
| Classification | ![](https://stanfordvl.github.io/MinkowskiEngine/_images/classification_3d_net.png) <br /> `python -m examples.modelnet40` |
| Reconstruction | <img src="https://stanfordvl.github.io/MinkowskiEngine/_images/generative_3d_net.png"> <br /> <img src="https://stanfordvl.github.io/MinkowskiEngine/_images/generative_3d_results.gif" width="256"> <br /> `python -m examples.reconstruction` |
| Completion | <img src="https://stanfordvl.github.io/MinkowskiEngine/_images/completion_3d_net.png"> <br /> `python -m examples.completion` |
| Semantic Segmentation | <img src="https://nvidia.github.io/MinkowskiEngine/_images/segmentation_3d_net.png"> <br /> <img src="https://nvidia.github.io/MinkowskiEngine/_images/segmentation.png" width="256"> <br /> `python -m examples.indoor` |
| Classification | ![](https://nvidia.github.io/MinkowskiEngine/_images/classification_3d_net.png) <br /> `python -m examples.modelnet40` |
| Reconstruction | <img src="https://nvidia.github.io/MinkowskiEngine/_images/generative_3d_net.png"> <br /> <img src="https://nvidia.github.io/MinkowskiEngine/_images/generative_3d_results.gif" width="256"> <br /> `python -m examples.reconstruction` |
| Completion | <img src="https://nvidia.github.io/MinkowskiEngine/_images/completion_3d_net.png"> <br /> `python -m examples.completion` |
| Detection | <img src="https://nvidia.github.io/MinkowskiEngine/_images/detection_3d_net.png"> |


## Sparse Tensor Networks: Neural Networks for Spatially Sparse Tensors
Expand All @@ -25,11 +26,11 @@ Compressing a neural network to speedup inference and minimize memory footprint

However, in this work, we focus on [*spatially* sparse data](https://arxiv.org/abs/1409.6070), in particular, spatially sparse high-dimensional inputs. We can also represent these data as sparse tensors, and these sparse tensors are commonplace in high-dimensional problems such as 3D perception, registration, and statistical data. We define neural networks specialized for these inputs as *sparse tensor networks* and these sparse tensor networks process and generate sparse tensors as outputs. To construct a sparse tensor network, we build all standard neural network layers such as MLPs, non-linearities, convolution, normalizations, pooling operations as the same way we define them on a dense tensor and implemented in the Minkowski Engine.

We visualized a sparse tensor network operation on a sparse tensor, convolution, below. The convolution layer on a sparse tensor works similarly to that on a dense tensor. However, on a sparse tensor, we compute convolution outputs on a few specified points which we can control in the [generalized convolution](https://stanfordvl.github.io/MinkowskiEngine/sparse_tensor_network.html). For more information, please visit [the documentation page on sparse tensor networks](https://stanfordvl.github.io/MinkowskiEngine/sparse_tensor_network.html) and [the terminology page](https://stanfordvl.github.io/MinkowskiEngine/terminology.html).
We visualized a sparse tensor network operation on a sparse tensor, convolution, below. The convolution layer on a sparse tensor works similarly to that on a dense tensor. However, on a sparse tensor, we compute convolution outputs on a few specified points which we can control in the [generalized convolution](https://nvidia.github.io/MinkowskiEngine/sparse_tensor_network.html). For more information, please visit [the documentation page on sparse tensor networks](https://nvidia.github.io/MinkowskiEngine/sparse_tensor_network.html) and [the terminology page](https://nvidia.github.io/MinkowskiEngine/terminology.html).

| Dense Tensor | Sparse Tensor |
|:-------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------:|
| <img src="https://stanfordvl.github.io/MinkowskiEngine/_images/conv_dense.gif"> | <img src="https://stanfordvl.github.io/MinkowskiEngine/_images/conv_sparse.gif" > |
| Dense Tensor | Sparse Tensor |
|:---------------------------------------------------------------------------:|:----------------------------------------------------------------------------:|
| <img src="https://nvidia.github.io/MinkowskiEngine/_images/conv_dense.gif"> | <img src="https://nvidia.github.io/MinkowskiEngine/_images/conv_sparse.gif"> |

--------------------------------------------------------------------------------

Expand All @@ -48,16 +49,16 @@ We visualized a sparse tensor network operation on a sparse tensor, convolution,
## Requirements

- Ubuntu 14.04 or higher
- CUDA 10.1.243 or higher
- CUDA 10.1.243 or higher (CUDA 11 not supported yet)
- pytorch 1.5 or higher
- python 3.6 or higher
- GCC 7 or higher


## Installation

You can install the Minkowski Engine with `pip`, with anaconda, or on the system directly. If you experience issues installing the package, please checkout the [the installation wiki page](https://github.com/StanfordVL/MinkowskiEngine/wiki/Installation).
If you cannot find a relevant problem, please report the issue on [the github issue page](https://github.com/StanfordVL/MinkowskiEngine/issues).
You can install the Minkowski Engine with `pip`, with anaconda, or on the system directly. If you experience issues installing the package, please checkout the [the installation wiki page](https://github.com/NVIDIA/MinkowskiEngine/wiki/Installation).
If you cannot find a relevant problem, please report the issue on [the github issue page](https://github.com/NVIDIA/MinkowskiEngine/issues).

### Pip

Expand All @@ -66,16 +67,27 @@ First, install pytorch following the [instruction](https://pytorch.org). Next, i

```
sudo apt install libopenblas-dev
pip3 install torch
pip3 install -U MinkowskiEngine -v
pip install torch
pip install -U MinkowskiEngine --install-option="--blas=openblas" -v
```

### Pip from the latest source

```
sudo apt install libopenblas-dev
pip3 install torch
pip3 install -U -I git+https://github.com/StanfordVL/MinkowskiEngine -v
pip install torch
export CXX=g++-7
# Uncomment some options if things don't work
pip install -U git+https://github.com/NVIDIA/MinkowskiEngine \
# \ # uncomment the following line if you want to force cuda installation
# --install-option="--force_cuda" \
# \ # uncomment the following line if you want to force no cuda installation. force_cuda supercedes cpu_only
# --install-option="--cpu_only" \
# \ # uncomment the following line when torch fails to find cuda_home.
# --install-option="--cuda_home=/usr/local/cuda" \
# \ # uncomment the following line to override to openblas, atlas, mkl, blas
# --install-option="--blas=openblas" \
```

### Anaconda
Expand All @@ -90,17 +102,17 @@ First, follow [the anaconda documentation](https://docs.anaconda.com/anaconda/in
```
conda create -n py3-mink python=3.7
conda activate py3-mink
conda install numpy mkl-include
conda install pytorch -c pytorch
conda install numpy mkl-include pytorch cudatoolkit=10.2 -c pytorch
```

#### 2. Compilation and installation

```
conda activate py3-mink
git clone https://github.com/StanfordVL/MinkowskiEngine.git
git clone https://github.com/NVIDIA/MinkowskiEngine.git
cd MinkowskiEngine
python setup.py install
# use openblas instead of mkl if things don't work
python setup.py install --install-option="--blas=mkl"
```


Expand All @@ -118,7 +130,7 @@ curl https://bootstrap.pypa.io/get-pip.py | python3
# Get pip and install python requirements
python3 -m pip install torch numpy
git clone https://github.com/StanfordVL/MinkowskiEngine.git
git clone https://github.com/NVIDIA/MinkowskiEngine.git
cd MinkowskiEngine
Expand All @@ -128,7 +140,7 @@ python setup.py install

## CPU only build and BLAS configuration (MKL)

The Minkowski Engine supports CPU only build on other platforms that do not have NVidia GPUs. Please refer to [quick start](https://stanfordvl.github.io/MinkowskiEngine/quick_start.html) for more details.
The Minkowski Engine supports CPU only build on other platforms that do not have NVidia GPUs. Please refer to [quick start](https://nvidia.github.io/MinkowskiEngine/quick_start.html) for more details.


## Quick Start
Expand Down Expand Up @@ -202,11 +214,11 @@ class ExampleNetwork(ME.MinkowskiNetwork):

For discussion and questions, please use `minkowskiengine@googlegroups.com`.
For API and general usage, please refer to the [MinkowskiEngine documentation
page](http://stanfordvl.github.io/MinkowskiEngine/) for more detail.
page](http://nvidia.github.io/MinkowskiEngine/) for more detail.

For issues not listed on the API and feature requests, feel free to submit
an issue on the [github issue
page](https://github.com/StanfordVL/MinkowskiEngine/issues).
page](https://github.com/NVIDIA/MinkowskiEngine/issues).

## Known Issues

Expand Down Expand Up @@ -238,12 +250,13 @@ If you use the Minkowski Engine, please cite:

## Projects using Minkowski Engine

Please feel free to update [the wiki page](https://github.com/StanfordVL/MinkowskiEngine/wiki/Usage) to add your projects!
Please feel free to update [the wiki page](https://github.com/NVIDIA/MinkowskiEngine/wiki/Usage) to add your projects!

- [A full list of projects using MinkowskiEngine](https://github.com/StanfordVL/MinkowskiEngine/wiki/Usage)
- [Projects using MinkowskiEngine](https://github.com/NVIDIA/MinkowskiEngine/wiki/Usage)

- [3D and 4D Spatio-Temporal Semantic Segmentation, CVPR'19](https://github.com/chrischoy/SpatioTemporalSegmentation)
- [Fully Convolutional Geometric Features, ICCV'19](https://github.com/chrischoy/FCGF)
- [Learning multiview 3D point cloud registration, CVPR'20](https://arxiv.org/abs/2001.05119)
- [Deep Global Registration, CVPR'20](https://arxiv.org/abs/2004.11540)
- [High-Dimensional Convolutional Networks for Geometric Pattern Recognition, CVPR'20](https://arxiv.org/abs/2005.08144)
- Segmentation: [3D and 4D Spatio-Temporal Semantic Segmentation, CVPR'19](https://github.com/chrischoy/SpatioTemporalSegmentation)
- Representation Learning: [Fully Convolutional Geometric Features, ICCV'19](https://github.com/chrischoy/FCGF)
- 3D Registration: [Learning multiview 3D point cloud registration, CVPR'20](https://arxiv.org/abs/2001.05119)
- 3D Registration: [Deep Global Registration, CVPR'20](https://arxiv.org/abs/2004.11540)
- Pattern Recognition: [High-Dimensional Convolutional Networks for Geometric Pattern Recognition, CVPR'20](https://arxiv.org/abs/2005.08144)
- Detection: [Generative Sparse Detection Networks for 3D Single-shot Object Detection, ECCV'20](https://arxiv.org/abs/2006.12356)
2 changes: 1 addition & 1 deletion docs/_templates/layout.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{% extends '!layout.html' %}
{% block document %}
{{super()}}
<a href="https://github.com/StanfordVL/MinkowskiEngine">
<a href="https://github.com/NVIDIA/MinkowskiEngine">
<img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub">
</a>
<!-- Global site tag (gtag.js) - Google Analytics -->
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
version = ME.__version__
# The full version, including alpha/beta/rc tags
release = ME.__version__
github_doc_root = 'https://github.com/StanfordVL/MinkowskiEngine'
github_doc_root = 'https://github.com/NVIDIA/MinkowskiEngine'

# -- General configuration ---------------------------------------------------

Expand Down Expand Up @@ -90,7 +90,7 @@
# documentation.
#
# html_theme_options = {
# 'github_user': 'StanfordVL',
# 'github_user': 'NVIDIA',
# 'github_repo': 'MinkowskiEngine',
# 'github_banner': True
# }
Expand Down
2 changes: 1 addition & 1 deletion docs/demo/interop.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,5 @@ accessing the features of the sparse tensor
loss = criterion(out_feats, label)
Please refer to `examples/example.py
<https://github.com/StanfordVL/MinkowskiEngine/blob/master/examples/example.py>`_
<https://github.com/NVIDIA/MinkowskiEngine/blob/master/examples/example.py>`_
for the complete demo.
4 changes: 2 additions & 2 deletions docs/demo/modelnet40_classification.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ more layers.
.. image:: ../images/classification_3d_net.png

Before we proceed, please go over `the training and data loading tutorial
<https://stanfordvl.github.io/MinkowskiEngine/demo/training.html>`_ first.
<https://nvidia.github.io/MinkowskiEngine/demo/training.html>`_ first.


Making a ModelNet40 data loader
Expand Down Expand Up @@ -193,7 +193,7 @@ When you assemble all the code blocks, you can run your own ModelNet40 classific
The entire code can be found at `example/modelnet40.py
<https://github.com/StanfordVL/MinkowskiEngine/blob/master/examples/modelnet40.py>`_.
<https://github.com/NVIDIA/MinkowskiEngine/blob/master/examples/modelnet40.py>`_.

.. warning::

Expand Down
2 changes: 1 addition & 1 deletion docs/demo/multigpu.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Gathering all losses to the target device.
loss = parallel.gather(losses, target_device, dim=0).mean()
```

The rest of the training such as backward, and taking a step in an optimizer is similar to single-GPU training. Please refer to the [complete multi-gpu example](https://github.com/StanfordVL/MinkowskiEngine/blob/master/examples/multigpu.py) for more detail.
The rest of the training such as backward, and taking a step in an optimizer is similar to single-GPU training. Please refer to the [complete multi-gpu example](https://github.com/NVIDIA/MinkowskiEngine/blob/master/examples/multigpu.py) for more detail.


Speedup Experiments
Expand Down
2 changes: 1 addition & 1 deletion docs/demo/pointnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ to define
2. Convolutions with kernel size > 1.
3. Convolutions with stride > 1.

Please refer to the [complete pointnet example](https://github.com/StanfordVL/MinkowskiEngine/blob/master/examples/pointnet.py) for more detail.
Please refer to the [complete pointnet example](https://github.com/NVIDIA/MinkowskiEngine/blob/master/examples/pointnet.py) for more detail.
2 changes: 1 addition & 1 deletion docs/demo/segmentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,5 @@ weights are currently the top-ranking algorithm on the `Scannet 3D segmentation
benchmark <http://kaldir.vc.in.tum.de/scannet_benchmark/>`_.

Please refer to the `complete indoor segmentation example
<https://github.com/StanfordVL/MinkowskiEngine/blob/master/examples/indoor.py>`_
<https://github.com/NVIDIA/MinkowskiEngine/blob/master/examples/indoor.py>`_
for more detail.
Loading

0 comments on commit 423f526

Please sign in to comment.