Building beta native client from source using recent TensorFlow version

Is it possible to build the latest master-branch native client (at time of writing it’s at version 0.2.0-alpha.8) using a newer version of TensorFlow, or must we still use the old version in Mozilla’s fork of TensorFlow?

Mozilla’s TensorFlow fork appears to be v1.6 with some changes but TF is currently at v1.9 and there’s an RC for v1.10. If there’s no newer version of Mozilla’s TF, are there any known problems building with Mozilla’s old TF but running training and/or inference with TF v1.9, or any TF version more recent than v1.6?

Nope, so far you are on your own if you want to build with newer versions. I was working with some 1.8~ish a few weeks ago when experimenting on other stuff, there was a few trivial fixes to apply to our codebase, though.

Thanks. It looks both the master and r1.6 branches in Mozilla’s TensorFlow fork are being updated but they are not in sync (r1.6 is 17 commits ahead and 1927 commits behind master). Should we use the master or r1.6 branch when building the 0.2.0 alpha native client?

Master has not been updated for a while, because I was focused on OpenCL on some devices, including RPi3.

You should be able to build with upstream r1.9 or master, but this will require some adjustement to BUILD file (disable the AOT stuff, it’s going to break), and I know you’ll have to hack namespace of double_conversion in our KenLM’s dir, because TensorFlow included that post r1.6 and so there’s some naming collision.

Our TensorFlow master branch should be used with the DeepSpeech tf-master branch, but again, low value in your case.

Basically, I won’t update branches soonish because I’ll be on PTO august 1st, coming back september 5th.

Why is it such a problem for you to rely on r1.6 ?

Not a big problem. I’d like to get a consistent and reliable build going and would like to avoid upgrading to a newer TF part way through, but might also want to use some newer TF features if they’re avaialble. If I choose r1.6 now, I’m stuck with it for a while and will have to do without those newer features.

So, unless I dive into tweaking a newer TF myself, it sounds like I’m best using “mozilla/DeepSpeech/tree/tf-master” with “mozilla/tensorflow/tree/master”. Thanks!

I expect to be able to switch to something newer as early as september.

No, it’d be best to rely on tensorflow/r1.6 and DeepSpeech/master, the master branch is really not maintained in a way to be reliable like you might expect.

Really, r1.8 was easy to get as long as you are not afraid of some small changes on our side, and changes that were trivial. If it helps.

Thanks for the info. I’ll give the newer TF a go.

Feel free to ask here or on IRC, but I cannot guarantee any response time :slight_smile: