今天(2022年3月25日)尝试在 M1 的 Mac 上安装了 OpenCV 和 TensorFlow,记录下过程。
安装顺序
安装过程可以分为以下过程:
- 安装 Homebrew: 推荐;
- 安装 conda: 必须;
- 安装 OpenCV
- 安装 TensorFlow
安装过程
安装 Homebrew
参考Homebrew国内如何自动安装(国内地址),在 zsh 中输入如下脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
接下来,推荐修改 Homebrew 的安装源,参考Mac 下 brew 切换为国内源,可以使用中科大或清华的源。
安装 conda
使用 Homebrow 安装 conda:
brew install miniforge
安装结束时会询问是否要出实话 zsh,选择 yes。
接下来创建并激活虚拟环境,接下来的工作都将在该环境下:
conda create --name cv python=3.9.10
conda activate cv
顺便说一句,要退出虚拟环境,运行 conda deactivate
即可。
如果之前没有修改 brew 源或由于某些网络原因,导致使用 brew 安装时造成超时等错误发生的,可以先把 sh 安装文件下载下来。下载文件可以从github上下载,注意当前文件名是 Miniforge3-4.12.0-0-MacOSX-arm64.sh。下载时可以使用带有断点续传功能的下载工具如 Neat Download Manager。 下载后执行:
brew install path_to_the_file
安装 OpenCV
执行:
conda install -c conda-forge opencv
测试下是否安装成功:
>>> import cv2 as cv
>>> print(cv.__version__)
4.5.5
>>>
安装 TensorFlow
Apple 提供了官方教程Getting Started with tensorflow-metal PluggableDevice:
conda install -c apple tensorflow-deps //安装依赖
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
也可直接 pip install
因为通常 Mac 上环境变量里已有python。
如果 pip 安装时超时卡住失败的,也可以使用国内的镜像源或者使用 i 参数,如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-macos
不过说实话,我尝试执行上述命令后仍未成功安装。我依然是到镜像源网站(如这里)上把 whl 文件下载后再进行安装的。
接下来试一下是否安装成功:
% python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
Metal device set to: Apple M1
systemMemory: 16.00 GB
maxCacheSize: 5.33 GB
2022-03-25 22:12:55.809626: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:305] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.
2022-03-25 22:12:55.809811: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:271] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)
tf.Tensor(-265.03717, shape=(), dtype=float32)
结果返回了 tensor,表明安装成功!
Comments