diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-05 08:43:43 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 08:43:43 +0000 |
commit | b7d81378990c636f7bf537bb954071d8399cf6fc (patch) | |
tree | 4bd9f2af94a192b298e3e69a79f7db56fa9c8c23 | |
parent | e5120151378aae744e2c921e9c8d1ab3d3890065 (diff) |
automatic import of python-dpmmpython-traxopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-dpmmpython-trax.spec | 361 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 363 insertions, 0 deletions
@@ -0,0 +1 @@ +/dpmmpython_trax-0.1.5.tar.gz diff --git a/python-dpmmpython-trax.spec b/python-dpmmpython-trax.spec new file mode 100644 index 0000000..f9b39bf --- /dev/null +++ b/python-dpmmpython-trax.spec @@ -0,0 +1,361 @@ +%global _empty_manifest_terminate_build 0 +Name: python-dpmmpython-trax +Version: 0.1.5 +Release: 1 +Summary: Python wrapper for DPMMSubClusters julia package +License: MIT +URL: https://github.com/dinarior/dpmmpython_trax +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/95/55/34b8dd6097c6c466d6b71f07a556bcbe997bb49a74b5e38424b211c4ba3d/dpmmpython_trax-0.1.5.tar.gz +BuildArch: noarch + +Requires: python3-julia +Requires: python3-wget +Requires: python3-numpy +Requires: python3-numpy +Requires: python3-ipython +Requires: python3-pytest +Requires: python3-mock + +%description +<br> +<p align="center"> +<img src="https://www.cs.bgu.ac.il/~dinari/images/clusters_low_slow.gif" alt="DPGMM SubClusters 2d example"> +</p> + +## DPMMSubClusters + +This package is a Python wrapper for the [DPMMSubClusters.jl](https://github.com/BGU-CS-VIL/DPMMSubClusters.jl) Julia package.<br> + +### Motivation + +Working on a subset of 100K images from ImageNet, containing 79 classes, we have created embeddings using [SWAV](https://github.com/facebookresearch/swav), and reduced the dimension to 128 using PCA. We have compared our method with the popular scikit-learn [GMM](https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html) and [DPGMM](https://scikit-learn.org/stable/modules/generated/sklearn.mixture.BayesianGaussianMixture.html) with the following results: +<p align="center"> + +| Method | Timing (sec) | NMI (higher is better) | +|-----------------------------------------------------|--------------|------------------------| +| *Scikit-learn's GMM* (using EM, and given the True K) | 2523 | 0.695 | +| *Scikit-learn's DPGMM* | 6108 | 0.683 | +| DPMMpython | 475 | 0.705 | + +</p> + + +### Installation + +``` +pip install dpmmpython +``` + +If you already have Julia installed, install [PyJulia](https://github.com/JuliaPy/pyjulia) and add the package `DPMMSubClusters` to your julia installation. <p> +<p> +Make sure Julia path is configured correctly, e.g. you should be able to run julia by typing `julia` from the terminal, unless configured properly, PyJulia wont work. + + +**Installation Shortcut for Ubuntu distributions** <br> +If you do not have Julia installed, or wish to create a clean installation for the purpose of using this package. after installing (with pip), do the following: + +``` +import dpmmpython +dpmmpython.install() +``` +Optional arguments are `install(julia_download_path = 'https://julialang-s3.julialang.org/bin/linux/x64/1.4/julia-1.4.0-linux-x86_64.tar.gz', julia_target_path = None)`, where the former specify the julia download file, and the latter the installation path, if the installation path is not specified, `$HOME$/julia` will be used.<br> +As the `install()` command edit your `.bashrc` path, before using the pacakge, the terminal should either be reset, or modify the current environment according to the julia path you specified (`$HOME$/julia/julia-1.4.0/bin` by default). + +### Usage Example: + +``` +from dpmmpython.dpmmwrapper import DPMMPython +from dpmmpython.priors import niw +import numpy as np + +data,gt = DPMMPython.generate_gaussian_data(10000, 2, 10, 100.0) +prior = niw(1,np.zeros(2),4,np.eye(2)) +labels,_,sub_labels= DPMMPython.fit(data,100,prior = prior,verbose = True, gt = gt) +``` +``` +Iteration: 1 || Clusters count: 1 || Log posterior: -71190.14226686998 || Vi score: 1.990707323192506 || NMI score: 6.69243345834295e-16 || Iter Time:0.004499912261962891 || Total time:0.004499912261962891 +Iteration: 2 || Clusters count: 1 || Log posterior: -71190.14226686998 || Vi score: 1.990707323192506 || NMI score: 6.69243345834295e-16 || Iter Time:0.0038819313049316406 || Total time:0.008381843566894531 +... +Iteration: 98 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.015907764434814453 || Total time:0.5749104022979736 +Iteration: 99 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.01072382926940918 || Total time:0.5856342315673828 +Iteration: 100 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.010260820388793945 || Total time:0.5958950519561768 +``` + +You can modify the number of processes by using `DPMMPython.add_procs(procs_count)`, note that you can only scale it upwards. + +#### Additional Examples: +[Clustering](https://nbviewer.jupyter.org/github/BGU-CS-VIL/dpmmpython/blob/master/examples/clustering_example.ipynb) +<br> +[Multi-Process](https://nbviewer.jupyter.org/github/BGU-CS-VIL/dpmmpython/blob/master/examples/multi_process.ipynb) + + +#### Python 3.8 +Due to recent issue with the package used as interface between Julia and Python https://github.com/JuliaPy/pyjulia/issues/425 , there might be problems working with Python >= 3.8. + +### Misc + +For any questions: dinari@post.bgu.ac.il + +Contributions, feature requests, suggestion etc.. are welcomed. + +If you use this code for your work, please cite the following: + +``` +@inproceedings{dinari2019distributed, + title={Distributed MCMC Inference in Dirichlet Process Mixture Models Using Julia}, + author={Dinari, Or and Yu, Angel and Freifeld, Oren and Fisher III, John W}, + booktitle={2019 19th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID)}, + pages={518--525}, + year={2019} +} +``` + + + + +%package -n python3-dpmmpython-trax +Summary: Python wrapper for DPMMSubClusters julia package +Provides: python-dpmmpython-trax +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-dpmmpython-trax +<br> +<p align="center"> +<img src="https://www.cs.bgu.ac.il/~dinari/images/clusters_low_slow.gif" alt="DPGMM SubClusters 2d example"> +</p> + +## DPMMSubClusters + +This package is a Python wrapper for the [DPMMSubClusters.jl](https://github.com/BGU-CS-VIL/DPMMSubClusters.jl) Julia package.<br> + +### Motivation + +Working on a subset of 100K images from ImageNet, containing 79 classes, we have created embeddings using [SWAV](https://github.com/facebookresearch/swav), and reduced the dimension to 128 using PCA. We have compared our method with the popular scikit-learn [GMM](https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html) and [DPGMM](https://scikit-learn.org/stable/modules/generated/sklearn.mixture.BayesianGaussianMixture.html) with the following results: +<p align="center"> + +| Method | Timing (sec) | NMI (higher is better) | +|-----------------------------------------------------|--------------|------------------------| +| *Scikit-learn's GMM* (using EM, and given the True K) | 2523 | 0.695 | +| *Scikit-learn's DPGMM* | 6108 | 0.683 | +| DPMMpython | 475 | 0.705 | + +</p> + + +### Installation + +``` +pip install dpmmpython +``` + +If you already have Julia installed, install [PyJulia](https://github.com/JuliaPy/pyjulia) and add the package `DPMMSubClusters` to your julia installation. <p> +<p> +Make sure Julia path is configured correctly, e.g. you should be able to run julia by typing `julia` from the terminal, unless configured properly, PyJulia wont work. + + +**Installation Shortcut for Ubuntu distributions** <br> +If you do not have Julia installed, or wish to create a clean installation for the purpose of using this package. after installing (with pip), do the following: + +``` +import dpmmpython +dpmmpython.install() +``` +Optional arguments are `install(julia_download_path = 'https://julialang-s3.julialang.org/bin/linux/x64/1.4/julia-1.4.0-linux-x86_64.tar.gz', julia_target_path = None)`, where the former specify the julia download file, and the latter the installation path, if the installation path is not specified, `$HOME$/julia` will be used.<br> +As the `install()` command edit your `.bashrc` path, before using the pacakge, the terminal should either be reset, or modify the current environment according to the julia path you specified (`$HOME$/julia/julia-1.4.0/bin` by default). + +### Usage Example: + +``` +from dpmmpython.dpmmwrapper import DPMMPython +from dpmmpython.priors import niw +import numpy as np + +data,gt = DPMMPython.generate_gaussian_data(10000, 2, 10, 100.0) +prior = niw(1,np.zeros(2),4,np.eye(2)) +labels,_,sub_labels= DPMMPython.fit(data,100,prior = prior,verbose = True, gt = gt) +``` +``` +Iteration: 1 || Clusters count: 1 || Log posterior: -71190.14226686998 || Vi score: 1.990707323192506 || NMI score: 6.69243345834295e-16 || Iter Time:0.004499912261962891 || Total time:0.004499912261962891 +Iteration: 2 || Clusters count: 1 || Log posterior: -71190.14226686998 || Vi score: 1.990707323192506 || NMI score: 6.69243345834295e-16 || Iter Time:0.0038819313049316406 || Total time:0.008381843566894531 +... +Iteration: 98 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.015907764434814453 || Total time:0.5749104022979736 +Iteration: 99 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.01072382926940918 || Total time:0.5856342315673828 +Iteration: 100 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.010260820388793945 || Total time:0.5958950519561768 +``` + +You can modify the number of processes by using `DPMMPython.add_procs(procs_count)`, note that you can only scale it upwards. + +#### Additional Examples: +[Clustering](https://nbviewer.jupyter.org/github/BGU-CS-VIL/dpmmpython/blob/master/examples/clustering_example.ipynb) +<br> +[Multi-Process](https://nbviewer.jupyter.org/github/BGU-CS-VIL/dpmmpython/blob/master/examples/multi_process.ipynb) + + +#### Python 3.8 +Due to recent issue with the package used as interface between Julia and Python https://github.com/JuliaPy/pyjulia/issues/425 , there might be problems working with Python >= 3.8. + +### Misc + +For any questions: dinari@post.bgu.ac.il + +Contributions, feature requests, suggestion etc.. are welcomed. + +If you use this code for your work, please cite the following: + +``` +@inproceedings{dinari2019distributed, + title={Distributed MCMC Inference in Dirichlet Process Mixture Models Using Julia}, + author={Dinari, Or and Yu, Angel and Freifeld, Oren and Fisher III, John W}, + booktitle={2019 19th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID)}, + pages={518--525}, + year={2019} +} +``` + + + + +%package help +Summary: Development documents and examples for dpmmpython-trax +Provides: python3-dpmmpython-trax-doc +%description help +<br> +<p align="center"> +<img src="https://www.cs.bgu.ac.il/~dinari/images/clusters_low_slow.gif" alt="DPGMM SubClusters 2d example"> +</p> + +## DPMMSubClusters + +This package is a Python wrapper for the [DPMMSubClusters.jl](https://github.com/BGU-CS-VIL/DPMMSubClusters.jl) Julia package.<br> + +### Motivation + +Working on a subset of 100K images from ImageNet, containing 79 classes, we have created embeddings using [SWAV](https://github.com/facebookresearch/swav), and reduced the dimension to 128 using PCA. We have compared our method with the popular scikit-learn [GMM](https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html) and [DPGMM](https://scikit-learn.org/stable/modules/generated/sklearn.mixture.BayesianGaussianMixture.html) with the following results: +<p align="center"> + +| Method | Timing (sec) | NMI (higher is better) | +|-----------------------------------------------------|--------------|------------------------| +| *Scikit-learn's GMM* (using EM, and given the True K) | 2523 | 0.695 | +| *Scikit-learn's DPGMM* | 6108 | 0.683 | +| DPMMpython | 475 | 0.705 | + +</p> + + +### Installation + +``` +pip install dpmmpython +``` + +If you already have Julia installed, install [PyJulia](https://github.com/JuliaPy/pyjulia) and add the package `DPMMSubClusters` to your julia installation. <p> +<p> +Make sure Julia path is configured correctly, e.g. you should be able to run julia by typing `julia` from the terminal, unless configured properly, PyJulia wont work. + + +**Installation Shortcut for Ubuntu distributions** <br> +If you do not have Julia installed, or wish to create a clean installation for the purpose of using this package. after installing (with pip), do the following: + +``` +import dpmmpython +dpmmpython.install() +``` +Optional arguments are `install(julia_download_path = 'https://julialang-s3.julialang.org/bin/linux/x64/1.4/julia-1.4.0-linux-x86_64.tar.gz', julia_target_path = None)`, where the former specify the julia download file, and the latter the installation path, if the installation path is not specified, `$HOME$/julia` will be used.<br> +As the `install()` command edit your `.bashrc` path, before using the pacakge, the terminal should either be reset, or modify the current environment according to the julia path you specified (`$HOME$/julia/julia-1.4.0/bin` by default). + +### Usage Example: + +``` +from dpmmpython.dpmmwrapper import DPMMPython +from dpmmpython.priors import niw +import numpy as np + +data,gt = DPMMPython.generate_gaussian_data(10000, 2, 10, 100.0) +prior = niw(1,np.zeros(2),4,np.eye(2)) +labels,_,sub_labels= DPMMPython.fit(data,100,prior = prior,verbose = True, gt = gt) +``` +``` +Iteration: 1 || Clusters count: 1 || Log posterior: -71190.14226686998 || Vi score: 1.990707323192506 || NMI score: 6.69243345834295e-16 || Iter Time:0.004499912261962891 || Total time:0.004499912261962891 +Iteration: 2 || Clusters count: 1 || Log posterior: -71190.14226686998 || Vi score: 1.990707323192506 || NMI score: 6.69243345834295e-16 || Iter Time:0.0038819313049316406 || Total time:0.008381843566894531 +... +Iteration: 98 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.015907764434814453 || Total time:0.5749104022979736 +Iteration: 99 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.01072382926940918 || Total time:0.5856342315673828 +Iteration: 100 || Clusters count: 9 || Log posterior: -40607.39498126549 || Vi score: 0.11887067921133423 || NMI score: 0.9692247699387838 || Iter Time:0.010260820388793945 || Total time:0.5958950519561768 +``` + +You can modify the number of processes by using `DPMMPython.add_procs(procs_count)`, note that you can only scale it upwards. + +#### Additional Examples: +[Clustering](https://nbviewer.jupyter.org/github/BGU-CS-VIL/dpmmpython/blob/master/examples/clustering_example.ipynb) +<br> +[Multi-Process](https://nbviewer.jupyter.org/github/BGU-CS-VIL/dpmmpython/blob/master/examples/multi_process.ipynb) + + +#### Python 3.8 +Due to recent issue with the package used as interface between Julia and Python https://github.com/JuliaPy/pyjulia/issues/425 , there might be problems working with Python >= 3.8. + +### Misc + +For any questions: dinari@post.bgu.ac.il + +Contributions, feature requests, suggestion etc.. are welcomed. + +If you use this code for your work, please cite the following: + +``` +@inproceedings{dinari2019distributed, + title={Distributed MCMC Inference in Dirichlet Process Mixture Models Using Julia}, + author={Dinari, Or and Yu, Angel and Freifeld, Oren and Fisher III, John W}, + booktitle={2019 19th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID)}, + pages={518--525}, + year={2019} +} +``` + + + + +%prep +%autosetup -n dpmmpython-trax-0.1.5 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-dpmmpython-trax -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.5-1 +- Package Spec generated @@ -0,0 +1 @@ +e778abb6535f1184eeaf409459f1f91e dpmmpython_trax-0.1.5.tar.gz |