The 19-year-old, who is Carnegie's youngest ever captain, will make the switch ahead of the 2016-17 season.
"I'm really excited about moving to Bath next season," he told the club's official website.
"I've spent all my formative years here in Yorkshire and they've been the making of me, especially in my development at Yorkshire Carnegie where I've been able to test myself in the Championship.
"Now is the time for me to take the next step in my career, and I'm confident I've got what it takes to succeed with Bath."
Walker was a member of the England Under-20 squad that won the Junior World Championships two years ago.