Instalação do chip Mac M1 miniAnaconda, Jupyter, ambiente TensorFlow

Anaconda lançou um pacote de instalação que suporta nativamente M1, você pode ir ao site oficial do Anaconda para baixar e instalar,

ambiente de computador

insira a descrição da imagem aqui

Mini forja

O Anaconda não pode rodar no M1, o Miniforge é usado para substituí-lo.

https://github.com/conda-forge/miniforgeBaixe em Miniforge3-MacOSX-arm64. Como mostrado abaixo:

insira a descrição da imagem aqui
Volte ao terminal, use ls -ao comando para verificar se existe .zshrcum arquivo, caso contrário, use o comando touch ~/.zshrcpara criar o arquivo:
insira a descrição da imagem aqui

Execute o seguinte comando no terminal para instalar o Miniforge usando o arquivo que você acabou de baixar:

bash Miniforge3-MacOSX-arm64.sh

Reinicie o terminal e verifique a instalação do Python:
insira a descrição da imagem aqui

Configure primeiro as variáveis ​​de ambiente

O Python e o Jupyter instalados pelo conda estão todos neste diretório /Users/waldo/miniforge3/bin, adicione-os à variável de ambiente

etapa:

  1. Execução terminal:touch ~/.bash_profile
  2. Execução terminal:open ~/.bash_profile
  3. Adicione variáveis ​​de ambiente, conforme mostrado abaixo:
    Adicione uma descrição da imagem
  4. Execução terminal:source ~/.bash_profile
  5. Execução terminal:open ~/.zshrc
  6. Adicione: na primeira linha source ~/.bash_profile, conforme mostrado na figura abaixo:
    insira a descrição da imagem aqui
  7. Execução terminal:source ~/.bash_profile
  8. Execução terminal:source ~/.zshrc

Adicionar fonte de espelho doméstico ao anaconda

Se nas seguintes configurações deste artigo a velocidade da rede ainda estiver lenta em alguns locais, ative o "modo global" para resolver o problema

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

Adicione uma descrição da imagem

Como configurar o ambiente conda no PyCharm no macOS

Nosso objetivo é usar o próprio python do Anaconda e suas ricas bibliotecas de terceiros no PyCharm, portanto esta etapa é a mais importante.

Escolher um interpretador Python é a etapa mais crítica e mais sujeita a erros. Ao vermos o conteúdo mostrado na imagem acima, a primeira reação é clicar em Ambiente Conda, o que é incorreto e confuso para muitas pessoas. A escolha correta deve ser System Interpreter.

Em seguida, siga o caminho na figura abaixo para selecionar o interpretador python, então você pode usar o pacote conda no pycharm:
insira a descrição da imagem aqui

Sobre JupyterLab, JupyterNotebook

Ordem

Instale o comando jupyter notebook:
pip3 install jupyterOu conda install jupyterpressione enter para aguardar a conclusão da instalação
Digite jupyter notebook no terminal, pressione enter para abrir com o navegador padrão

Instale o comando jupyter lab:
pip3 install jupyterlabou conda install jupyterlab
digite jupyter lab no terminal, pressione enter para abrir com o navegador padrão

Configure o caminho de trabalho padrão do JupyterLab

Objetivo: Crie você mesmo uma pasta para colocar os arquivos no JupyterLab

Crie um arquivo py, comando: jupyter notebook --generate-config
Adicione uma descrição da imagem
abra este arquivo py: open /Users/waldo/.jupyter/jupyter_notebook_config.py
encontre o local correspondente na figura abaixo, modifique o diretório de trabalho padrão do notebook (remova o comentário), salve:
Adicione uma descrição da imagem
Observe que a pasta do diretório de trabalho deve ser criada primeiro

Após a reabertura, ele fica vazio ( na pasta wpforJupyter padrão ):
Adicione uma descrição da imagem

Instale o TensorFlow2.8

Apple Silicon Mac M1 suporta nativamente aceleração de GPU TensorFlow 2.8 (tensorflow-metal PluggableDevice)

Crie um ambiente virtual

O ambiente virtual equivale a um sandbox, evitando a influência mútua de diferentes frameworks, de forma que múltiplas versões diferentes do tensorflow podem até ser instaladas. Também é conveniente desinstalar, basta excluir o ambiente virtual diretamente

Crie um conda para criar um ambiente virtual, aqui use python 3.9.7 (exigido pelo TensorFlow).

创建名为“tf2_8”的虚拟环境:
conda create -n tf2_8 python=3.9.7
激活虚拟环境:
conda activate tf2_8

补充一个知识点,删除上述虚拟环境的命令为:
conda remove -n tf2_8 --all

Instale dependências do Tensorflow (executadas em um ambiente virtual)

Instale pela primeira vez (instale a versão tf2.8 aqui)

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

instalação de atualização

Se você instalou a v2.6 antes e deseja atualizar a v2.8, você pode executar o seguinte comando para instalar.

# 卸载已安装的 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 

Instale o Tensorflow (executado em um ambiente virtual)

python -m pip install tensorflow-macos

Nota: Se ocorrer um erro nesta etapa, execute-o pip3 install torche execute novamente o comando acima

Instale o tensorflow-metal (executado em um ambiente virtual)

python -m pip install tensorflow-metal

Instale os pacotes necessários (executados no ambiente virtual)

conda install libjpeg 或者 pip3 install libjpeg
conda install -y matplotlib jupyterlab
注意: libjpeg 是 matplotlib 需要依赖的库。

Execute o seguinte comando:

pip install -U --force-reinstall charset-normalizer 

Configuração do ambiente virtual jupyter

Abra o notebook jupyter neste momento, a execução import tensorflow as tfnão teve êxito, a seguinte configuração é necessária

Abra o terminal do sistema e execute o seguinte comando:

1. conda activate tf2_8 //注意替换成自己的虚拟环境名

2. conda install ipykernel //安装ipykernel

3. sudo python -m ipykernel install --name tf2_8 //在ipykernel中安装当前环境

4. conda deactivate

Abra o jupyter e troque o kernel:
insira a descrição da imagem aqui
insira a descrição da imagem aqui

código de teste

Saída Olá, 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))

insira a descrição da imagem aqui

Teste se a função de aceleração da GPU está normal

import tensorflow as tf
tf.test.is_gpu_available()

insira a descrição da imagem aqui

Teste o desempenho da 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)))

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/Waldocsdn/article/details/124435043
Recomendado
Clasificación