tensorflow-plugins/libmetal_plugin.dylib, 6): Symbol not found: _TF_AssignUpdateVariable

I installed tensorflow-mac and tensorflow-metal on an iMac 2021 27" running Big Sur with an AMD Radeon Pro 5700 XT. I am running Python 3.8.5

(tensorflow-metal) (base) davidlaxer@x86_64-apple-darwin13 ~ % pip list

Package                 Version             Location

----------------------- ------------------- -------------------------
...
tensorboard             2.5.0

tensorboard-data-server 0.6.1

tensorboard-plugin-wit  1.8.0

tensorflow              2.5.0

tensorflow-estimator    2.5.0

tensorflow-hub          0.12.0

tensorflow-macos        2.5.0

tensorflow-metal        0.1.1

tensorflow-text         2.5.0

When I try to import tensorflow I get this error:

 % ipython

Python 3.8.5 (default, Sep  4 2020, 02:22:02) 

Type 'copyright', 'credits' or 'license' for more information

IPython 7.24.1 -- An enhanced Interactive Python. Type '?' for help.



In [1]: import tensorflow

---------------------------------------------------------------------------

NotFoundError                             Traceback (most recent call last)

<ipython-input-1-d6579f534729> in <module>

----> 1 import tensorflow



~/tensorflow-metal/lib/python3.8/site-packages/tensorflow/__init__.py in <module>

    447     _plugin_dir = _os.path.join(_s, 'tensorflow-plugins')

    448     if _os.path.exists(_plugin_dir):

--> 449       _ll.load_library(_plugin_dir)

    450       # Load Pluggable Device Library

    451       _ll.load_pluggable_device_library(_plugin_dir)



~/tensorflow-metal/lib/python3.8/site-packages/tensorflow/python/framework/load_library.py in load_library(library_location)

    152 

    153     for lib in kernel_libraries:

--> 154       py_tf.TF_LoadLibrary(lib)

    155 

    156   else:



NotFoundError: dlopen(/Users/davidlaxer/tensorflow-metal/lib/python3.8/site-packages/tensorflow-plugins/libmetal_plugin.dylib, 6): Symbol not found: _TF_AssignUpdateVariable

  Referenced from: /Users/davidlaxer/tensorflow-metal/lib/python3.8/site-packages/tensorflow-plugins/libmetal_plugin.dylib

  Expected in: flat namespace

Replies

Given that you are seeing missing symbols like _TF_AssignUpdateVariable, it means that you have a mismatch between tensorflow and the metal plugin. You need to make sure to install tensorflow-macos using:

python -m pip install tensorflow-macos

See https://developer.apple.com/metal/tensorflow-plugin/ for details.