MacOS从零安装支持GPU的TensorFlow

MacOS从零安装支持GPU的TensorFlow

PS:适用于M系列芯片

1.安装并配置miniconda

1.1为什么需要miniconda

如果不想在同一个环境上安装不同版本的软件时,就需要这种管理环境的软件,它可以让用户新创建一个环境并在其中安装特定版本的软件,当环境被自己搞坏了的时候,可以很轻易删除并创建新环境,不影响基础环境的生态。还有其他软件可以实现miniconda的功能,conda系列适合python相关软件的安装。

miniconda(anaconda也是同一个系列产品,但预装软件更多,体积更大)自带python环境和pip,在新创建的环境中安装的包属于该环境。

1.2安装

官方链接:Installing Miniconda — Anaconda documentation

清华源:Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

随便去哪找对应的安装包,例如对于M系列的macos,需要下载macos arm64或者交macos M1 的pkg包(相比sh,pkg下载后双击即可)

1.3配置

安装完毕之后,conda会自带一个默认的根环境(base环境),且配置好了环境变量,打开终端之后就是base环境。

此时最好不要直接使用base环境,因为自己创建的新环境搞乱了可以直接删除,但base环境无法删除,里面有conda必备的软件。

a、配置国内的下载源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

终端执行这两条命令,会在用户目录下创建.condarc文件并将配置写入文件中。

为了在查看conda软件包下载链接时显示手动配置的通道,可以执行下面的命令(暂不清楚作用,可以不执行)

conda config --set show_channel_urls yes

可以在终端直接cd之后ls -a查看一下,如果之前有文件,可以手动编辑文件内容:

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults

b、创建环境

conda create --name xxx python=3.9

这里的xxx为你想要自定义的环境名字,我设置为tf,因为我主要在这个环境用TensorFlow 2.15版本。

c、激活环境并配置默认

conda activate xxx

激活自定义的环境之后,终端开头就可以看到已经在新环境了,但此时如果关闭终端再打开,仍是base环境,需要修改配置文件。

直接cd进入用户目录,ls -a查看隐藏文件,找到.zshrc文件:

vi .zshrc

在最后一行加入上面的conda activate xxx。

2.安装TensorFlow

在自定义的环境中之下,安装软件包可以用conda install命令,也可以用pip install 命令,TensorFlow官方安装文档用的是pip。

2.1选哪个版本

TensorFlow目前最新版本是2.17,如果想用最新的后面就不用带版本号。不过据说2.15之后,自带的keras是keras3,和keras2区别不小,所以这里我安装了2.15版本(其实我先安装了2.17,然后发现一些代码跑不通,最后把环境搞坏了,无奈重装了conda哈哈哈)

M系列mac版没有cuda的GPU,所以在Linux或者Windows普通 NVIDIA GPU下需要考虑的cuda和cudnn版本,这里不需要考虑,只要保证python不低于3.9就好,TensorFlow固定2.15之后,安装苹果GPU的支持库TensorFlow-metal直接安装就行。

2.2安装

对于2.13及以后版本,安装TensorFlow本体(我用的是这个):

pip install tensorflow==2.15

对于2.12及以前版本,安装:

pip install tensorflow-macos

安装GPU支持库metal:

pip install tensorflow-metal

2.3 检查GPU是否可用

TensorFlow一般都是可用的,就不在这里写怎么检查了,要检查一下GPU能不能用:

import tensorflow as tf
print(tf.__version__)
print(tf.test.is_built_with_cuda())  # 检查是否使用了CUDA
print(tf.config.list_physical_devices('GPU'))  # 列出可用的GPU设备
print(tf.test.is_gpu_available())

因为没用cuda,所以cuda那个输出时false,后两个应该可以看出GPU是否可用了。

实际情况下,可以找一段小的训练,打开活动监视器上面“窗口”里面的“GPU历史记录”,看在训练时gpu是否占用

import numpy as np
import tensorflow as tf
​
x = np.random.random((10000, 5))
y = np.random.random((10000, 2))
x2 = np.random.random((2000, 5))
y2 = np.random.rando((2000, 2))
​
inp = tf.keras.layers.Input(shape = (5,))
l1 = tf.keras.layers.Dense(256, activation = 'sigmoid')(inp)
l1 = tf.keras.layers.Dense(256, activation = 'sigmoid')(l1)
l1 = tf.keras.layers.Dense(256, activation = 'sigmoid')(l1)
l1 = tf.keras.layers.Dense(256, activation = 'sigmoid')(l1)
l1 = tf.keras.layers.Dense(256, activation = 'sigmoid')(l1)
o = tf.keras.layers.Dense(2, activation = 'sigmoid')(l1)
model = tf.keras.models.Model(inputs = [inp], outputs = [o])
model.compile(optimizer = "Adam", loss = "mse")
model.fit(x,y,epochs=10)

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值