FutureWarning:不推荐将issubdtype的第二个参数从`float`转换为`np.floating`

Shu*_*rma 46 python numpy tensorflow

更新我之后Numpy,Tensorflow我收到了这些警告.我已经尝试了这些,但没有任何作用,每个建议都将受到赞赏.

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_jenkins\home\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
Run Code Online (Sandbox Code Playgroud)

Max*_*xim 65

这可能是您的情况,也可能不是,但同样的警告也会从h5py包中吐出:

/home/user/bin/conda3/lib/python3.6/site-packages/h5py/__init__.py:34:FutureWarning:不推荐将issubdtype的第二个参数从floatto 转换为 np.floating.将来,它将被视为np.float64 == np.dtype(float).type.从._conv导入register_converters作为_register_converters

对于有这个问题来到这里的任何人来说,这是一个已知的h5py问题,引入了numpy 1.14.正如开发者所说:

您可以忽略该警告,此时不会引起任何问题,但是当它可用时,您应升级到下一版本的h5py.

......所以它是无害的.修复程序刚刚合并到master.但是在更新发布之前,解决方法是将numpy降级到以前的版本:

pip install numpy==1.13.0
Run Code Online (Sandbox Code Playgroud)

更新:h5py 已发布带有修复程序的RC版本.以下命令应该这样做:

pip install h5py==2.8.0rc1
Run Code Online (Sandbox Code Playgroud)

更新(最终):现在有一个完整的版本.所以你可以简单地运行:

pip install --upgrade h5py
Run Code Online (Sandbox Code Playgroud)

  • @ShubhamSharma如果你使用tensorflow> = 1.5.0和python 3.6,它可能需要numpy 1.13+(参见https://github.com/tensorflow/tensorflow/issues/16488),所以要小心选择numpy版.现在,1.13.0似乎是最佳选择.如果tensorflow <1.5.0,numpy版本并不重要 (2认同)

Cla*_*MBE 23

你可以升级h5py

pip install --upgrade h5py
Run Code Online (Sandbox Code Playgroud)


小智 13

我试过这些并且它已经为我解决了同样的问题,只需将它们放在代码的顶部

import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]="3"
Run Code Online (Sandbox Code Playgroud)

  • 从长远来看,这不是一个解决方案! (5认同)
  • 是的,这将减少日志,但答案并没有解释问题或如何解决它。 (2认同)