この記事は macOS 12 以降に適用され、python3.9 に付属する conda を使用します。
Anaconda は、M1 をネイティブにサポートするインストール パッケージをリリースしました。Anacondaの公式 Web サイトにアクセスしてダウンロードしてインストールできます。
コンピュータ環境
ミニフォージ
Anaconda は M1 上では実行できません。代わりに Miniforge が使用されます。
からhttps://github.com/conda-forge/miniforge
ダウンロードしますMiniforge3-MacOSX-arm64
。以下に示すように:
ターミナルに戻り、コマンドを使用してファイルがls -a
あるかどうかを確認し、存在しない場合は、次のコマンドを使用してファイルを作成します。.zshrc
touch ~/.zshrc
ターミナルで次のコマンドを実行し、ダウンロードしたファイルを使用して Miniforge をインストールします。
bash Miniforge3-MacOSX-arm64.sh
ターミナルを再起動し、Python のインストールを確認します。
最初に環境変数を構成する
conda によってインストールされた Python と Jupyter はすべてこのディレクトリにあり
/Users/waldo/miniforge3/bin
、環境変数に追加します
ステップ:
- ターミナル実行:
touch ~/.bash_profile
- ターミナル実行:
open ~/.bash_profile
- 以下に示すように、環境変数を追加します。
- ターミナル実行:
source ~/.bash_profile
- ターミナル実行:
open ~/.zshrc
source ~/.bash_profile
以下の図に示すように、最初の行に: を追加します。
- ターミナル実行:
source ~/.bash_profile
- ターミナル実行:
source ~/.zshrc
国内ミラーソースを anaconda に追加
この記事の以降の構成でも、一部の場所でネットワーク速度がまだ遅い場合は、「グローバル モード」をオンにして問題を解決してください。
1. 查看镜像源: conda config --show channels
2. 添加(两条命令):
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/
3. 再次查看镜像源: conda config --show channels
macOS の PyCharm で conda 環境を構成する方法
私たちの目的は、Anaconda 独自の Python とその豊富なサードパーティ ライブラリを PyCharm で使用することなので、このステップが最も重要です。
Python インタープリターの選択は最も重要なステップであり、最もエラーが発生しやすいステップです。上の図に示されているコンテンツを見たとき、最初の反応は [Conda 環境] をクリックすることですが、これは多くの人にとって間違っており、混乱を招きます。正しい選択はシステム インタプリタです。
次に、以下の図のパスに従って Python インタープリターを選択すると、pycharm で conda パッケージを使用できるようになります。
JupyterLab、JupyterNotebookのインストール
注文
jupyter Notebook をインストールするコマンド:
pip3 install jupyter
またはconda install jupyter
、Enter キーを押してインストールが完了するまで待ちます
。ターミナルに jupyter Notebook と入力し、Enter キーを押してデフォルトのブラウザで開きます。
jupyter lab コマンドをインストールします。
pip3 install jupyterlab
または、conda install jupyterlab
ターミナルに jupyter lab と入力し、Enter キーを押してデフォルトのブラウザで開きます。
JupyterLab のデフォルトの作業パスを構成する
目的: JupyterLab にファイルを置くためのフォルダーを自分で作成します
py ファイルを作成し、コマンドを実行します。jupyter notebook --generate-config
この py ファイルを開きます。open /Users/waldo/.jupyter/jupyter_notebook_config.py
以下の図で対応する場所を見つけ、ノートブックのデフォルトの作業ディレクトリを変更し (コメントを削除し)、保存します。
最初に作業ディレクトリフォルダを作成する必要があることに注意してください
再度開くと、空になります (デフォルトの wpforJupyter フォルダー内)。
TensorFlow2.8をインストールする
Apple Silicon Mac M1 は、TensorFlow 2.8 GPU アクセラレーション (tensorflow-metal PluggableDevice) をネイティブにサポートします。
仮想環境を作成する
仮想環境はサンドボックスに相当し、異なるフレームワークの相互影響を回避するため、複数の異なるバージョンの tensorflow をインストールすることもできます。アンインストールも便利で、仮想環境を直接削除するだけです
仮想環境を作成するための conda を作成します。ここでは Python 3.9.7 (TensorFlow に必要) を使用します。
创建名为“tf2_8”的虚拟环境:
conda create -n tf2_8 python=3.9.7
激活虚拟环境:
conda activate tf2_8
补充一个知识点,删除上述虚拟环境的命令为:
conda remove -n tf2_8 --all
Tensorflow の依存関係をインストールする (仮想環境で実行)
初めてインストールする (tf2.8 バージョンをここにインストールします)
conda install -c apple tensorflow-deps==2.8.0
注:tensorflow-deps 的版本是基于 TensorFlow 的,因此可以根据自己的需求指定版本安装。如下:
安装指定2.6版本:
conda install -c apple tensorflow-deps==2.6.0
安装指定2.8版本:
conda install -c apple tensorflow-deps==2.8.0
アップグレードインストール
以前に v2.6 をインストールしていて、v2.8 に更新したい場合は、次のコマンドを実行してインストールできます。
# 卸载已安装的 tensorflow-macos 和 tensorflow-metal
python -m pip uninstall tensorflow-macos
python -m pip uninstall tensorflow-metal
# 升级 tensorflow-deps
conda install -c apple tensorflow-deps --force-reinstall
# 后者指向特定的 conda 环境
conda install -c apple tensorflow-deps --force-reinstall -n tf2_8
Tensorflowのインストール(仮想環境で実行)
python -m pip install tensorflow-macos
注: このステップでエラーが発生した場合は、それを実行してpip3 install torch
から、上記のコマンドを再実行してください。
tensorflow-metalのインストール(仮想環境で実行)
python -m pip install tensorflow-metal
必要なパッケージのインストール(仮想環境で実行)
conda install libjpeg 或者 pip3 install libjpeg
conda install -y matplotlib jupyterlab
注意: libjpeg 是 matplotlib 需要依赖的库。
次のコマンドを実行します。
pip install -U --force-reinstall charset-normalizer
Jupyter仮想環境の構成
この時点で jupyter ノートブックを開きます。実行は
import tensorflow as tf
失敗します。次の構成が必要です。
システムターミナルを開き、次のコマンドを実行します。
1. conda activate tf2_8 //注意替换成自己的虚拟环境名
2. conda install ipykernel //安装ipykernel
3. sudo python -m ipykernel install --name tf2_8 //在ipykernel中安装当前环境
4. conda deactivate
jupyter を開いてカーネルを切り替えます。
テストコード
出力 こんにちは、TensorFlow
import tensorflow as tf
import os
os.environ["CUDA_VISIBLE_DEVICES"]="0"
tf.compat.v1.disable_eager_execution()
hello=tf.constant('Hello,TensorFlow')
config=tf.compat.v1.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9
sess=tf.compat.v1.Session(config=config)
print(sess.run(hello))
GPUアクセラレーション機能が正常かテストする
import tensorflow as tf
tf.test.is_gpu_available()
GPUのパフォーマンスをテストする
from tensorflow.keras import layers
from tensorflow.keras import models
import tensorflow as tf
import time
begin_time = time.time()
print(f"Running TensorFlow {tf.__version__} with {len(tf.config.list_physical_devices('GPU'))} GPUs recognized")
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.summary()
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_images = train_images.reshape((60000, 28, 28, 1))
train_images = train_images.astype('float32') / 255
test_images = test_images.reshape((10000, 28, 28, 1))
test_images = test_images.astype('float32') / 255
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5, batch_size=64)
test_loss, test_acc = model.evaluate(test_images, test_labels)
test_acc
end_time = time.time()
print('Total time: {} s'.format(int(end_time-begin_time)))