I had exactly the same problem with my labradoodle who is coming up for a year. He is great at home and follows commands brilliantly even when outdoors, IF there was nobody around! As soon as he saw another dog I was completely irrelevant and didn't matter what treat I put under his nose. Things have improved with a lot of work.
Basically I stopped the puppy classes as he just could not cope with being around so many dogs, I now have one to one sessions. Some things my trainer has taught me which may help:
Play with dog every day for 10 min stretches, basically you want to make yourself his bestest ever play mate, so one of the exercises to try is to put him on a lead, get a toy and get him to play with you (good to do this outside where there are distractions), then as soon as his attention wanders you do a very exaggerated sigh of exasperation and pull him next to you so he cannot get the toy. Stand still and do not look at him. He should look up at you and then you pounce on the toy like it's the most exciting thing ever and he should start to play again, eventually when you make your sound he should want to play again with you so much he instantly looks at you or even jumps at you to get you to play.
Other things to do - hold a treat in your hand, he will go for it, put your hand into a fist until he withdraws and then open your hand again, if he goes for it again do a fist again, until he stays away with your hand open, but he MUST look at you, not the treat. As soon as he does, he gets the treat. You can progress this to moving the treat around and he should remain focused on your eyes.
Chuck treats around when you are walking, he will focus on finding them and get distracted by what you might throw. Labs are very food orientated so use it!
I am sure you are doing these sorts of things and I thought to myself how can playing with my dog help me out on a walk? I was of the mindset that he was great at home and everything was fine until he saw another dog but honestly, it has really helped him to focus on me and improved our bond, which is the key to making you more interesting than other dogs.
So walking today - I have a halti which he doesn't like but I find it much easier to control him than on a harness as he used to pull me around on that. I find now that if I just take the halti with me I often don't put it on, but it is useful to have if you are feeling weary! I have a double clip lead and he walks nicely next to me, achieved by basically taking him out and every time he pulled I turned and changed direction to where I wanted to go, one day we literally went up and down the road and he could not fathom what on earth I was doing but boy, it made him watch me constantly. He still pulls slightly but not as bad.
Other dogs - trainer told me he should not really be allowed to play with other dogs yet as he has no manners and needs to learn them. I have found that if I see another dog approaching I will try and get him in a sit away from the path and give him a treat, actually one thing I found is that treats like chicken and "jackpot" treats don't work as he literally does not chew them but swallows them whole and goes back to his fixation, whereas now i use big crunchy biscuits and it takes him so long to chew them and crunch he focuses on that rather than the other dog. If he drops it I can say oooh where is it and that focuses him even more. It is amazing how this small thing has helped!
Some days are better than others, but whereas I dreaded taking him for walks I see it as a chance to test him out and practice what I have learnt. I don't let him off lead yet, his recall is good but not sure I can trust him around other dogs as yet.
Our next session with the trainer will be for him to actually meet with a dog and interact. He is not aggressive at all, just too bouncy for most dogs.
Hope this helps, it is very slow progress but I have found that the play bonding, getting him to focus and the walking exercises have helped - the first time he ignored another dog because he was focusing on his biscuit I nearly cried with pride!