MacOS(M1芯片 arm架构)下如何安装tensorflow

Posted _xwh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacOS(M1芯片 arm架构)下如何安装tensorflow相关的知识,希望对你有一定的参考价值。

导语

由于目前anconda官网上对于macos系统只支持X86结构的,因此基于arm结构的MacOS暂时无法使用anconda来对tensorflow进行配置。虽然Anconda无法在M1上运行,但是相应的替代品有Miniforge,同样也能实现类似的效果。此外,苹果官方称还支持添加metal插件,从而可以调用集成在M1芯片中的GPU部分,但是目前只支持tensorflow2.5和2.6的版本,而本节使用使用的版本是tensorflow2.4 python3.8,因此并未安装加速插件。官方安装metal方法如下:

Tensorflow Plugin - Metal - Apple Developer

下面将开始讲解在Mac(M1)上如何安装tensorflow

1. 下载Miniforge3-MacOSX-arm64.sh脚本文件,并且运行

miniforge下载地址为GitHub - conda-forge/miniforge: A conda-forge distribution. 

我的Miniforge3-MacOSX-arm64.sh脚本文件所安装的路径是

/Users/xiewenhui/MiniforgeShell/Miniforge3-MacOSX-arm64.sh

我们打开终端terminal,首先进入文件夹,进入到Miniforge3-MacOSX-arm64.sh所在的文件夹

cd ~xiewenhui

cd MiniforgeShell

运行脚本文件

sh Miniforge3-MacOSX-arm64.sh

结果如下图所示,然后一直进行enter回车,直到需要你手动输入yes或者no的地方,对于选择yes或者no的问题,一律输入yes,然后一直回车直到结束。

运行成功图如下所示,代表Miniforge3-MacOSX-arm64.sh运行完成,此时会在以用户名命名的文件夹下(此处我的文件夹是xiewenhui)生成一个Miniforge3文件夹,代表脚本运行完毕后所生成的安装文件(我们把Miniforge3当作anconda一样的包管理器,其中会包含python和conda,因此conda不需要再另外安装)。

2. 创建虚拟环境

(1)用conda创建一个虚拟环境,同时设置python版本

        下面tensorflow是我创建的虚拟环境名,当然也可以写成tf24等等

conda create -n 虚拟环境名称 python=版本号
conda create -n tensorflow python=3.8

(2)激活虚拟环境

conda activate 虚拟环境名
conda activate tensorflow

        提示:如果需要取消激活状态,输入conda deactivate即可

(3)查看当前环境的python位置

        此时支持tensorflow的python解释器就位于虚拟环境envs中,它的版本和(1)中所创建的版本是一致的,因此之后我们在pycharm等IDE中直接导入下述地址即可(后面会讲到)。

 理解:miniforge3是Miniforge脚本运行后所创建的包管理环境,miniforge3是类似于Anconda一样的作用,在Anconda中我们可以创建多个虚拟环境,在miniforge3也是一样的其中我们所创建的虚拟环境位于…/miniforge3/envs文件夹下,envs下的每个文件夹对应着一个独立的虚拟环境,当我们需要在IDE中切换python解释器的时候,我们便找到所需的python解释器:…/miniforge3/envs/虚拟环境名称(是一个文件夹,文件夹名称和你在conda create -n 虚拟环境名 python=xxx是一个名)/bin/python,然后导入IDE即可。

3. 安装tensorflow

        当创建完虚拟环境后,做完准备工作之后,我们需要安装tensorflow-macos,这是我们真正的目的。

(1)下载tensorflow安装包(支持arm架构版本的)

        下载链接为Releases · apple/tensorflow_macos · GitHub,下载完成之后找一个文件夹进行保存即可,然后直接解压到当前文件夹。

 

 (2)保持tensorflow激活状态,进入到刚刚解压的tensorflow_macos文件夹中,手动pip安装whl文件

  注意不要输入conda deactivate关闭了tensorflow激活状态,直接cd找到文件夹即可

  我的tensorflow_macos文件夹位置是/Users/xiewenhui/tensorflow_macos

   找到tensorflow_macos文件夹:

 继续进入下一级文件夹arm64:

 手动pip安装之前,先看一下arm64下面有哪些whl文件,防止pip的时候发生遗漏:

存在5个whl文件都需要安装

pip安装之前我们需要修改lib路径和envs路径(很重要),方便我们下一步的安装:

# 更改为tensorflow_macos下载解压后的文件夹
libs="/Users/xiewenhui/tensorflow_macos/arm64/"

# 替换成tensorflow的虚拟环境路径,tensorflow是你之前创建虚拟环境的名称,虚拟环境什么名,envs下文件夹就什么名
env="/Users/xiewenhui/miniforge3/envs/tensorflow"

下面手动安装这些文件,依次输入下面命令:

pip install --upgrade pip wheel 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/numpy-1.18.5-cp38-cp38-macosx_11_0_arm64.whl"

pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/tensorflow_macos-0.1a1-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.1a2-cp38-cp38-macosx_11_0_arm64.whl”

pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard

如果发生pip安装错误,可能是文件路径不对,lib路径和envs路径得确保正确,其次就是你所安装的whl文件名和上述代码中的不一致,以自己的whl文件名为主。tensorflow_macos不同的版本其中所包含的whl文件名可能不同。

如果出现命令行出现dquote的时候,最好自己直接粘贴ls显示的文件名,pip指令可以复制,但是pip install ..."$libs/文件名.whl"的时候,建议文件名.whl从ls显示出来的whl文件名中复制。

(3)以上安装步骤就基本完成,但是注意由于Miniforge3中和Mini Conda一样,主要包含了python和conda,其他的一些科学计算库例如pandas等等需要自己手动安装,方式如下:

conda install -y pandas matplotlib scikit-learn jupyterlab

以上安装步骤已经完成,下面可以对安装是否成功进行测试

4. 测试

命令行输入python,打开python shell环境

依次输入下面代码:

import tensorflow as tf

print(tf.__version__)

当引入tensorflow不报错并且打印出tensorflow版本时,代表tensorflow安装成功

5. Pycharm导入含有tensorflow包的python解释器

根据图中路径寻找python解释器,在envs文件夹下,位置时~/miniforge3/envs/你的虚拟环境名(我的是tensorflow)/bin/python

Pycharm测试:

import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices())

补充:实际上可以按照苹果官网的方法进行在线pip安装,Tensorflow Plugin - Metal - Apple Developer

python -m pip install tensorflow-macos

但是由于在安装中可能出现h5py无法安装的情况,因此我们直接下载tensorflow_macos安装包,下载到本地之后再用pip安装本地文件,不仅速度快,而且不会出现h5py的相关报错

自己存在一些问题的小记录:

由于安装时的tensorflow版本时2.4.0-rc0,但是在之后创建一些项目之后版本莫名变成了2.7.0。如果想要在装回以前的2.4.0-rc0,则按照上面的步骤重新pip一下whl文件即可。

ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


macOS操作视频曝光



A

RM架构




vivo新专利暗示折叠屏将至!



在今年的WWDC开发者大会上 

公布了AppleSilicon Mac计划







01

ARM架构的Mac产品


ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!

AppleSilicon Mac




预计将在今年第四季度,推出搭载基于ARM架构的Mac产品,目前,针对适配的问题,苹果已经面向开发者推出了搭载A12Z芯片的Apple开发者设备套件,也就是一台定制版的Mac mini,按照此前苹果的说法,在这上面可以直接运行原生的iOS和iPadOS应用



ARM Mac的运行视频

02


ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


ARM Mac


现在,网上就流出了一段ARM Mac的运行视频,从视频中可以看到,其不仅可以正常的运行米家、抖音、微信、YouTube等常规的软件,还可以直接打开王者荣耀并实现正常的游戏,而且看起来非常流畅


综合此前的消息来看,苹果给开发者提供的DTK是一台搭载A12Z芯片的测试机,内置16GB的运存和512GB的SSD,预装macOS Big Sur和Xcode



vivo

03



vivo折叠屏



ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


在全面屏发展到一定程度之后,手机厂商们纷纷开始了在折叠屏领域的探索,目前市面上已发布并可以买到的机型包括华为的MateX系列,以及三星的Galaxy Fold和Z Flip系列,此前包括小米、vivo等品牌均展示过自家的折叠屏工程机,但很长一段时间过去了,并没有要实现量产上市的消息。现在,据天眼查数据显示,vivo方面新增了好几条专利信息,其中就包含了一系列名为“显示屏及电子设备”和“柔性显示屏及电子设备”的专利内容


从描述情况来看,这似乎是在暗示vivo一些有关折叠屏手机的内容,看来vivo在这方面已经做好了准备,发布折叠屏应该也只是时间问题了



ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!






ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!




04

V2024A的vivo新机



3C认证



ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


另外,有微博网友(数码闲聊站)还放出了一些关于vivo的新消息,消息显示一款型号为V2024A的vivo新机通过了国家的3C认证,标配一组最高55W的快充头,而在处理器方面,消息中提到,该机将搭载骁龙865移动平台,定位应该是一款旗舰机,不过具体的型号未知,感兴趣的朋友,可以关注一下



三星

05


ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


Exynos处理器


大家都知道,三星在自家的S和Note系列的旗舰手机上,一直都是采用双芯片的策略,也就是根据市场和地区的不同,分别搭载高通骁龙8系和自家的Exynos处理器,不过这样做也存在一定的问题


此前就有超过3万人联名请愿,要求三星停用Exynos处理器,这其中最主要的问题还是Exynos与骁龙之间存在着较为明显的性能差异。不过呢,今天,有消息称在三星Note20系列上,三星将为其搭载Exynos 990的官方优化改进版本,其运行速度与骁龙865 Plus版一样,非常快



06

Galaxy Fold 2



Galaxy Fold 2



ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


但说实话,实际情况还得等新机发布之后,用户体验了才知道!那说到三星,还有一个比较劲爆的消息,网上突然流传出了一张号称是三星Galaxy Fold 2的真机照片


从照片中可以看到,新机或将改名叫Galaxy Z Fold 25G,主屏幕取消现款的切角设计,摄像头采用挖孔的形式,放置在右侧屏幕顶部的中间位置,另外,边框看上去更窄,整体的屏占比也将更加的极致。综合目前的消息来看,新机国行版预计会搭载高通骁龙865 Plus移动平台,内置4365mAh电池,同时支持25W的有线和15W的无线充电,如果不出意外的话,该机有望在8月5日与Note20系列同台登场,期待一下



荣耀

07


ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


Hunter FRD


今天一早,荣耀总裁赵明发微博表示:大家对游戏本有哪些期待?显然这是在暗示,荣耀品牌旗下的首款游戏本很快就要跟大家见面了


此前,网上曾流传出了一张荣耀游戏本的设计手稿图,从图中来看,新机的代号为Hunter FRD,整机不仅融入了超跑的设计风格,同时还采用了钻石切割等元素,预计将带来非常个性的外观设计


至于配置目前还没有更多的消息流出,但既然是定位为一款游戏本,那高性能的处理器肯定是不能少的,前不久荣耀刚刚携手AMD推出了搭载全新锐龙处理器的MagicBook笔记本电脑,那么这次的游戏本会不会继续选择AMD的处理器呢?我个人觉得还是非常有可能的



08

小米



曾学忠将入职小米



ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


今天一早有传言称,原中兴手机CEO曾学忠将入职小米,现在,该消息得到了小米官方的证实,雷军发微博表示:小米迎新了,欢迎新伙伴曾学忠


同时雷军表示:曾总有二十多年的产业经验,他将担任小米集团副总裁兼手机部总裁,负责手机产品的研发和供应链等业务。随后,林斌转发该微博,欢迎曾总加盟小米,出任手机部总裁,相信在曾总的带领下,小米手机会越做越好


早上翻看曾学忠微博时,其微博名还是“曾学忠-中兴”,现在已经更名为“曾学忠-小米”,同时曾总隐藏了近半年内的微博,仅保留了一条7月15日的生日动态。然后没过多久,曾总就用小米10 Pro发布了入职小米后的第一条微博,其表示今天正式加盟小米,重回手机江湖,回归初心,沉下心做更好的产品,我爱小米,小米手机,我来了~



新品A7S III

09


ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!
ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


微单Alpha 7S III


不久前,佳能正式发布了全新的EOS R5和R7,发布结束后,索尼官微发微博表示:我自闭了.jpg


不过没过多久,官微又站出来说“我想开了”,同时预热新品A7S III即将发布,7月28日晚,索尼正式推出了这款大家期待了很久的新一代全画幅微单Alpha 7S III


该机配备全新的1210万像素全画幅背照式传感器,支持4K 120p视频录制,同时还采用了全新设计的散热结构和双卡槽记录。其实关于A7S III的传闻已经有很长一段时间了,关于这台相机,大家都非常关注它的视频拍摄能力,不过这一次,索尼并没有给该机加入8K视频拍摄的能力,而是给了一组4K 120p,不知道能不能满足各位索粉的需求






ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!

免责声明

小验致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系后台,我们会立即处理,谢谢!




ARM架构macOS操作视频曝光;vivo新专利暗示折叠屏将至!


买手机→验手机

专业鉴定手机

提供简单便捷的苹果查询服务



以上是关于MacOS(M1芯片 arm架构)下如何安装tensorflow的主要内容,如果未能解决你的问题,请参考以下文章

ARM64架构(M1芯片):无法安装pg gem(使用PostgresApp)

在arm架构的mac上安装sql server(m1芯片 or m2芯片)

软件及环境-arm系列

mac设置

macos(m1芯片)系统mysql连接tableau步骤安装iodbc和mysql驱动及遇到问题总结

『开发技巧』M1芯片MacOS安装brew教程