deepsphere / deepsphere-cosmo-tf2

A spherical convolutional neural network for cosmology (TFv2).
https://arxiv.org/abs/1810.12186
MIT License
19 stars 5 forks source link

Installation issue #7

Closed Wasim04 closed 1 year ago

Wasim04 commented 1 year ago

Hi,

I am trying to install deepsphere tf2. Although, it shows that the installation is completed, however, when trying to import dependencies from deepsphere, the following error occurs:

cannot import name 'SphereHealpix' from 'pygsp.graphs'

How should I solve this?

Many Thanks

jafluri commented 1 year ago

Hello,

Thanks for your interest in deepsphere!

The package needs a special PyGSP, which should be installed with the requirements. You can reinstall it via:

pip install git+https://github.com/jafluri/pygsp.git@sphere-graphs

and try if this fixes your issue. What python version are you using?

Wasim04 commented 1 year ago

Hi Thanks for your prompt reply. I have installed the given PyGSP version from the link, but the issue seems to remain the same. I am using python 3.10.5.

Many Thanks

jafluri commented 1 year ago

I cannot reproduce this issue. I just created a new 3.10 environment and get the correct dependencies with the requirements install. Could you send me the output of pip freeze? Can you try to create a fresh venv / conda env?

Otherwise, because the PyGSP version is quite low, you might need to force a reinstall:

pip install --force-reinstall git+https://github.com/jafluri/pygsp.git@sphere-graphs

Wasim04 commented 1 year ago

Hi

Thanks for the advice. I shall try this with fresh conda env. pip freeze produced a huge list with versions of installed packages etc. Not sure if you wanted to see that. PyGSP, which I found there, is 0.5.1. probably this version is causing my issue.

Many Thanks

Wasim04 commented 1 year ago

Hi,

Thanks for your help. I have been able to insall deepsphere in a fresh conda env. There is still, however, a conflict sustained with the tensorflow and numpy version.

An error prompted from healpy_networks.py script, at the line 70.

The Error reads: module 'numpy' has no attribute 'int'. np.int was a deprecated alias for the builtin int. To avoid this error in existing code, use int by itself. Doing this will not modify any behavior and is safe. When replacing np.int, you may wish to use e.g. np.int64 or np.int32 to specify the precision. If you wish to review your current use, check the release note link for additional information. The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations

Many Thanks

jafluri commented 1 year ago

You are right, the newest version of numpy removes np.int, so I replaced it with python standard ints. If you have not already changed it yourself, pull the repo should fix it.

Wasim04 commented 1 year ago

Hi,

Yes, I have replaced it. Another conflict I encountered is that the specified Scipy version is not compatible with the current python version. New version of scipy promts the following error:

File _ckdtree.pyx:783, in scipy.spatial._ckdtree.cKDTree.query()

File _ckdtree.pyx:387, in scipy.spatial._ckdtree.get_num_workers()

TypeError: Unexpected keyword argument {'n_jobs': -1}

This is because the 'n_jobs' argument has been renamed in the new version of scipy. I am not entirely sure how to work around that. Thanks a lot for your continuous support.

Many Thanks Wasim

jafluri commented 1 year ago

Yes, makes sence, the PyGSP is on the same decrepated version of numpy and scipy as deepsphere was. I just updated the repo, please reinstall PyGSP via:

pip install --force-reinstall git+https://github.com/jafluri/pygsp.git@sphere-graphs

and try again.

Wasim04 commented 1 year ago

Hi,

Thanks for the update. It works now. I cannot thank you enough for this great package that you ( and your team) have developed. You have done service to humanity.

Easter Greetings to you. Have a wonderful time.

Many Thanks Wasim

jafluri commented 1 year ago

Thanks, glad that it works!

Happy Easter.