Closed ivan-marroquin closed 3 years ago
Here is another one when using these commands
embedding= pymde.preserve_neighbors(input_data, embedding_dim= intrinsic_dim, attractive_penalty= pymde.penalties.Log, repulsive_penalty= pymde.penalties.LogRatio, constraint= None, n_neighbors= 5, repulsive_fraction= 0.75, init= 'random', device= 'cpu')
projected_data= embedding.embed(max_iter= 350, memory_size= 20)
C:\Temp\Python\Python3.6.5\lib\site-packages\torch_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at ..\aten\src\ATen\native\BinaryOps.cpp:467.) return torch.floor_divide(self, other)
Thanks for reporting! I'll make a fix for this.
These warning messages will not however affect the quality of the embedding.
Hi @akshayka
Thanks for confirming about the quality of the embedding is not affected.
Ivan
Hi,
Many thanks for making available this nice package!
I have a windows machine with Python 3.6.5 and install pymde-0.1.11, torch-1.9.0, torchvision-0.10.0
To produce a 3D embedding, I used this commands: embedding= pymde.preserve_neighbors(input_data, embedding_dim= intrinsic_dim, attractive_penalty= pymde.penalties.Log1p, repulsive_penalty= pymde.penalties.Log, constraint= pymde.Standardized(), n_neighbors= 5, repulsive_fraction= 0.5, init= 'random', device= 'cpu') projected_data= embedding.embed(max_iter= 350, memory_size= 20)
which produced the warning message shown below. Will this warning affect the quality of the projection?
C:\Temp\Python\Python3.6.5\lib\site-packages\pymde\constraints.py:182: UserWarning: torch.symeig is deprecated in favor of torch.linalg.eigh and will be removed in a future PyTorch release. The default behavior has changed from using the upper triangular portion of the matrix by default to using the lower triangular portion. L, _ = torch.symeig(A, upper=upper) should be replaced with L = torch.linalg.eigvalsh(A, UPLO='U' if upper else 'L') and L, V = torch.symeig(A, eigenvectors=True) should be replaced with L, V = torch.linalg.eigh(A, UPLO='U' if upper else 'L') (Triggered internally at ..\aten\src\ATen\native\BatchLinearAlgebra.cpp:2500.) lmbda, Q = torch.symeig(X.T @ X, eigenvectors=True) C:\Temp\Python\Python3.6.5\lib\site-packages\torch_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at ..\aten\src\ATen\native\BinaryOps.cpp:467.) return torch.floor_divide(self, other)
Thanks,
Ivan