Python 3.6
+Tensorflow 1.15.0
+keras 2.3.1
,同时由于原来的 Win10本是搭载了 NVIDIA MX150 显卡,同时安装了 CUDA 10.1
+ cuDNN 7.6
。Python
为 3.8.x
,仅支持 tensorflow 2.x
。于是考虑通过最新版本的 Anaconda
(截至2022.8月已原生适配了M1 Pro芯片),但是下载完发现最低支持的 Python
版本为 3.9.x
。无奈只好转向其他途径,寻找方法,终于在一篇文章里找到了可行的方法。M1 Pro(Apple Silicon)安装TensorFlow 1.X版本
总体方法:借助 Docker
构建 python3.5.10
和 tensorflow1.11.0
的镜像,在 Pycharm
中使用该环境即可。
Docker
:注意选择 Apple Silicon
版本。Pycharm
:注意选择 Apple Silicon
版本。arm64
版本的 python3.5.10
的 docker
镜像。3.5.10-buster
版本,不要选择 slim
版本(精简版)。docker pull python:3.5.10-buster
Images
里面可以看到该镜像。run
,在 Containers
里面创建对应的容器。Containers
里面创建对应的容器那一行点击 命令行
图标,开启命令行工具。至此,我们有了一个 python3.5.10
的基本环境了。
⭐ 注:在刚打开的容器的命令行里输入 python -V
可查看当前环境的 python 版本。
由于 Tensorflow
依赖 h5py
,而 h5py
依赖 HDF5
。因此,我们必须先编译安装HDF5
,否则使用 pip
安装 h5py
会报错。
⭐ 在第三步打开的 docker 命令行
内执行如下操作。
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.5/src/hdf5-1.10.5.tar.gz
tar -zxvf hdf5-1.10.5.tar.gz
cd hdf5-1.10.5/
./configure --prefix=/usr/include/hdf5
make
make install
apt-get update
安装vim(镜像中没安装):
apt-get install vim
vim ~/.bashrc
* 在末尾加上两行:
* export PATH=$PATH:/usr/include/hdf5/bin
* export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/include/hdf5/lib
bash ~/.bashrc
pip install Cython
原博主是安装的 3.20.1 版本,而我实际安装的时候发现找不到 3.20 的版本,因此安装了 3.19.x
pip install protobuf==3.20.1
pip install --upgrade pip setuptools wheel
apt-get install libhdf5-dev
pip3 install h5py
至此,h5py 安装完毕!
由于官方没有提供基于 arm 架构的 Tensorflow 1.x 版,只能在 GitHub
上找第三方编译的版本。
这里使用的是 tensorflow1.11.0 aarch64
版本。
tensorflow-1.11.0-cp35-none-linux_aarch64.whl
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.11.0/tensorflow-1.11.0-cp35-none-linux_aarch64.whl
pip install tensorflow-1.11.0-cp35-none-linux_aarch64.whl
至此,tensorflow 1.11.0 安装完毕!
接下来,需要将操作完的容器打包成新镜像。
⭐ 注意:接下来需要切换到系统命令行
,而不是前序步骤的 docker 命令行了!
docker commit [OPTIONS] CONTAINER(容器名称或者ID) [REPOSITORY[:TAG]]
-a : 提交的镜像作者
-c : 使用 Dockerfile 指令来创建镜像
-m : 描述
-p : 在 commit 时,将容器暂停
示例:
打包一个新镜像,其作者是 htl
,容器名称为 silly_swartz
。
tensorflow:1.11.0
中的 tensorflow
是 REPOSITORY
, 1.11.0
是TAG
。
docker commit -a htl -m "python3.5.10&tensorflow1.11.0" silly_swartz tensorflow:1.11.0
此时,可以在 docker 的 Images 内看到打包成功的新镜像,其 NAME
为 tensorflow
,TAG
为 1.11.0
在 Pycharm 中,选择 Preferences -> Project:xxx(xxx为你的项目名) -> Python Interpreter
。
下拉框里选择 show all
,选择 docker
,再选择刚创建的镜像(Server:Docker,Image name:tensorflow:1.11.0,Python interpreter path:python)。
至此,Python 3.5 + Tensorflow 1.11.0 环境就配置好了!
⭐ 注:可以写几行代码测试一下配置的环境是否为 Python 3.5
。
import sys
import tensorflow as tf
if __name__ == '__main__':
print(sys.version)
print(tf.__version__)
可以发现显示:
3.5.10(default, Sep 10 2020, 16:55:48)
[GCC 8.3.0]
1.11.0