Comments (6)
I can confirm the findings of @ZXP-S-works. Some more details from my fresh virtual env:
$ python -c 'import platform;print(platform.sys.version);print(platform.platform())'
3.10.9 (main, Dec 7 2022, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)]
Linux-6.1.12-100.fc36.x86_64-x86_64-with-glibc2.35
$ python -m pip list
Package Version
------------------------ -----------
attrs 22.2.0
autograd 1.5
certifi 2022.12.7
charset-normalizer 3.0.1
contourpy 1.0.7
cycler 0.11.0
escnn 1.0.4
exceptiongroup 1.1.0
fonttools 4.38.0
future 0.18.3
idna 3.4
imageio 2.25.1
iniconfig 2.0.0
Jinja2 3.1.2
joblib 1.2.0
kiwisolver 1.4.4
lie-learn 0.0.1.post1
MarkupSafe 2.1.2
matplotlib 3.7.0
networkx 3.0
numpy 1.24.2
nvidia-cublas-cu11 11.10.3.66
nvidia-cuda-nvrtc-cu11 11.7.99
nvidia-cuda-runtime-cu11 11.7.99
nvidia-cudnn-cu11 8.5.0.96
packaging 23.0
Pillow 9.4.0
pip 23.0.1
pluggy 1.0.0
psutil 5.9.4
py3nj 0.1.2
pymanopt 2.1.1
pyparsing 3.0.9
pytest 7.2.1
python-dateutil 2.8.2
PyWavelets 1.4.1
requests 2.28.2
scikit-image 0.19.3
scikit-learn 1.2.1
scipy 1.10.1
setuptools 67.4.0
six 1.16.0
threadpoolctl 3.1.0
tifffile 2023.2.3
tomli 2.0.1
torch 1.13.1
torch-geometric 2.2.0
tqdm 4.64.1
typing_extensions 4.5.0
urllib3 1.26.14
wheel 0.38.4
I pulled the repo HEAD
and ran python -m pip install .
From this I get:
$ python ./examples/octahedral_cnn.py
________________________________________________________________________________
[Memory] Calling escnn.group.groups.octa._build_octa_irrep...
_build_octa_irrep(Octahedral, -1)
_________________________________________________build_octa_irrep - 0.9s, 0.0min
________________________________________________________________________________
[Memory] Calling escnn.group.groups.octa._build_octa_irrep...
_build_octa_irrep(Octahedral, 2)
_________________________________________________build_octa_irrep - 0.9s, 0.0min
________________________________________________________________________________
[Memory] Calling escnn.group.groups.octa._build_octa_irrep...
_build_octa_irrep(Octahedral, 3)
_________________________________________________build_octa_irrep - 0.9s, 0.0min
Traceback (most recent call last):
File "/home/steinb95/development/escnn/repo/py310-head/lib64/python3.10/site-packages/escnn/group/groups/so3group.py", line 573, in _restrict_irrep
raise NotImplementedError()
NotImplementedError
# ...
File "/home/steinb95/development/escnn/repo/py310-head/lib64/python3.10/site-packages/escnn/group/_numerical.py", line 419, in decompose_representation_finitegroup
cob = compute_change_of_basis_finitegroup(representation, irreps)
File "/home/steinb95/development/escnn/repo/py310-head/lib64/python3.10/site-packages/escnn/group/_numerical.py", line 274, in compute_change_of_basis_finitegroup
D, err = find_orthogonal_matrix(basis, shape)
File "/home/steinb95/development/escnn/repo/py310-head/lib64/python3.10/site-packages/escnn/group/_numerical.py", line 155, in find_orthogonal_matrix
raise ImportError("Missing optional 'pymanopt' dependency. Install 'pymanopt' to use this function")
ImportError: Missing optional 'pymanopt' dependency. Install 'pymanopt' to use this function
Which is an overstatement, because as you see pymanopt
is installed, however as @ZXP-S-works correctly points out, the API changed:
try:
import pymanopt
from pymanopt.manifolds import Euclidean
from pymanopt.solvers import TrustRegions #fails with pymanopt 2.1.1
except ImportError:
pymanopt = None
from escnn.
Hi @ZXP-S-works ,
It seems like I am still using a rather old version of pymanopt (0.2.5) and I was not aware of changes in the pymanopt API, thanks for reporting this!
Could you share the error you found (and how you triggered) and your pymanopt version, so I can try to replicate this problem?
I will try to update the code with the newest version of pymanopt
Thanks,
Gabriele
from escnn.
Hi Gabriele,
Thank you for your quick reply! I have fixed this problem for the octaOnR3() group and verified the equivariance of it's R3Conv() in ./example/octahedra cnn.py. I have sent a pull request. The problems are in the ./escnn/group/_numerical.py. See the below figure.
The error when using pymanopt <= 0.2.4 I found is "Missing optional 'pymanopt' dependency. Install 'pymanopt' to use this function". When I use pymanopt >= 1.0.0 I got "cost function needs decorator". These error are triggered when I instantiating an nn.R3Conv() class with gspaces.ocatOnR3() group (in channel: trivial_repr, our channel: regular_repr).
Best,
XP
from escnn.
Hi @ZXP-S-works
I updated my environment to pymanopt==2.1.1
but I was not able to trigger your error (also, I was wrong earlier and my most recent environment was using pymanopt==2.0.1
already).
I have also tried running your examples/octahedral cnn.py
example, but I did not have any issues.
What version of pymanopt are you using?
Best,
Gabriele
from escnn.
Hi Gabriele,
If you use the current escnn at commit "v1.0.4" and run examples/octahedral cnn.py, you will trigger the errors.
I have sent a pull request #33 that has fixed this compatibility issue. Therefore if you use this commit there will be no errors for pymanopt.
Sorry for the late pull request update, I spent some time fixing the sign-off error.
Best,
XP
from escnn.
Allright, I managed to replicate the error. I thought pymanopt
was the issue, while this is a problem only when trying to import (and use) pymanopt.solvers
(I could not replicate it earlier since I already had most of the outputs of the numerical routines which use pymanopt cached, sorry for that).
I am working on fixing this now, thanks again for reporting this and for the pull-request!
Best,
Gabriele
from escnn.
Related Issues (20)
- Missing the tetrahedron group (`tetraOnR3` in `escnn.gspaces`?)
- Instance Norm as normalization? HOT 4
- What is the intuition behind conditioning the kernel size on the number of rotations in the example script? HOT 2
- check_equivariance test failed HOT 2
- escnn's conv, BN, relu is not equivariant? HOT 3
- Pretrained models for ResNet in SO(2) and SE(3) HOT 4
- Utility functions to save and load instances of Group and Representations HOT 2
- Missing indexing dimensions in GeometricTensors HOT 2
- Batched equivariant maps basis expansion (?) HOT 4
- Improved invariant feature extraction - Improved group pooling
- Migrate unit tests to pytest? HOT 4
- question about the 3D rotation order and the Fourier transformation matrix
- Information bottlenecks without warnings.
- Add LayerNorm layer HOT 2
- Add Unitary Group HOT 1
- Usage equivariant MLP HOT 4
- Multi-gpu training degrades performance HOT 1
- Can escnn be used to process one-dimensional data? HOT 1
- 【Passive Rotation】 HOT 3
- Planar symmetries with staggered grids HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from escnn.