Apple Silicon (mac m1 pro) 完整配置CS285 (brew, miniforge, mujoco)

Apple Silicon 配置CS285

我的环境是:

  • MacBook Pro (14英寸,2021年),芯片是m1 pro
  • conda 4.12.0, Python 3.9.10, mujoco 2.1.1(是2.1.1!!)

配置Homebrew

参考这篇知乎M1芯片Mac上Homebrew安装教程 - 知乎就够了,很无敌。我选择了ARM版本和X86版本brew的共存,从macOS Catalina(10.15.x) 版开始,Mac使用zsh作为默认Shell,所以我直接将下面的

alias abrew='arch -arm64 /opt/homebrew/bin/brew' # apple 
alias ibrew='arch -x86_64 /usr/local/bin/brew'   # intel

添加到了/.zshrc中,这样每次开Terminal就会自动定义好啦。为什么是添加在/.zshrc可以参考MAC 设置环境变量PATH 和 查看PATH - 简书,大概是这个文件在启动Terminal时会自动执行。

下载miniforge

网址:GitHub - conda-forge/miniforge: A conda-forge distribution.
Apple Silicon (mac m1 pro) 完整配置CS285 (brew, miniforge, mujoco)_第1张图片

下载arm64这个版本,我们也可以发现上面说明了base environment中要安装Python 3.9.
可以参考Apple MacBook M1 Anaconda安装 Tensorflow_快乐小码农的博客-CSDN博客_mac安装tensorflow2.0的方法一。
我是直接单击下载,然后

cd ~/Download
bash Miniforge3-MacOSX-arm64.sh

这里悠着点回车,慢慢看,一直选yes就好了。

配置CS285的虚拟环境

总体的环境配置参考这个Issue:Support MuJoCo 2.1.1 (including arm64 mac support) · Issue #662 · openai/mujoco-py · GitHub,非常酷。
支持的是MuJoCo 2.1.1!!

首先,下载mujoco-2.1.1-macos-universal2.dmg,我直接Google这个文件,找到之后直接下载(参考回答Support MuJoCo 2.1.1 (including arm64 mac support) · Issue #662 · openai/mujoco-py · GitHub)

打开该dmg文件,你会看到

在这里插入图片描述

接着,将MuJoCo.app拷贝到/Applications中,直接拖进去就可以了。

再跟着issue中的步骤:

mkdir -p $HOME/.mujoco/mujoco210         # Remove existing installation if any
ln -sf /Applications/MuJoCo.app/Contents/Frameworks/MuJoCo.framework/Versions/Current/Headers/ $HOME/.mujoco/mujoco210/include
mkdir -p $HOME/.mujoco/mujoco210/bin
ln -sf /Applications/MuJoCo.app/Contents/Frameworks/MuJoCo.framework/Versions/Current/libmujoco.2.1.1.dylib $HOME/.mujoco/mujoco210/bin/libmujoco210.dylib
ln -sf /Applications/MuJoCo.app/Contents/Frameworks/MuJoCo.framework/Versions/Current/libmujoco.2.1.1.dylib /usr/local/lib/

# For M1 (arm64) mac users:
# The released binary doesn't ship glfw3, so need to install on your own
brew install glfw
ln -sf /opt/homebrew/lib/libglfw.3.dylib $HOME/.mujoco/mujoco210/bin

原issue中没有提到安装gcc-11,我这里补充一下

abrew install gcc@11 # abrew见我配置Homebrew时自定义的alias

然后接着

export CC=/opt/homebrew/bin/gcc-11         # see https://github.com/openai/mujoco-py/issues/605

pip install mujoco-py && python -c 'import mujoco_py'

接下来是conda创建虚拟环境了,我直接参考cs285 2021fall的homework_fall2021/installation.md at main · berkeleydeeprlcourse/homework_fall2021 · GitHub,但是因为这个配置比较老了,所以我是这样搞的

# Create a conda environment that will contain python 3
conda create -n cs285 python=3.9
# activate cs285
conda activate cs285

查看hw1/requirements.txt中的那些packages,然后手动pip install新版本,因为有一些老版本可能没有适配Apple Silicon. 比如我遇到的Matplotlib,matplotlib 3.5.0之后才开始适配,E.g.

pip install matplotlib==3.5.0

下面我就列一下我安装的版本

numpy==1.22.3
gym==0.23.1
tensorboard==2.3.0
tensorboardX==1.8
matplotlib==3.5.0
ipython==6.4.0
moviepy==1.0.0
pyvirtualdisplay==1.3.2
torch==1.9.0
opencv-python==4.5.5.64
ipdb==0.13.3
box2d-py==2.3.8

最后

# Allow your code to be able to see 'cs285'
cd <path_to_hw1>
pip install -e .

因为版本不一样,所以有一些之前可以的用法现在已经用不了了,最终要跑起来还需要自己debug project中的代码,这里就不多讲了。

你可能感兴趣的:(bug&遗忘知识整理,强化学习,python,强化学习,conda)