I just tried the Conv2d layer on ue-main (b1a5dcf49535bbdc388b3f1dd81bd72fe7c37d74), seems to work. Thanks.
There’s a compilation error though that needs to be fixed. In LearningTrainer.cpp:721 ff. the function UE::Learning::Trainer::IsObservationSchemaSubsetCompatible is missing a case for Conv2. It’s simple enough to add (I can open a PR if that’s easier for you):
case Observation::EType::Conv2d:
{
const Observation::FSchemaConv2dParameters Parameters = ObservationSchema.GetConv2d(ObservationSchemaElement);
if (Object->GetStringField(TEXT("Type")) != TEXT("Conv2d"))
{
return false;
}
return IsObservationSchemaSubsetCompatible(Object->GetObjectField(TEXT("Element")).ToSharedRef(), ObservationSchema, Parameters.Element);
}
There was also the fluke that my code didn’t run anymore until I set CustomTrainerModulePath in the trainer process settings to an absolute path, despite me not having moved any files around. But that may also be due to the fact that I’m configuring everything via code and not assets. So, I might have missed a new UPROPERTY initalizer of something.