Repository: LAMDA-NJU/Deep-Forest (language: python)

Issue:
Is it possible to support the Arm processor? 
Currently, there are a lot of devices that are running on Arm processors. Thus, supporting the Arm processor is a good idea to allow the deep forest to have much wider application prospects.
![image](https://user-images.githubusercontent.com/18747119/109615489-eb588c80-7b6e-11eb-83d6-828406f7d548.png)



Discussion / hints:
Hi @zhenlingcn, this should be easy to implement. Could you provide the name of your platform on cibuildwheels https://cibuildwheel.readthedocs.io/en/stable/?
manylinux aarch64

Fix patch:
diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml
index f60f191..5b720c2 100644
--- a/.github/workflows/build-wheels.yml
+++ b/.github/workflows/build-wheels.yml
@@ -13,19 +13,25 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-latest, windows-latest, macos-latest]
-        python-version: [3.6, 3.7, 3.8]
     steps:
       - uses: actions/checkout@v2
-      - name: Set up Python
-        uses: actions/setup-python@v2
+
+      - name: Set up QEMU
+        if: runner.os == 'Linux'
+        uses: docker/setup-qemu-action@v1
         with:
-          python-version: ${{ matrix.python-version }}
+          platforms: all
+
       - name: Build wheels
         uses: joerick/cibuildwheel@v1.9.0
         with:
           output-dir: wheelhouse
         env:
-          CIBW_BUILD: "cp36-manylinux_x86_64 cp37-manylinux_x86_64 cp38-manylinux_x86_64 cp36-win_amd64 cp37-win_amd64 cp38-win_amd64 cp36-macosx_x86_64 cp37-macosx_x86_64 cp38-macosx_x86_64"
+          CIBW_ARCHS_LINUX: "x86_64 aarch64"
+          CIBW_ARCHS_WINDOWS: "AMD64"
+          CIBW_ARCHS_MACOS: "x86_64"
+          CIBW_BUILD: "cp36-manylinux_x86_64 cp37-manylinux_x86_64 cp38-manylinux_x86_64 cp36-win_amd64 cp37-win_amd64 cp38-win_amd64 cp36-macosx_x86_64 cp37-macosx_x86_64 cp38-macosx_x86_64 cp36-manylinux_aarch64 cp37-manylinux_aarch64 cp38-manylinux_aarch64"
+
       - name: Store artifacts
         uses: actions/upload-artifact@v2
         with:
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 87dfe11..387dfc6 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -30,6 +30,7 @@ Version 0.1.*
 .. |Fix| replace:: :raw-html:`<span class="badge badge-danger">Fix</span>` :raw-latex:`{\small\sc [Fix]}`
 .. |API| replace:: :raw-html:`<span class="badge badge-warning">API Change</span>` :raw-latex:`{\small\sc [API Change]}`
 
+- |Feature| add official support for ManyLinux-aarch64 (`#47 <https://github.com/LAMDA-NJU/Deep-Forest/pull/47>`__) @xuyxu
 - |Fix| fix accepted types of target for :obj:`CascadeForestRegressor` (`#44 <https://github.com/LAMDA-NJU/Deep-Forest/pull/44>`__) @xuyxu
 - |Feature| add multi-output support for :obj:`CascadeForestRegressor` (`#40 <https://github.com/LAMDA-NJU/Deep-Forest/pull/40>`__) @Alex-Medium
 - |Feature| add layer-wise feature importances (`#39 <https://github.com/LAMDA-NJU/Deep-Forest/pull/39>`__) @xuyxu


Test patch:
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index df8e963..1e11b29 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -11,7 +11,7 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [ubuntu-latest, windows-latest]
+        os: [ubuntu-latest, windows-latest, macos-latest]
         python-version: [3.6, 3.7, 3.8]
     steps:
     - uses: actions/checkout@v2
@@ -21,6 +21,9 @@ jobs:
         python-version: ${{ matrix.python-version }}
     - name: Display python version
       run: python -c "import sys; print(sys.version)"
+    - name: Install libomp for Mac-OS
+      if: runner.os == 'macOS'
+      run: brew install libomp
     - name: Install package dependencies
       run: |
         python -m pip install --upgrade pip
diff --git a/.github/workflows/mac-os-build-and-test.yml b/.github/workflows/mac-os-build-and-test.yml
deleted file mode 100644
index 3914850..0000000
--- a/.github/workflows/mac-os-build-and-test.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: DeepForest-CI-MacOS
-
-on:
-  push:
-    branches: [ master ]
-  pull_request:
-    branches: [ master ]
-
-jobs:
-  build:
-    runs-on: ${{ matrix.os }}
-    strategy:
-      matrix:
-        os: [macos-latest]
-        python-version: [3.6, 3.7, 3.8]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Set up Python
-      uses: actions/setup-python@v2
-      with:
-        python-version: ${{ matrix.python-version }}
-    - name: Display python version
-      run: python -c "import sys; print(sys.version)"
-    - name: Install OS packages
-      run: brew install libomp
-    - name: Install package dependencies
-      run: |
-        python -m pip install --upgrade pip
-        pip install -r build_tools/requirements.txt
-    - name: Install
-      run: pip install --verbose --editable .
-    - name: Run tests
-      run: |
-        pytest ./tests --cov-config=.coveragerc --cov-report=xml --cov=deepforest deepforest
-    - name: Publish code coverage
-      uses: codecov/codecov-action@v1
-      with:
-        token: ${{ secrets.CODECOV_TOKEN }}
-        file: ./coverage.xml