Is there a way to target an endpoint that has the python and GPUs installed? I would rather dedicate a machine for the learning (python installed) and have a few machines free for modifications and testing the NN.. I can connect to the ip and port on the learning server but how do I point the Unity agent to this server, there is obviously a default 127.0.0.0 or similar connection.. any ideas?
thanks but that's what I want to avoid. I have a few servers here I'd prefer to use as the python/MLagents syste, and a few machines I use for game dev. happy new year
If you can connect to your servers using ssh, you can use ssh tunnels. You can create tunnels in either direction (using `-L` or `-R`). The tunnel basically opens up a port on one end of the connection, which outputs stuff into the other machine. So you can create ports on your remote server that connect to mlagents-learn on your local machine.
Wish you a happy new year too! I have asked ChatGPT, it answered: To point the ML-Agents Unity Editor to an external server where mlagents-learn is installed, follow these steps: In the Unity Editor, go to "Edit > Project Settings > ML-Agents" to open the ML-Agents settings window. In the "Communication" section, select "External" as the communication mode. In the "Server Address" field, enter the address of the external server where mlagents-learn is installed. The address should be in the format <server_ip>:<port>, where server_ip is the IP address of the server and port is the port number that mlagents-learn is listening on. In the "Server Unity Version" field, enter the version of Unity that is installed on the external server. Click "Apply" to save the changes. In the Unity Editor, you can now use the ML-Agents menu to send and receive data from the external mlagents-learn server. otherwise: "I can connect to the ip and port on the learning server but how do I point the Unity agent to this server, there is obviously a default 127.0.0.0 or similar connection." You mean when training you used: --base-port BASE_PORT The starting port for environment communication. Each concurrent Unity environment instance will get assigned a port sequentially, starting from the base- port. Each instance will use the port (base_port + worker_id), where the worker_id is sequential IDs given to each instance from 0 to (num_envs - 1). Note that when training using the Editor rather than an executable, the base port will be ignored. (default: 5005) I get what you want but I have no idea how to do it. The only idea I have is to mount a file from your computer (where you have it compiled) on to the server and then use on the server mlagents-learn. And then somehow get the the NNmodel back. Otherwise I let it train on my local machine with 6 instances and try the save checkpoint results out.