Um estudo preliminar sobre a conexão do Unity com agentes de ML

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:
  1. No ambiente Windows, o caminho de instalação não pode conter espaços e não pode ser codificado em "unicode".
  2. No ambiente Windows, o caminho de instalação não pode conter espaços e não pode ser codificado em "unicode".
  3. 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 Filese 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:
  1. Clique no menu "Iniciar"
  2. Clique em "Anaconda3 (64 bits)"
  3. Clique em "Anaconda Prompt (Anaconda3)" e insira-o no console conda listpara visualizar o nome do pacote instalado e o número da versão. Se for exibido normalmente, a instalação foi bem-sucedida.
  4. Ou a entrada conda --versionpode 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
insira a descrição da imagem aqui

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.
insira a descrição da imagem aqui
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
  • escolherAdd package from disk...
    insira a descrição da imagem aqui
  • No diretório, selecione o pacote compactado Release 20 baixado e descompactado do git, e há uma pasta chamadacom.unity.ml-agents

insira a descrição da imagem aqui

  • Selecione package.jsono arquivo e abra

insira a descrição da imagem aqui
Aguarde um momento, você pode ver os plug-ins locais importados

insira a descrição da imagem aqui
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.extensionsplug-in chamado , e o processo é praticamente o mesmo descrito acima. Esse plug-in também pode ser encontrado no pacote compactado Release 20.
insira a descrição da imagem aqui
insira a descrição da imagem aqui

Após a conclusão da instalação, ficará assim:
insira a descrição da imagem aqui

Além disso, se você copiar todas as amostras da versão 20 para o projeto Unity, talvez seja necessário introduzir Input Systemum 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-agentsno 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.

  1. ml-agents: contém algoritmos de aprendizado de máquina que permitem aos usuários treinar comportamentos em cenas do Unity.
  2. 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-agentsdepende ml-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 cdcomando 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-envsprocesso 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.6a 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 --helppara 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.

Acho que você gosta

Origin blog.csdn.net/EverNess010/article/details/129141930
Recomendado
Clasificación