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

人工智能389

导语

由于目前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 ,然后一直回车直到结束。

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

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

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

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中直接导入下述地址即可(后面会讲到)。

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

理解: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,下载完成之后找一个文件夹进行保存即可,然后直接解压到当前文件夹。

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

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

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

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

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

找到tensorflow_macos文件夹:

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

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

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

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

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

存在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

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

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

4. 测试

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

依次输入下面代码:

import tensorflow as tf

print(tf.__version__)

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

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

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

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

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

Pycharm测试:

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

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

补充:实际上可以按照苹果官网的方法进行在线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文件即可。

Original: https://blog.csdn.net/qq_44174803/article/details/123922390
Author: _xwh
Title: MacOS(M1芯片 arm架构)下如何安装tensorflow

Original: https://blog.csdn.net/qq_44174803/article/details/123922390
Author: _xwh
Title: MacOS(M1芯片 arm架构)下如何安装tensorflow



相关阅读

Title: python金融数据分析及可视化

目录

1、数据来源——Wind金融终端

在Wind数据库中下载到的宁德时代(代码300750.SZ)从2020-01-03到2021-12-31共485个数据,包括开盘价,最高价,最低价,收盘价以及交易量。
(需要数据进行操作的同学可以在我的资源上下载,由于Wind资讯金融终端不是免费的,而且作为喜欢白嫖的我们,有什么办法得到免费的数据呢,下次找到了一定分享给大家zll[doge])
MacOS(M1芯片 arm架构)下如何安装tensorflow

; 2、数据读取及其基本描述

import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('....../300750SZ.xls')

此处注意新版pandas.read_excel()函数并不支持.xlsx文件的读取,因此需要将数据文件类型转化为xls(或者可以用其他库函数,不过我觉得这个办法是最简单的)

df = pd.DataFrame(data)
df.head()

将数据data转化为DataFrame类型,并打印出前五行:
MacOS(M1芯片 arm架构)下如何安装tensorflow

df.describe()

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

3、收盘价与成交量关系图


df['close'].plot()

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


df[['close','volume']].plot(subplots=True)

MacOS(M1芯片 arm架构)下如何安装tensorflow
基本上我们就可以得到收盘价与成交量之间的关系图了,但是从两张图中来看,其x轴均不是日期,并且成交量一般使用的是柱状图,所以,我们加一点点细节让图变得好看一些。

list_date = list(df['Date'])
df.index = list_date

price = df['close']
volumes = df['volume']
top = plt.subplot2grid((4,4), (0,0), rowspan=3, colspan=4)
top.plot(price.index, price, label='close')
plt.title('300750.SZ Close Price from 2020-2021')
plt.legend(loc=2)

bottom = plt.subplot2grid((4,4), (3,0), rowspan=1, colspan=4)
bottom.bar(volumes.index, volumes)
plt.title('300750.SZ Daily Trading Volume')

plt.gcf().set_size_inches(12,8)
plt.subplots_adjust(hspace=0.75)

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

4、收益率曲线

(>......

Original: https://blog.csdn.net/weixin_47974364/article/details/123408886
Author: 貮叁
Title: python金融数据分析及可视化



相关阅读

Title: (保姆教程)Spyder 配置Tensorflow(2.5.0)和keras(2.4.3)

(保姆教程)Spyder 配置Tensorflow(2.5.0)和keras(2.4.3)

前言

其实安装Tensorflow和keras的过程不难,但是寻找匹配的版本,以及使得Spyder适应花了自己很长时间!

安装Tensorflow

打开anaconda prompt

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

; 首先查看自己的python版本

python --version

接着创建一个新的环境

conda create -n tf python=3.9.7

进入这个环境

conda activate tf

安装Tensorflow

pip install tensorflow==2.5.0

安装Keras

首先输入以下两行代码()

conda install mingw libpython
pip install theano

安装对应的Keras(版本一定要对应)

pip install keras==2.4.3

适应Spyder

在安装完成之后打开Spyder会发现其实用的解释器还是base,这个时候我们需要切换到tf中的python.exe解释器,但是切换之后重启内核,会显示内核错误!

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

解决:

这个时候需要我们先在刚才的命令行中输入

conda install spyder

重新安装spyder,再次打开会发现可以正常运行

输入以下代码测试

import keras
from keras.datasets import mnist
(train_images,train_labels),(test_images,test_labels) = mnist.load_data()
print('shape of train images is ',train_images.shape)
print('shape of train labels is ',train_labels.shape)
print('train labels is ',train_labels)
print('shape of test images is ',test_images.shape)
print('shape of test labels is',test_labels.shape)
print('test labels is',test_labels)

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

成功运行!

但美中不足的是,使用tensorflow之后之前conda自带的很多库就用不了了,需要重新pip或者conda

Original: https://blog.csdn.net/qq_43102225/article/details/124833331
Author: skyoung13
Title: (保姆教程)Spyder 配置Tensorflow(2.5.0)和keras(2.4.3)

相关文章
聚类模型(清风数模笔记) 人工智能

聚类模型(清风数模笔记)

1.聚类是什么,与分类有何不同 聚类是将样本划分为多个类的过程,与分类不同,聚类是不清楚要分成哪几类的。 2.K-means聚类算法 步骤 1.确定需要聚几个类(簇), 确定k的值。根据样本指标的不同...
我的NLP 人工智能

我的NLP

环境安装 我在重新安装这个环境,总是遇到transformers的包的问题, 建议下次装环境时,保持网络通畅 而且创建环境时,不要声明python版本 下面是我创建的环境 name: pytorch-...
深度学习训练滑动验证码(Yolov5) 人工智能

深度学习训练滑动验证码(Yolov5)

注:本文只用于学习,如有问题请联系作者。 场景介绍 对于现在网络的大多数滑动验证码如果想用一个通用的方法还是需要用深度学习,用图像处理的方式对于单一类型还是比较好用的,多类型还是难以适用的。例如如下多...
什么是边缘计算? 人工智能

什么是边缘计算?

什么是边缘计算? * - 壹、背景 - 贰、概念 - 叁、原则 - 肆、架构 - 伍、边缘计算解决了哪些问题 - + 1、时延 + 2、隐私和安全 + 3、带宽 - 陆、应用领域 壹、背景 众所周知,...
DDPG代码实现 人工智能

DDPG代码实现

DDPG代码实现 文章目录 * - DDPG代码实现 - + 代码及解释 + * 1.超参数设定 * 2.ReplayBuffer的实现 * 3.Agent类的实现 * - 3.1.__init__ ...