1. O que é ML-Agents
O Unity Machine Learning Agents Toolkit (ML-Agents) é um projeto de código aberto que permite que jogos e simulações sirvam como ambientes para o treinamento de agentes inteligentes. Fornecemos implementações (baseadas em PyTorch) de algoritmos de última geração para permitir que desenvolvedores de jogos e amadores treinem facilmente agentes inteligentes para jogos 2D, 3D e VR/AR. Os pesquisadores também podem usar a API Python simples de usar fornecida para treinar Agentes usando aprendizado por reforço, aprendizado por imitação, neuroevolução ou qualquer outro método. Esses agentes treinados podem ser usados para várias finalidades, incluindo controlar o comportamento do NPC (em uma variedade de configurações, como multiagente e adversarial), testes automatizados de construções de jogos e avaliação de diferentes decisões de design de jogos antes do lançamento.
Tradução:
Unity Machine Learning Agents (ML-Agents) é um plug-in Unity de código aberto que nos permite treinar agentes inteligentes em ambientes de jogos e ambientes de simulação. Você pode usar aprendizado por reforço (aprendizado por reforço), aprendizado por imitação (aprendizado por imitação), neuroevolução (neuroevolução) ou outros métodos de aprendizado de máquina e controlar o agente por meio de uma API Python fácil de usar. Também fornecemos implementações (baseadas no TensorFlow) de algoritmos de última geração que permitem que desenvolvedores de jogos e amadores treinem facilmente agentes inteligentes para jogos 2D, 3D e VR/AR. Esses agentes treinados podem ser usados para uma variedade de propósitos, incluindo controlar o comportamento do NPC (em várias configurações, como vários agentes e confronto), testes automatizados de compilações no jogo e avaliação de versões de pré-lançamento de diferentes decisões de design de jogo. O ML-Agents é benéfico tanto para desenvolvedores de jogos quanto para pesquisadores de IA, pois fornece uma plataforma centralizada que nos permite testar os últimos avanços em IA no rico ambiente do Unity e tornar os resultados mais acessíveis a mais pesquisadores e jogos. desenvolvedores.
2. Descrição ambiental
Ambiente operacional: Win10
Versão do ML-Agent: Release 20 ( link para download de todas as versões )
Versão do Unity: 2021.3.18f1
Arquivo de instalação do Anaconda: Anaconda3-2022.10-Windows-x86_64.exe ( site oficial ) Esta versão vem com Python3.9
3. Instale o Anaconda
Anaconda, traduzido como boa constrictor , é uma distribuição Python de código aberto que inclui mais de 180 pacotes científicos, como conda e Python e suas dependências.
No processo de consulta de materiais de rede, alguns artigos são configurados diretamente usando Python + pip, enquanto outros são configurados usando Python + conda no Anaconda.
conda é um gerenciador de pacotes e ambientes de código aberto que pode ser usado para instalar diferentes versões de pacotes de software e suas dependências na mesma máquina e para alternar entre diferentes ambientes.
pip é um gerenciador de pacotes para instalar e gerenciar pacotes de software.
O gerenciamento do ambiente do conda é mais simples que o do pip e não afetará o Python que acompanha o sistema, enquanto o pip é mais restritivo e aplicável apenas ao Python.
Como a própria documentação oficial do ML-Agent precisa configurar um ambiente virtual Python, e o Anaconda pode usar o conda para configurar o ambiente virtual com mais facilidade, optei por instalar o Anaconda.
O método de instalação específico é basicamente clicar no arquivo exe oficial para instalar, você pode consultar este artigo .
Dentre eles, cabe destacar que:
- No ambiente Windows, o caminho de instalação não pode conter espaços e não pode ser codificado em "unicode".
- No ambiente Windows, o caminho de instalação não pode conter espaços e não pode ser codificado em "unicode".
- No ambiente Windows, o caminho de instalação não pode conter espaços e não pode ser codificado em "unicode".
Diga coisas importantes três vezes. No início, como estava acostumado a instalar arquivos em uma pasta definida por mim Program Files
e o nome dessa pasta contém espaços, vários erros foram relatados como resultado. Descobri mais tarde que esse problema foi mencionado em um artigo .
Verifique se a instalação foi bem-sucedida:
- Clique no menu "Iniciar"
- Clique em "Anaconda3 (64 bits)"
- Clique em "Anaconda Prompt (Anaconda3)" e insira-o no console
conda list
para visualizar o nome do pacote instalado e o número da versão. Se for exibido normalmente, a instalação foi bem-sucedida. - Ou a entrada
conda --version
pode exibir com sucesso o número da versão também significa que a instalação foi bem-sucedida, conforme mostrado abaixo.
(base) C:\Users\Administrator>conda --version
conda 23.1.0
Ao usar o Anaconda posteriormente, você pode ir diretamente para o menu Iniciar -> Anaconda3 (64 bits) -> Prompt do Anaconda (Anaconda3)
4. Docking projeto ML-Agents
Depois de ler um círculo de artigos na Internet, como alguns artigos são relativamente antigos, eles podem não corresponder à nova versão atual, o que pode causar alguns mal-entendidos.
Recomenda-se comer com documentos oficiais , o sabor é melhor.
Atualmente, a versão mais recente do projeto git é a Release 20, que pode ser baixada diretamente do git ou baixada do endereço de download de todas as versões
Deve-se notar que diferentes versões possuem seus próprios requisitos de configuração, que são mencionados nos documentos oficiais e devem ser observados.
Os requisitos para o Release 20 são os seguintes:
- A versão do Unity precisa ser 2021.3 ou superior
- A versão do Python precisa ser 3.8.13 ou superior
A questão que precisa ser enfatizada é sobre o componente ml-agents do Unity . No momento, os artigos na Internet basicamente recomendam baixar a versão mais recente do componente ML-Agents do Package Manager do Unity. Na prática, isso pode causar um série de erros.
De acordo com o processo do documento oficial, a forma correta é a seguinte:
- Navegue até o diretório Window -> Package Manager
- Clique no
+
canto superior esquerdo - escolher
Add package from disk...
- No diretório, selecione o pacote compactado Release 20 baixado e descompactado do git, e há uma pasta chamada
com.unity.ml-agents
- Selecione
package.json
o arquivo e abra
Aguarde um momento, você pode ver os plug-ins locais importados
Mas ainda haverá erros neste momento, e este é outro mal-entendido que os artigos online atuais causarão: não basta instalar o componente ML-Agents .
De acordo com o processo do documento oficial, também precisamos instalar um com.unity.ml-agents.extensions
plug-in chamado , e o processo é praticamente o mesmo descrito acima. Esse plug-in também pode ser encontrado no pacote compactado Release 20.
Após a conclusão da instalação, ficará assim:
Além disso, se você copiar todas as amostras da versão 20 para o projeto Unity, talvez seja necessário introduzir Input System
um plug-in, que pode ser baixado diretamente do Gerenciador de pacotes.
Além disso, deve-se observar que, se a localização do plug-in for alterada após a introdução do plug-in local, será relatado um erro no projeto. Nesse momento, o plug-in precisa ser realocado em o Gerenciador de Pacotes.
5. Crie um ambiente ML-Agent no Anaconda
Abra o Prompt do Anaconda para entrar no console
// 查看已有的所有环境
conda-env list
Caso nenhum ambiente tenha sido criado, será exibido da seguinte forma:
(base) C:\Users\Administrator>conda-env list
# conda environments:
#
base * C:\anaconda\Anaconda3
O comando para criar o ambiente é o seguinte:
// 创建新环境
conda create -n ml-agents python=3.9
ml-agents
É o nome do ambiente, que você mesmo pode definir aqui.python=3.9
É para definir o ambiente para a versão Python 3.9, aqui você também pode configurar você mesmo, mas precisa atender aos padrões mínimos do ML-Agent.
Ative o ambiente
O caminho padrão ao abrir o Prompt do Anaconda é o seguinte:
(base) C:\Users\Administrator>
// 激活 ml-agents 环境
(base) C:\Users\Administrator>activate ml-agents
(ml-agents) C:\Users\Administrator>
Pode-se observar que após a ativação, a frente (base)
fica alterada (ml-agents)
, indicando que agora está ml-agents
no ambiente virtual de .
Sair do ambiente:
O comando para sair do ambiente na versão atual é o seguinte:
// 退出 ml-agents 环境
(ml-agents) C:\Users\Administrator>conda deactivate
(base) C:\Users\Administrator>
Pode ser devido a problemas de versão que os comandos de saída em alguns artigos na Internet sejam diferentes dos usados aqui.
Atualizar pip:
Entre no ambiente ml-agents, execute o comando para atualizar o pip e verifique se o pip é uma versão relativamente nova, caso contrário, podem ocorrer problemas durante o processo de download de outros plug-ins.
(ml-agents) C:\Users\Administrator>python.exe -m pip install --upgrade pip
6. Instale o PyTorch
- Ative o ambiente ML-Agent criado
(base) C:\Users\Administrator> activate ml-agents
- De acordo com a documentação oficial, use o comando pip para baixar o PyTorch. O plug-in precisa aguardar pacientemente. Se um erro for relatado no meio do caminho, pode estar relacionado à rede. Certifique-se de que o pip é a versão mais recente e tente fazer o download novamente ou encontre outras fontes.
(ml-agents) C:\Users\Administrator>pip3 install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html
-f
É encontrar o link de download do pacote a partir do arquivo url especificado e localizar o arquivo do pacote a ser instalado pelo pip a partir do arquivo obtido pelo seguinte parâmetro url (em vez da fonte padrão de instalação do pip).
7. Instale os pacotes Python necessários
Para treinamento personalizado, mais dois pacotes Python precisam ser instalados, ambos incluídos no arquivo zip da Versão 20.
ml-agents
: contém algoritmos de aprendizado de máquina que permitem aos usuários treinar comportamentos em cenas do Unity.ml-agents-envs
: contém um conjunto de APIs do Python para interagir com as cenas do Unity, que é a camada base que facilita o envio de mensagens de dados entre as cenas do Unity e os algoritmos de aprendizado de máquina do Python. Então,ml-agents
dependeml-agents-envs
.
O método de instalação é abrir o prompt do Anaconda, ativar o ambiente ml-agents criado anteriormente e, em seguida, usar o cd
comando para navegar até o diretório correspondente na pasta descompactada pela versão 20 e, em seguida, usar o comando pip para instalar.
pip install .
Durante o ml-agents-envs
processo de instalação, você pode encontrar um erro:
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
Basta baixar a versão inferior de acordo com suas necessidades protobuf
.
Após tentativa e erro, baixei 3.19.6
a versão
pip3 install protobuf==3.19.6
Depois disso, ele pode ser instalado normalmente.
Depois que toda a instalação estiver concluída, você pode usar mlagents-learn --help
para testar se a instalação foi bem-sucedida.
Neste ponto, o ambiente Unity ML-Agents preliminar é configurado e, em seguida, você pode tentar usar várias demonstrações oficiais.