FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated

Question:

After updating my Numpy and Tensorflow I am getting these kind of warnings. I had already tried these, but nothing works, every suggestion will be appreciated.

FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
2018-01-19 17:11:38.695932: I C:tf_jenkinshomeworkspacerel-winMwindowsPY36tensorflowcoreplatformcpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
Asked By: Shubham Sharma

||

Answers:

Previously i was getting same error , i just had used warnings() module . I had used these code after your all imports,

import warnings
warnings.filterwarnings('ignore', '.*do not.*',)
Answered By: Harshit Gyan

I had tried with these and it had solved same problem for me , just put these at top of your code

import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]="3"
Answered By: raja

You can also use the following code to have the warning lines erased from the terminal by using the following lines at the beginning of your code.

Code With warning:

import numpy as np, sys, tensorflow as tf
print('nStart of Code...n')

Output:

FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type.
from ._conv import register_converters as _register_converters

Start of Code...

Code with Warning Erased:

import numpy as np, sys, tensorflow as tf
for i in range(3): # Add this for loop.
sys.stdout.write('33[F') # Back to previous line.
sys.stdout.write('33[K') # Clear line.

print('nStart of Code...n')

Output:

Start of Code...

Answered By: Arindam

This might or might not be your case, but the same warning is also spit out from h5py package:

/home/user/bin/conda3/lib/python3.6/site-packages/h5py/__init__.py:34:
FutureWarning: Conversion of the second argument of issubdtype from
float to np.floating is deprecated. In future, it will be treated
as np.float64 == np.dtype(float).type. from ._conv import
register_converters as _register_converters

For anyone coming here with this problem, it is a known h5py issue, introduced with numpy 1.14. As stated by the devs:

You can ignore the warning, it’s not going to cause any issues at the
moment, but you should upgrade to the next release of h5py when it
becomes available.

… so it’s harmless. The fix has just been merged to master. But until the update is released, the workaround is to downgrade numpy to a previous version:

pip install numpy==1.13.0

Update: h5py has released the RC build with the fix. The following command should do it:

pip install h5py==2.8.0rc1

Update (FINAL): there’s a full-fledged release now. So you can simply run:

pip install --upgrade h5py
Answered By: Maxim

Upgrade scipy to rif of from this warning. To do this you may use pip to upgrade scipy.

**sudo pip install --upgrade scipy**

This is due to a version conflict between h5py and numpy. All you need to do is degrade your numpy version through command as below:

pip install numpy==1.13.0
Answered By: Taylor Mei

None of the above worked in my case and I did not want to downgrade any package.

There is a straightforward solution on Github, just suppress the warning:

import warnings
with warnings.catch_warnings():
    warnings.filterwarnings("ignore",category=FutureWarning)
    import numpy as np
    import tensorflow as tf
    import h5py as h5py

and then import whatever package causes the error (numpy, tensorflow, h5py) within the scope of the with statement

Answered By: dopexxx

You could upgrade h5py

pip install --upgrade h5py
Answered By: Claude COULOMBE

I fixed this issue by installing/reinstalling ipykernel:

pip3 install --upgrade ipykernel

If you have different pip of course us that one

Answered By: Vinnie Amir

You need to upgrade h5py and numpy version should be <1.17:

pip install --upgrade h5py
pip install "numpy<1.17"
Answered By: Chandan Gupta

You may want to find out the cause first (most answers here work for specific scenarios – libraries using deprecated features – in this case of NumPy).

Root cause

In short, something did call:

np.issubdtype(something, float)

instead of:

np.issubdtype(something, np.floating)

This is done in assertions and logic dispatching code, which is rarely written by end users. So – often this will be something done by a library you’re using.

How to proceed

So you should find out what caused this warning. You’ll use the warnings module, but in an opposite way than in other answers:

import warnings
warnings.filterwarnings('error')
# run rest of your code here

This will give you not just the warning, but an error and stack trace. Then – you’re golden:

Traceback (most recent call last):
  File (...)
     # user code snipped...
  File "C:...site-packagesvtkutilnumpy_support.py", line 137, in numpy_to_vtk
    assert not numpy.issubdtype(z.dtype, complex), 
  File "C:...site-packagesnumpycorenumerictypes.py", line 422, in issubdtype
    FutureWarning, stacklevel=2
FutureWarning: Conversion of the second argument of issubdtype from `complex` to `np.complexfloating` is deprecated. 
  In future, it will be treated as `np.complex128 == np.dtype(complex).type`.

Here you see that it was VTK this time. Which of course is unlikely to be your specific problem, but after knowing what raises this warning you can do many useful things:

  • silence the warning in the right place (right before calling out of your code), then restore all warnings
  • look for an updated version of a library, which has this fixed
  • maybe report an issue for the library which has the problem
  • if the issue is there, but no fix: write the fix and create a pull request
  • make the world a better place.
Answered By: Tomasz Gandor
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.