Tenho estudado gym_unity há algum tempo recentemente e deixei algumas informações aqui.
Exemplo
- Exemplo de treinamento Gym_unity RollerBall: https://blog.csdn.net/alibutter/article/details/120908687
- Exemplo de treinamento gyn_unity 3DBall: https://zhuanlan.zhihu.com/p/554927641?utm_id=0
Código fonte: https://github.com/Delta-King/UnityPPO
Baixe a versão estável da versão 19 quando implementada: https ://github.com/Unity-Technologies/ml-agents/releases/tag/release_19
informação oficial
- Site oficial dos agentes ml: https://github.com/Unity-Technologies/ml-agents/tree/develop
- Documentação chinesa de ml-agents: https://github.com/Hustacds/ml-agents/tree/master/docs/localized/zh-CN
- Documentação da interface externa da academia mlagents_env: https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Python-Gym-API.md
- Documentação da interface multiagente mlagents_env: https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Python-PettingZoo-API.md
- Documentação da interface python mlagents_env: https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Python-LLAPI.md
- A explicação oficial de gym_unity: https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Python-Gym-API-Documentation.md
- Interface multiagente: https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Python-PettingZoo-API.md
- Descrição do arquivo de configuração (arquivo yaml) durante o treinamento de agentes de ML: https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Training-Configuration-File.md
Erro de processo:
Relatório de erro: \ml-agents-develop\com.unity.ml-agents\Runtime\Sensors\RayPerceptionSensor.cs(459,39): erro CS0103: O nome 'QueryParameters' não existe no contexto atual Motivo: ML-
agentes A versão é muito alta e há requisitos para a versão do Unity. Basta mudar para a versão 19.
Referência: https://github.com/Unity-Technologies/ml-agents/issues/5958
Nota:TypeError: Os descritores não podem ser criados diretamente.
Se esta chamada veio de um arquivo _pb2.py, seu código gerado está desatualizado e deve ser regenerado com protoc >= 3.19.0.
Se você não conseguir regenerar imediatamente seus protos, algumas outras soluções alternativas possíveis são:
- Faça downgrade do pacote protobuf para 3.20.x ou inferior.
- Defina PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (mas isso usará puro
Análise Python e será muito mais lento.Solução
(downgrade da versão 4.0 do protobuf): pip install protobuf==3.20.*
Erro: TypeError: não é possível converter o tensor do tipo de dispositivo cuda:0 em numpy. Use Tensor.cpu() para copiar o tensor para
Solução: Referência: https://blog.csdn.net/weixin_45887062/article/details/126417024
Erro: ImportError: não é possível importar o nome 'cygrpc' de 'grpc._cython' (D:\A\envs\pythonProject\lib\site-packa Solução: pip install grpcio==1.27.2 Referência
:
https://github.com /GoogleCloudPlatform/python-docs-samples/issues/1540
modelo gym_unity:
from mlagents_envs.environment import UnityEnvironment
from gym_unity.envs import UnityToGymWrapper
env_directory = 'D:\\Desktop\\3DBall\\UnityEnvironment.exe'
unity_env = UnityEnvironment(env_directory, base_port=5005, no_graphics=False)
env = UnityToGymWrapper(unity_env, uint8_visual=True)
执行env.step(action)和env.reset()就可以
UnityGymWrapper:
UnityGymWrapper é a interface de encapsulamento entre Unity e academia, encapsulando o ambiente Unity para uso como academia. UnityGymWrapper é adequado apenas para agentes únicos, UnityGymWrapper5 pode ser usado para multiagentes Multiagente
usando UnityGymWrapper5 Exemplo:
Código fonte: https://github.com/leehe228/LogisticsEnv
Artigo: Controle de UAV baseado em aprendizado de reforço multiagente para mobilidade aérea urbana logística
UnityGymWrapper Use o modelo:
Referência: https://lab.uwa4d.com/lab/624a2749a8103dabd0e58f10
dúvida:
Onde escrever a etapa e reset() do ambiente de unidade personalizado? ? ?
Como salvar o modelo treinado por gym_unity? ? ? ?
Os arquivos .pt geralmente se referem aos arquivos de modelo PyTorch, que são um formato usado na estrutura PyTorch para salvar e carregar pesos e estruturas de modelos.
Referência: https://blog.csdn.net/weixin_44943389/article/details/131940271Insira a descrição da imagem aqui