MOU5ER: I think I understand what you meant now… The way I think of that is actually not by trying to come up with an exact distribution my opponent might hold, because I know I don’t know GTO strategies nearly well enough to do that, and therefore I read hands in a much “fuzzier” way than how I would play those situations myself.
In practice what I do is reduce the implied hand ranges from the size of the pot (thinking of it in terms of “standard bets” that to me are somewhere between half the pot and full pot), who did the betting (knowing that a player who bets is more likely to have a monster as well as more likely to have air compared to the player who calls), and also in what situations did most of the money go in (so that I recognize that the hand distributions are different if my opponent checks the flop and bets the pot on the turn after a flush card hits, compared to when he bets the pot on the flop and then checks the turn after the flush card hits, even though in both cases the river could be identical in terms of my own hand, board cards, and the size of the pot), and then I have certain relatively simple rules of thumb that I’ve come up with experience to remind me how big of a pot I want to play with each hand.
For example, if I flop a top pair in pot that was raised but not re-raised preflop, I’m usually happy to call standard sized bets on all 3 streets and see the showdown (or bet for value myself and try to get at least 2 bets in if my opponent starts checking), but I would usually not play it for 4 post-flop bets (unless they were small bets like half the pot or less). Though like I said it also depends on how much of that money goes in when the board is safe vs. dangerous to me, and of course my exact hand so flopping a TPTK w/ AK is much stronger that some other top pair, so sometimes I fold top pairs to a 3rd standard sized bet, and sometimes I play it for 4 bets. And if flop 2nd pair I may be calling only 2 bets, plus or minus one bet depending on the other factors mentioned.
So, I have relatively simple rules of thumb that I then adjust usually no more than plus or minus one bet, and that’s where my implicit hand reading comes from rather than from reading the hands explicitly. I do that because over-reading hands (relative to GTO strategy) is an exploitive strategy that may work if your reads are correct, but can also backfire if you are wrong and get outplayed, and personally I prefer to under-read than risk over-reading someone. And that’s why I also cannot assume that my opponents play exactly like I do, but can only assume that they play approximately similar sized pots with the same range of hands that I do, even if they get the money in using different betting lines than I do (for example they might re-raise more preflop, check-raise more on the flop, and so on, but if they make big enough mistakes by playing pots that are either way too big or way too small for their hand strength, my strategy is hopefully balanced enough to profit from both of those mistakes).
Roughly how much work was it for you to implement CFRM in C (I assume thats what you wrote it in)? I was considering giving it a go, but I’m still pondering how best to implement some bits of it. I tend to procrastinate a lot before writing any code 
I wrote it in C++ and it was actually surprisingly easy to do thanks to the awesome paper from the University of Alberta guys (I’d have to look it up to remember which exact paper it was) that described the method in a very clear way. Later I also found an open-source implementation of the algorithm that I think also showed how to apply it to real world Texas Holdem, so that might be helpful to you as well, even though I was not able to understand how that code worked at all so I ignored it myself. (My background is in mathematics and not in programming, so that’s how it usually goes for me.)
PS have you thought about CUDA [for GPU acceleration] I have no idea if the algorithm is amenable to that?
I have played around with that idea, but I’m not an expert in the topic nor do I have enough time to even seriously consider trying that at this time. I think the one obstacle I ran into when researching it was that my algorithm is recursive, and the current technology didn’t support running recursive functions on GPU’s (I may be wrong about that though). Either way I’ll have to wait until I have more free time until I can consider taking any advantage of the GPU technology in my algorithms. I do find it extremely fascinating concept though and hope to be able to start experimenting with it at some point.