Perception is only useful if it drives behaviour. The Bench gives a 1D agent, a perceive() that classifies the situation (goal behind, ahead, or reached), and a think() that ignores it and never moves. Map each perceived class to a velocity and close the loop. This is sense -> think -> act with a real perceptual front end -- the shape of every reactive robot.
Predict firstYour classifier is accurate and the agent still fails to reach the goal. Where is the problem?
Perception that never becomes a decision is a demo. The loop closes at the class-to-action map, and it is the piece with no training signal of its own.