AppleM1的AI环境搭建
本文环境搭建的基础是Python3.9, 因为M1为ARM架构,所以放弃了Anaconda,使用Miniforge3。包括Tensorflow, xgboost, Lightgbm, Numpy, Pandas, Matplotlib, NGBoost等。当然,因为是Python3.9, 所以有些库实在是无法使用。 Homebrew
作为Mac的包管理神器,首先当然要先从Homebrew开始。Homebrew已经支持了ARM架构,可以直接进行安装,当然,如果你电脑里以前存在X86的brew支持,请先卸载干净。 Homebrew 卸载/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/uninstall.sh)"Install ARM Homebrew/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
执行完毕后,Homebrew安装在 /opt/homebrew 路径下;在安装完毕后,命令行后会提示执行命令设置环境变量,当然,以防万一,这里也提供一下: echo "eval "$(/opt/homebrew/bin/brew shellenv)"" >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"
如果是bash shell, 则: echo "eval "$(/opt/homebrew/bin/brew shellenv)"" >> ~/.bash_profile eval "$(/opt/homebrew/bin/brew shellenv)"
记得 source ~/.zprofile Install X86 Homebrewarch -x86_64 /bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
X86版本的安装执行完成后命令行未提示添加环境变量。 alias 支持多版本
在终端执行: alias brew="arch -arm64 /opt/homebrew/bin/brew" alias ibrew="arch -x86_64 /usr/local/bin/brew"
这里可以看出两者路径区别 设置镜像中科大源# brew git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git # core git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git # cask git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git brew update清华大学源# brew git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git # core git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git # cask git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git brew update恢复默认源# brew git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git # core git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core.git # cask git -C "$(brew --repo homebrew/cask)" remote set-url origin https://github.com/Homebrew/homebrew-cask.git brew update
更多源 Homebrew 其他相关设置bottles镜像# bottles for zsh echo "export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles" >> ~/.zprofile source ~/.zprofile # bottles bash echo "export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles" >> ~/.bash_profile source ~/.bash_profilecask
目前cask是从GitHub上读取软件源,而GitHub Api对访问有限制,如果使用比较频繁的话,可以申请Api Token,然后在环境变量中配置到 HOMEBREW_GITHUB_API_TOKEN 。 echo "export HOMEBREW_GITHUB_API_TOKEN=yourtoken" >> ~/.zprofile source ~/.zprofileInstall Miniforge3
首先需要下载安装包: Download
请下载arm64(Apple Silicon)版本:
下载完成后进入到文件目录,比如我是在 ~/Download/ 内,执行: bash Miniforge3-MacOSX-arm64.sh
整个执行过程会有大概三次填写 yes 并回车确定,最后一次会询问你是否执行 conda init , 会自动在 ~/.zshrc 内添加环境变量,如果未执行的,可以将下面语句加入文件末尾: # >>> conda initialize >>> # !! Contents within this block are managed by "conda init" !! __conda_setup="$("/Users/xx/miniforge3/bin/conda" "shell.zsh" "hook" 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/Users/xx/miniforge3/etc/profile.d/conda.sh" ]; then . "/Users/xx/miniforge3/etc/profile.d/conda.sh" else export PATH="/Users/xx/miniforge3/bin:$PATH" fi fi unset __conda_setup conda activate tf # <<< conda initialize <<<
记得自行更改 /Users/xx/ 内的用户名
等待Miniforge3安装完成,然后设置一个专供学习Tensorflow的虚拟环境 conda create -n tf python=3.9.5 conda activate tf # 将这句添加到~/.zshrc内,每次打开shell都会自动执行
关于conda切换环境的命令,建议自行Google学习一下,很有用。 Install Tensorflow
目前网上流传的Tensorflow安装基本是两个版本,一个是安装一大堆的支持和依赖,一个是使用 yml 文件提前准备好环境库一键完成环境创建,比如 environment.yml : conda env create --file=environment.yml --name=tf
其实这一步也很简单,Apple为了大力推广自家的ARM,已经为大家做好了这部分准备,我们只需要安装就行了。
假设目前在 tf 环境内 conda install -c apple tensorflow-deps python -m pip install tensorflow-macos python -m pip install tensorflow-metal
好了,结束!
可以自行利用下面一段代码测试下: from tensorflow.keras import layers from tensorflow.keras import models model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation="relu", input_shape=(28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation="relu")) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation="relu")) model.add(layers.Flatten()) model.add(layers.Dense(64, activation="relu")) model.add(layers.Dense(10, activation="softmax")) model.summary()
from tensorflow.keras.datasets import mnist from tensorflow.keras.utils import to_categorical (train_images, train_labels), (test_images, test_labels) = mnist.load_data() train_images = train_images.reshape((60000, 28, 28, 1)) train_images = train_images.astype("float32") / 255 test_images = test_images.reshape((10000, 28, 28, 1)) test_images = test_images.astype("float32") / 255 train_labels = to_categorical(train_labels) test_labels = to_categorical(test_labels) model.compile(optimizer="rmsprop", loss="categorical_crossentropy", metrics=["accuracy"]) model.fit(train_images, train_labels, epochs=5, batch_size=64) test_loss, test_acc = model.evaluate(test_images, test_labels) test_acc
执行过程中可以在资源管理器中看到GPU的占用:
其他Lightgbmconda install Lightgbm
一句代码解决,完全靠谱。 xgboost
xgboost稍微有点麻烦,我测试了最稳妥的安装方式,还是自行编译,那这个时候我们就需要用到 brew 安装并设置编译环境了:
注意,我用的都是 brew 而非 ibrew , 目前都是在ARM环境下完成操作。 brew install gcc brew install cmake brew install libomp
2023年3.17 日更新:
到这里去下载源码,然后执行下面代码: pip install xgboost-x.x.x.tar.gz # 把版本号换成你所下载的 #比如我下载的xgboost-1.7.4.tar.gz, 则输入 pip install xgboost-1.7.4.tar.gz
然后就OK了。
至于其他的,Numpy在安装Tensorflow的时候就自动作为依赖安装了,Pandas, Matplotlib, NGBoost等,执行下方: conda install -c conda-forge pandas conda install -c conda-forge matplotlib conda install -c conda-forge ngboost
如果conda内实在没有的,再试试pip安装,再不行,就只能自行下载源码编译了。
目前在当前环境下解决不了的几个库: CatBoost Cairo -> Pycairo GraphEmbedding CV2 igraph
在整个过程中,可能会遇到各种各样的问题,大家要习惯于使用Google和查阅官方文档;
Apple M1的AI环境搭建 notes.hivan.me/#/AI_Data/Apple_M1_AI_environment_construction 参考
Tensoflow-macos
Run xgboost on Mac and Regression data
Accelerating TensorFlow Performance on Mac
The new Apple M1 chips have accelerated TensorFlow support
M1 Mac Mini Scores Higher Than My RTX 2080Ti in TensorFlow Speed Test.
GPU acceleration for Apple"s M1 chip?
M1芯片Mac上Homebrew安装教程
Mac mini M1使用简单体验(编程、游戏、深度学习)
Installing TensorFlow 2.4 on MacOS 11.0 without CUDA for both Intel and M1 based Macs
在 M1 芯片 Mac 上使用 Homebrew
Apple M1终于让MacBook变的可以炼丹了
Install XGBoost and LightGBM on Apple M1 Macs
Installing TensorFlow on the M1 Mac
Getting Started with tensorflow-metal PluggableDevice
M1芯片mac安装xgboost和lightgbm
AI - Apple Silicon Mac M1 机器学习环境 (TensorFlow, JupyterLab, VSCode)
M1芯片安装tensorflow
使用MacBook pro M1搭建基于ML Compute加速的TensorFlow深度学习环境
你的Mac有了专用版TensorFlow,GPU可用于训练,速度最高提升7倍
在M1的Mac上安装Tensorflow(避坑版)
在M1芯片Mac上搭建原生适配Python环境
Conda-forge Miniforge
M1 mac安装PyTorch的完整步骤指南
macOS M1(AppleSilicon) 安装TensorFlow环境
傻瓜版M1配置Tensorflow-超简单近乎一键完成
environment.yml
opencv-python
MAC安装Opencv以及Dlib碰到的一些问题
Jupiter Widgets
启动SparkContext报错
MacBook Pro 2020 M1芯片安装xgboost
xgboost
Homebrew / Linuxbrew 镜像使用帮助
镜像助手
Apple Silicon Mac 安装xgboost
M1芯片mac安装xgboost和lightgbm
mac安装lightgbm踩坑心得,亲测有效!
MAC 上 使用lightgbm遇到image not found 解决办法总结
杂记-Macbook Pro M1芯片能玩深度学习吗?
美女之都重庆满街光腿大衣,长裤秀腰回头率极高俗话讲,北方姑娘精明,南方盛产漂亮姑娘,特别以川渝地区最为出名。四川成都的太古里有很多时尚的男人和漂亮的女人,一般人在这里,都巴不得躲起来,生怕当成乡巴佬。在重庆街头拍照的时候,我
拼板凳深度,曼联逆转西汉姆,热刺不敌谢菲联文羊城晚报全媒体记者徐扬扬足总杯18决赛第二个比赛日的四场比赛3月2日战罢,曼联坐镇主场以3比1逆转西汉姆,伯恩利在主场以1比0小胜福里特伍德,南安普顿在主场以1比2被英乙的格里姆
华天拿下四星级大赛冠军!杭州亚运,他和中国马术准备好了华天(中)站上最高领奖台。以一个含金量十足的冠军开启巴黎奥运会的备战之旅,对于华天而言,正是他计划之中的理想开局。2月28日,在意大利蒙特利布雷蒂国际马术三项赛比赛中,中国骑手华天
永仁县十里樱桃谷花漫成海眼下正是蜂飞蝶舞,春光明媚的时节,永仁县维的乡阿者尼村的十里樱桃谷,1200亩白色樱桃花桃花梨花竞相绽放,整个山谷宛若梦幻仙境。这是维的乡打造的樱桃川滇省际乡村旅游示范样板。十里樱
足总杯1谢菲联遭淘汰直播吧3月2日讯北京时间3月2日凌晨355,足总杯第五轮,热刺客场挑战谢菲尔德联。上半场,小卢卡斯击中横梁,双方互交白卷。下半场,恩迪亚耶替补破门,热刺苦攻无果!全场比赛结束,热刺
大牛与二牛胡吹乱嗙之海港新帅哈维尔大牛二牛,听说了没有,上海海港足球俱乐部正式宣布西班牙籍教练哈维尔佩雷拉出任球队主教练。二牛听说了,但总感觉不厚道,好像是挖了人家嵩山龙门俱乐部的墙角。大牛好像是有那么一点,但一个
内维尔阿森纳缺少夺冠经验后劲不足,还是更看好曼城夺冠直播吧3月1日讯曼联名宿加里内维尔日前在天空体育节目TheOverlap中谈到阿森纳,他认为阿森纳最终会在英超争冠中掉队,而曼城更可能夺得冠军。内维尔说道阿森纳太早就太过激动了,如
黑科技上新!吴江首辆无人扫地车亮相街头昨天(2月28日)早上7点,在吴江大厦南广场上,一辆萌态可掬又科技感十足的蚂蚁车开始沿着路面,缓慢行驶。车辆所经之处,落叶灰尘纸片等被一一吃掉,遇到行人和车子,它还会智能避让。这是
千亿县持续扩围县城卡位战烽烟再起县在崛起编者按郡县治,天下安。2023年全国两会进入倒计时,县域经济高质量发展成为焦点话题。翻看此前发布的中央一号文件,县域亦是高频词,与县相关的表述多达35处,县域的重要性被抬升
中国篮球界再次受到震动中国篮球界再次受到震动。新疆广汇如果不纳税,将面临严厉处罚。此前,中国足协发生了一系列腐败案件,导致多名高级官员下台。人民日报发出严厉警告,任何涉及腐败的人都将受到调查,导致一些人
扬科维奇解读国足名单年龄不是选人标准打出中国人的精气神北京时间3月1日,中国男足国家队在海口召开媒体见面会,新主帅扬科维奇正式与媒体见面。对于网上质疑比较多的新一期国足名单,扬科也谈了自己的选择球员标准。扬科首先对成都蓉城表示了感谢,