博客
关于我
m1芯片Mac安装Apple版TensorFlow(conda-forge)+编译安装sklearn
阅读量:362 次
发布时间:2019-03-04

本文共 3491 字,大约阅读时间需要 11 分钟。

在Apple Silicon M1硬件上安装TensorFlow及数据科学包

折腾了一整晚,终于搞定了在Apple Silicon M1硬件上安装优化版TensorFlow!这确实是一段充满挑战的旅程。刚开始我并不打算折腾,直到发现使用bash安装Python虚拟环境的不便之处。虽然许多软件包可以通过源码编译安装到虚拟环境,但仍然有一些不合作的包装程序安装不了,比如sklearn。

对于Apple Silicon M1硬件,官方明确指出只有conda-forge方法可以使用。因此,我只能硬着头皮寻找解决方法。在Apple的GitHub主页中发现了一篇关于使用miniforge安装TensorFlow的方法,这个方法安装起来并不复杂,除了那可怕的网络速度...

安装完成TensorFlow后,接下来是安装sklearn。除了需要特别指定brew安装的libomp包的位置,其他步骤都按照官网指南一路走下来即可安装。以下是具体操作步骤:

安装TensorFlow

  • 先创建虚拟环境并激活它:
  • conda create -n tf24 python=3.8conda activate tf24
    1. 指定TensorFlow_macos软件包的位置:
    2. libs="/Users/xxx/tensorflow_macos/arm64/"env="/opt/homebrew/Caskroom/miniforge/base/envs/tf24/"
      1. 安装相关依赖包,注意版本号,建议复制安装文件名以避免找不到:
      2. conda install -c conda-forge pip setuptools cached-property sixconda upgrade -c conda-forge pip setuptools cached-property sixpip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/grpcio-1.33.2-cp38-cp38-macosx_11_0_arm64.whl"pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/h5py-2.10.0-cp38-cp38-macosx_11_0_arm64.whl"pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl"
        1. 安装与TensorFlow相关的包:
        2. conda install -c conda-forge -y absl-pyconda install -c conda-forge -y astunparseconda install -c conda-forge -y gastconda install -c conda-forge -y opt_einsumconda install -c conda-forge -y termcolorconda install -c conda-forge -y typing_extensionsconda install -c conda-forge -y wheelconda install -c conda-forge -y typeguard
          1. 安装TensorBoard:
          2. pip install tensorboard
            1. 安装其他TensorFlow相关组件:
            2. pip install wrapt flatbuffers tensorflow_estimator google_pasta keras_preprocessing protobuf
              1. 最后安装TensorFlow本身(注意版本号):
              2. pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl"

                安装其他数据科学软件包

                相比于在tf_venv环境中安装软件包(需要进行各种编译安装),直接使用conda install走天下简直是简单到爆了,只需指定channel为conda-forge即可。

                pandas & pytables

                conda install pandas -c conda-forgeconda install pytables -c conda-forge

                matplotlib

                conda install matplotlib -c conda-forge

                ipython

                conda install ipython -c conda-forge

                手动安装sklearn

                由于sklearn不支持直接用homebrew编译安装,那只能硬着头皮编译了。

                安装相关依赖

                conda activate tf24conda install -c conda-forge scipy cython joblib threadpoolctl pytest compilers llvm-openmpbrew install libomp

                修改编译路径

                记录libomp的位置以便后续导入:

                /opt/homebrew/Cellar/libomp/11.1.0/lib/opt/homebrew/Cellar/libomp/11.1.0/include

                编译安装

                make cleanpip install --verbose --no-build-isolation --editable .

                验证安装

                conda list

                查看包信息:

                scikit-learn              0.24.1                    dev_0    
                scipy 1.6.0 py38hdf044fb_0 conda-forge...

                完成!不过还不能庆祝,查看sklearn安装位置:

                In [6]: import sklearnOut[6]: 

                安装目标是虚拟环境的/opt/homebrew/Caskroom/miniforge/base/envs/tf24/lib/python3.8/site-packages/,因此需要进行以下操作:

              3. 拷贝安装文件和egg-info文件:
              4. cp -r sklearn /opt/homebrew/Caskroom/miniforge/base/envs/tf24/lib/python3.8/site-packages/cp -r scikit_learn.egg-info /opt/homebrew/Caskroom/miniforge/base/envs/tf24/lib/python3.8/site-packages/
                1. 删除链接文件(可选):
                2. cd /opt/homebrew/Caskroom/miniforge/base/envs/tf24/lib/python3.8/site-packages/rm scikit-learn.egg-link

                  这样就能完美安装完成!(并且可以删除sklearn的源码文件了~)

                  验证

                  conda activate tf24ipython -c "import sklearn; print(sklearn._config)"

                  参考

                3. GitHub Issue(链接已去除)
                4. Medium文章(链接已去除)
                5. 更新日志

                  后来在一篇Medium博客中找到更简便的方法:

                  conda install -c conda-forge scikit-learn

                  直接使用conda安装即可解决问题,不用手动编译!希望大家不要学我的错误,尽量找到最方便快捷的方法。

    转载地址:http://iazg.baihongyu.com/

    你可能感兴趣的文章
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>
    No qualifying bean of type XXX found for dependency XXX.
    查看>>
    No qualifying bean of type ‘com.netflix.discovery.AbstractDiscoveryClientOptionalArgs<?>‘ available
    查看>>
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    node exporter完整版
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
    查看>>