As far as I remember, the struct observation simply concatenates the child elements, so the neural network should end up the same or very similar in your example.
Hi,
I think the course leaves out an important detail in the IL part: the trainer file needs to be set to “train_behavior_cloning” in the trainer process settings.
Otherwise, the python prcoess will try to run the default PPO trainer, and the ULearningAgentsImitationTrainer will not have sent the correct JSON config.
For Google, and for the next person trying to fix this, the subprocess will throw this error.
LogLearning: Display: Sending config signal…
LogLearning: Display: ImitationTrainer_8: Imitation Training Started
LogLearning: Display: ImitationTrainer_8: Sending / Receiving initial policy…
LogLearning: Display: Subprocess: Traceback (most recent call last):
LogLearning: Display: Subprocess: File “C:\Epic Games\UE_5.5\Engine\Plugins\Experimental\LearningAgents\Content\Python\train.py”, line 53, in
LogLearning: Display: Subprocess: train(communicator.config, communicator)
LogLearning: Display: Subprocess: File “C:\Epic Games\UE_5.5\Engine\Plugins\Experimental\LearningAgents\Content\Python\train_ppo.py”, line 30, in train
LogLearning: Display: Subprocess: ppo_config = config[‘PPOSettings’]
LogLearning: Display: Subprocess: ~~~~~~^^^^^^^^^^^^^^^
LogLearning: Display: Subprocess: KeyError: ‘PPOSettings’