文章目录

  • 写在前面
  • conda安装优化版TensorFlow
  • 安装其他数据科学软件包
    • pandas\&pytables
    • matplotlib
    • ipython
  • 20210314下午更新
  • 源码编译安装sklearn
    • 安装相关依赖
  • 验证
  • 参考

写在前面

折腾了一晚上,终于搞定了用conda-forge安装Apple优化之后的TensorFlow啦!真的太不容易了…一开始我是不想折腾的,后来才发现直接用bash安装的Python虚拟环境使用起来有很多不方便的地方,而且就算很多软件包可以通过源码编译的方式安装到虚拟环境,但是还是有那么几个不配合的软件包安装不了…就比如sklearn,人家官网上明确说了:

For Apple Silicon M1 hardware, only the conda-forge method below is known to work at the time of writing (January 2021). You can install the macos/arm64 distribution of conda using the miniforge installer

对于Apple Silicon M1硬件,在撰写本文时(2021年1月),只有下面的conda-forge方法有效。 您可以使用miniforge安装程序安装conda的macos / arm64发行版。

那就只好硬着头皮找方法了,在Apple的GitHub主页issue3中,还真的有用miniforge安装TensorFlow的方法,安装起来没啥难度,除了那烦人的网速…

安装好TensorFlow之后,就是sklearn这个包的安装了,除了要特别指定一下brew安装的libomp包的位置,其他的根据官网的步骤一路走下来就能安装好了.下面具体操作.
sklearn可以不编译安装..我傻了\color{red}sklearn可以不编译安装..我傻了sklearn可以不编译安装..我傻了

conda安装优化版TensorFlow

这里需要先创建虚拟环境,激活该环境,

conda create -n tf24 python=3.8
conda activate tf24

然后就是指定一下TensorFlow_macos这个下载好的软件包的位置,

libs="/Users/xxx/tensorflow_macos/arm64/"
env="/opt/homebrew/Caskroom/miniforge/base/envs/tf24/"

安装相关依赖包,这里也要注意一下版本号,建议复制一下安装的文件名,要不可能会找不到文件(版本更新很快的):

conda install -c conda-forge pip setuptools cached-property six
conda upgrade -c conda-forge pip setuptools cached-property six
pip 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"

接下来是跟TensorFlow有关的一些包:

conda install -c conda-forge -y absl-py
conda install -c conda-forge -y astunparse
conda install -c conda-forge -y gast
conda install -c conda-forge -y opt_einsum
conda install -c conda-forge -y termcolor
conda install -c conda-forge -y typing_extensions
conda install -c conda-forge -y wheel
conda install -c conda-forge -y typeguard

TensorBoard:

pip install tensorboard

TensorFlow相关组件:

pip install wrapt flatbuffers tensorflow_estimator google_pasta keras_preprocessing protobuf

最后就是重头戏TensorFlow本尊了(同样需要注意版本号):

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-forge
conda install pytables -c conda-forge

matplotlib

conda install matplotlib -c conda-forge

ipython

conda install ipython -c conda-forge

20210314下午更新

后来找到一篇medium博客的文章:tensorflow-2-4-on-apple-silicon-m1-installation-under-conda-environment(需要富强上网).
直接一句

conda install -c conda-forge scikit-learn

就解决的问题,我非给源码编译了一遍??希望大家别学我…尽量找到最方便快捷的方法.

源码编译安装sklearn

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

安装相关依赖

conda activate tf24
conda install  -c conda-forge scipy cython \joblib threadpoolctl pytest compilers llvm-openmp
brew install libomp

需要记录一下libomp的位置,一会导入路径时候要修改一下:

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

直接运行安装命令的话又是一大片的红色报错,根据官网的提示:

The compilers meta-package will automatically set custom environment variables:

echo $CC
echo $CXX
echo $CFLAGS
echo $CXXFLAGS
echo $LDFLAGS

They point to files and folders from your sklearn-dev conda environment (in particular in the bin/, include/ and lib/ subfolders). For instance -L/path/to/conda/envs/sklearn-dev/lib should appear in LDFLAGS.
For instance -L/path/to/conda/envs/sklearn-dev/lib should appear in LDFLAGS.

只需要修改编译路径为虚拟环境的路径即可,但是我修改后编译还是没有成功,后来抱着试一试的态度再看一下下面介绍的brew安装的方法,就是把环境变量导入为libomp包的位置,然后再运行,竟然成功了!!!

首先看一下官网给出的(Intel芯片的brew位置),

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
export CPPFLAGS="$CPPFLAGS -Xpreprocessor -fopenmp"
export CFLAGS="$CFLAGS -I/usr/local/opt/libomp/include"
export CXXFLAGS="$CXXFLAGS -I/usr/local/opt/libomp/include"
export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/local/opt/libomp/lib -L/usr/local/opt/libomp/lib -lomp"

需要修改为(上一步没记录的话,需要brew info libomp看一下安装位置)本地编译版本的brew的包安装位置:

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
export CPPFLAGS="$CPPFLAGS -Xpreprocessor -fopenmp"
export CFLAGS="$CFLAGS -I/opt/homebrew/Cellar/libomp/11.1.0/include"
export CXXFLAGS="$CXXFLAGS -I/opt/homebrew/Cellar/libomp/11.1.0/include"
export LDFLAGS="$LDFLAGS -Wl,-rpath,/opt/homebrew/Cellar/libomp/11.1.0/lib -L/opt/homebrew/Cellar/libomp/11.1.0/lib -lomp"

然后再执行编译,

make clean
pip install --verbose --no-build-isolation --editable .

successfully这个单词我印象深刻…

然后用

conda list

查看一下包信息:

scikit-learn              0.24.1                    dev_0    <develop>
scipy                     1.6.0            py38hdf044fb_0    conda-forge
setuptools                49.6.0           py38h10201cd_3    conda-forge
six                       1.15.0             pyh9f0ad1d_0    conda-forge
sqlite                    3.34.0               h6d56c25_0    conda-forge
tapi                      1100.0.11            he4954df_0    conda-forge
tensorboard               2.4.1                    pypi_0    pypi
tensorboard-plugin-wit    1.8.0                    pypi_0    pypi
tensorflow                2.4.0rc0                 pypi_0    pypi

完成!
但是这里还不能急着庆祝,查看一下sklearn包的安装位置:

In [6]: sklearn._config
Out[6]: <module 'sklearn._config' from '/Users/xxx/Downloads/scikit-learn-0.24.1/sklearn/_config.py'>

其实是被安装在了源码文件夹,需要再进行操作才可以安装到虚拟环境中,

  1. 拷贝安装文件以及egg-info文件:

    (tf24) ~/Downloads/scikit-learn-0.24.1 												

    m1芯片Mac安装Apple版TensorFlow(conda-forge)+编译安装sklearn相关推荐

    1. 支持M1芯片mac 达芬奇17中文版(详细安装教程) DaVinci Resolve Studio 17.3.1b5

      DaVinci Resolve Studio 17 Mac中文版 达芬奇版 专业的非线性编辑结合 好莱坞的调色利器! 已通过小编安装运行测试 100%可以使用. 安装教程 达芬奇17版镜像包下载完成后 ...

    2. (转)在Windows上安装GPU版Tensorflow

      转载自在Windows上安装GPU版Tensorflow. 1. 下载安装Anaconda 简单说就是下载 64位 python 3.5 版本的Anaconda https://www.continu ...

    3. M1芯片Mac也可以安装Windows系统啦 使用PD16虚拟机安装ARM版Windows10教程

      现在,如果你想在 M1芯片的 Mac上安装 Windows,你需要准备两个东西. 一个是支持M1芯片mac的Parallels Desktop Mac最新版(最好用的虚拟机软件)支持m1芯片(点击安装 ...

    4. 解决M1处理器安装Pr闪退问题 Adobe Premiere 2020 Mac M1优化稳定版(支持最新款M1芯片Mac)

      苹果公司最新发布的基于M1芯片的Mac笔记本电脑应该很多小伙伴都入手了,但是最新的Mac由于采用的是基于ARM架构的核心,对很多基于Intel(英特尔)处理器的老款mac的软件应用兼容不太好,导致很多 ...

    5. 解决M1芯片Mac版Maxon Cinema 4D R23 安装不上问题 Mac M1 C4DM1中文直装版安装教程

      Cinema 4D R23是目前C4D系列软件的最新版本. 由于简单的操作方式以及强悍的功能,使得它在全世界范围内都十分的受欢迎,比如人们熟知的电影<阿凡达>就是通过它后期处理而来,可见作 ...

    6. arm架构安装rxtx_Parallels推新版本 M1芯片Mac能安装Win 10

      搭载苹果自研M1芯片的Mac终于在上个月发布,性能表现也着实让人惊喜,但是由于基于ARM架构,系统的兼容性一直饱受质疑.然而Mac平台知名虚拟化软件Parallels最近宣布了一个令人振奋的好消息,新 ...

    7. 5月最新M1芯片安装PS2021和PS2020已更新M1芯片mac安装PS2021解决教程(附安装方法)

      众所周知,苹果推出的搭载M1芯片的MAC电脑是基于ARM架构设计的最新处理器,相比intel架构M1芯片有这更低的功耗和更强劲的处理性能,苹果推出的M1为了保证之前的英特尔架构的软件兼容性,使用了Ro ...

    8. 【最新】M1芯片Mac安装PS2021/2020卡在启动页解决教程下载方法

      苹果在近期更新了11.3系统,终于解决PS的权限问题,很多用户可能都看到了M1芯片Mac安装PS2020和PS2021的安装更新,并且都安装了,但是很多M1芯片用户安装后都相继的出现了打开PS 一直卡 ...

    9. 如何怎样在M1芯片Mac上安装PS?M1芯片安装Photoshop详细教学方法2021最新方法

      苹果公司在2020年发布了搭载AMR架构的M1芯片SOC集成处理器,因为架构的变更,相对于英特尔的处理器对很多旧版软件兼容性不是太好! 随着M1搭载M1芯片的MAC更新了最新系统,最新适配的M1的PS ...

    最新文章

    1. Android运行出现“java.io.IOException: 您的主机中的软件放弃了一个已建立的连接。”...
    2. 网络——Cisco Packet Tracer 思科模拟器组网实验
    3. 一个毕设的建成——记录下我毕设途中的《SOP》
    4. 【Python CheckiO 题解】Right to Left
    5. JavaEE实战班第三天
    6. (10)System Verilog 虚方法
    7. 【动态规划】P4170 :涂色(区间dp)
    8. Way back into love
    9. 数据库系统原理及mysql应用教程第二版_数据库系统原理及MySQL应用教程(第2版)...
    10. Java入门 - 循环结构基础
    11. 4412开发板上的步进电机小知识
    12. Android 5.0特性
    13. B2B供应链管理平台主流技术架构方案
    14. HTML标签关系——双标签和单标签,标签的嵌套与并列
    15. 程序员:耐得住寂寞,禁得住诱惑
    16. 计算机考研数学几,考研数学一二三区别是什么?
    17. python:使用机器学习算法对卫星遥感影像进行分类
    18. 【机器学习算法】隐马尔可夫模型HMM(一)
    19. Python百度地图API,通过区县、村镇地址获取完整省市区行政区划
    20. 如何判断软件质量的的好坏,软件质量的特征

    热门文章

    1. 基于I2C总线的MPU6050学习笔记
    2. 线段树——最大数——洛谷——1198
    3. Codeforces Round #422(Div 2)
    4. Andrew Ng机器学习公开课笔记 -- Logistic Regression
    5. 10 个实验性的 JS/CSS3 编程技术
    6. CAD国家制图员技术标准(OSTA)
    7. document 文挡对象详解(JavaScript脚本语言描述)
    8. Excel合并单元格基础注意事项(VSTO 2005)
    9. clion IDEA 2019 Activation Code
    10. 拓扑排序——最大食物链计数(洛谷 P4017)