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
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.*',)
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"
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...
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
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
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
You could upgrade h5py
pip install --upgrade h5py
I fixed this issue by installing/reinstalling ipykernel:
pip3 install --upgrade ipykernel
If you have different pip of course us that one
You need to upgrade h5py and numpy version should be <1.17:
pip install --upgrade h5py
pip install "numpy<1.17"
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.
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
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.*',)
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"
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...
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
tonp.floating
is deprecated. In future, it will be treated
asnp.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
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
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
You could upgrade h5py
pip install --upgrade h5py
I fixed this issue by installing/reinstalling ipykernel:
pip3 install --upgrade ipykernel
If you have different pip of course us that one
You need to upgrade h5py and numpy version should be <1.17:
pip install --upgrade h5py
pip install "numpy<1.17"
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.