是否支持张量流python 3.7

问题描述 投票:0回答:1

当我在终端中使用Keras和tensorflow库运行几行代码进行图像分类时,在Mac设备中出现了该错误。我读了一些文章,其中一些说tensorflow不支持python 3.7,如果可以的话我该怎么办?

tensorflow:From /Users/selimerhan/opt/anaconda3/envs/myenv/lib/python3.7/site-packages/
tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) 
  is deprecated and will be removed in a future version. Instructions for updating: 
    Use tf.cast instead. 2020-06-05 03:54:37.912219: I tensorflow/core/platform/
      cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary
      was not compiled to use: AVX2 FMA Epoch 1/57
python tensorflow keras
1个回答
0
投票

这是警告,而不是错误,与TensorFlow对Python 3.7的支持无关

Tensorflow必须更新才能运行python 3.7。需要张量流2.2。我建议您创建一个new environment

此警告是关于什么的?

现代CPU除了提供通常的算术和逻辑(称为扩展,例如扩展)外,还提供许多低级指令。 SSE2,SSE4,AVX等。从Wikipedia

Advanced Vector ExtensionsAVX)是x86指令的扩展名英特尔和AMD提出的微处理器集架构英特尔于2008年3月首次获得英特尔与桑迪的支持桥处理器将于2011年第一季度发布,随后由AMD与推土机处理器将于2011年第三季度发货。AVX提供了新功能,新指令和新编码方案。

特别是,AVX引入了fused multiply-accumulate(FMA)运算,该运算可加快线性代数的计算速度,即点积,矩阵乘法,卷积等。几乎每个机器学习训练都涉及大量这些运算,因此将在支持AVX和FMA(最高300%)的CPU上速度更快。该警告指出您的CPU确实支持AVX(万岁!)。

我想在这里强调:这全是关于[[仅CPU。

为什么不使用它?

因为生成了张量流默认分布without CPU extensions,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默认构建(pip install tensorflow中的一个)旨在与尽可能多的CPU兼容可能。另一个论点是,即使有了这些扩展,CPU也比GPU慢很多,并且期望在GPU上进行中型和大型机器学习训练。

您应该怎么做?

[如果有GPU

,则不必在乎AVX的支持,因为大多数昂贵的操作将在GPU设备上分派(除非明确设置为不这样做)。在这种情况下,您可以通过忽略此警告# Just disables the warning, doesn't enable AVX/FMA import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
...,或者如果您在Unix上,则通过设置export TF_CPP_MIN_LOG_LEVEL=2。无论如何,Tensorflow都工作正常,但是您不会看到这些烦人的警告。


如果没有GPU

并希望尽可能多地利用CPU,则您应该使用AVX,AVX2和FMA从针对your >> CPU]优化的源构建张量流。如果您的CPU支持它们,则启用。在this questionthis GitHub issue中都有讨论。 Tensorflow使用一个名为bazel的临时构建系统,构建它并不是那么简单,但是肯定是可行的。此后,不仅警告会消失,而且tensorflow性能也将得到改善。
© www.soinside.com 2019 - 2024. All rights reserved.