Update tensorflow-federated to match tensorflow-macos==2.7.0 and tensorflow-metal==0.3.0

I was able to use tensorflow-federated==0.19.0 with tensorflow-macos==2.5.0 and tensorflow-metal==0.2.0 on an Intel-based MacBook Pro with GPU.

Now tensorflow-macos==2.7.0 and tensorflow-metal==0.3.0 has been upgrade to tf 2.7 and tensorflow-federated==0.19.0 still depends on tf 2.5.

Is there any roadmap to update tensorflow-federated to tf 2.7 ?

I can force the installation with:

SYSTEM_VERSION_COMPAT=0 pip install tensorflow-macos==2.7.0 tensorflow-metal==0.3.0 
SYSTEM_VERSION_COMPAT=0 pip install tensorflow-federated==0.19.0

and got an error:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow-macos 2.7.0 requires tensorflow-estimator<2.8,~=2.7.0rc0, but you have tensorflow-estimator 2.5.0 which is incompatible.

It appears to me that my tff examples will still work. But it would be really nice to have an update on tensorflow-federated with dependency on tensorflow-estimator>=2.7.0

tensorflow-federated==0.20.0 seems to work with tensorflow-metal==0.4.0 fine again

SYSTEM_VERSION_COMPAT=0 pip install tensorflow-macos==2.8.0 tensorflow-metal==0.4.0;
SYSTEM_VERSION_COMPAT=0 pip install tensorflow-federated==0.20.0

I have closed the related issue

I have a trouble installing tensorflow-federated. I matched version(tensorflow-metal==0.4.0, tensorflow-macos==2.8.0, tensorflow-federated==0.20.0) like you, but didn’t install. Could you advice to me?

@Dongheon_Lee

…Could you advice to me?

Are you also installing the tensorflow-federated and tensorflow-metal on an Intel based MacBook Pro? Please be aware, some of the old AMD GPUs is not supported by metal plugin.

Please following the step by step instruction for Intel Based MacBook Pro from tf-every-day/04IntelMetal at main · yingding/tf-every-day · GitHub

From my experience you will need exactly python@3.8 and it doesn’t work on python@3.9 even that apple doc said so. My MacOSX is 12.3, it has also worked on MacOSX 12.2.1.

For a M1 based MBP, you will need to follow the steps from Tensorflow Plugin - Metal - Apple Developer, I haven’t tested that yet. My M1 Max MBP will be delivered unfortunately in 3 months.

Did you test MBP intel? Actually, my device is MBP M1 Max. If our environments are same, the problem is M1 chip. (M1 Max, MacOSX 12.3, Python 3.8, tensorflow-metal==0.4.0, tensorflow-macos==2.8.0)

yeah, there is still an open issue with tensorflow federated on M1 Which version is ready for Mac with M1 Apple Silicon Chip? · Issue #1254 · tensorflow/federated · GitHub

I thought it might already be solved. It seems to have a tf-federated nightly version with tf-2.6 for M1 as workarround Which version is ready for Mac with M1 Apple Silicon Chip? · Issue #1254 · tensorflow/federated · GitHub

@Bhack Can you give us some info regarding to the tensorflow federated support on M1 chip from this issue Which version is ready for Mac with M1 Apple Silicon Chip? · Issue #1254 · tensorflow/federated · GitHub
Thanks a lot.

I didn’t solve that. When you get a MPB, try this issue.

Please refer to Which version is ready for Mac with M1 Apple Silicon Chip? · Issue #1254 · tensorflow/federated · GitHub
Finally, it works on my M1 although the solution is a little hacky.