pythongraphpipgraph-neural-networksonnet

ImportError: cannot import name 'Sonnet' from 'graphs'


The code I am trying to run is

import graph_nets as gn

and the compiler returns

ImportError: cannot import name 'Sonnet' from 'graphs'

which traces back to a line in the sonnet package that says from graphs import Sonnet, D3Graph, MatplotGraph

(I have seen many similar errors on forums and the common solution is

pip uninstall sonnet
pip install dm-sonnet

but this doesn't work for me as pip install dm-sonnet is responded with requirement already satisfied and uninstalling sonnet makes the compiler return

module 'sonnet' has no attribute '__version__'

for the same line of code I am trying to run) The there other possible solutions?


Solution

  • AFAIU the correct package you need is dm-sonnet. But you have already installed sonnet. Now you need to reinstall dm-sonnet to remove remnants of sonnet and install dm-sonnet afresh.

    pip uninstall -y dm-sonnet
    pip install dm-sonnet
    

    Or simply

    pip install --ignore-installed dm-sonnet
    

    To use dm-sonnet you need tensorflow. dm-sonnet doesn't automatically install tensorflow as a dependency so you need to install it yourself:

    pip install tensorflow