You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1.9 KiB

Installation

  1. Prepare a python environment, e.g.:
$ conda create -n spark python=3.8 -y
$ conda activate spark
  1. Install PyTorch and timm (better to use torch~=1.10, torchvision~=0.11, and timm==0.5.4) then other python packages:
$ pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
$ pip install timm==0.5.4
$ pip install -r requirements.txt

It is highly recommended to install these versions to ensure a consistent environment for re-implementation.

  1. Prepare the ImageNet-1k dataset

    • assume the dataset is in /path/to/imagenet
    • check the file path, it should look like this:
    /path/to/imagenet/:
        train/:
            class1: 
                a_lot_images.jpeg
            class2:
                a_lot_images.jpeg
        val/:
            class1:
                a_lot_images.jpeg
            class2:
                a_lot_images.jpeg
    
    • that argument of --data_path=/path/to/imagenet should be passed to the training script introduced later
  2. (Optional) Install this sparse convolution library:

$ git clone https://github.com/facebookresearch/SparseConvNet.git && cd SparseConvNet
$ rm -rf build/ dist/ sparseconvnet.egg-info sparseconvnet_SCN*.so
$ python3 setup.py develop --user

Tips: In our default implementation, we use pytorch builtin operators to simulate the submanifold sparse convolution in encoder.py for generality, due to the fact that many convolution operators (e.g., grouped conv and dilated conv) do not yet have efficient sparse implementations on today's hardware. If you would like to use the true sparse convolution installed above, please pass --sparse_conv=1 to the training script, but it would be much slower.