aspuru-guzik-group / chemical_vae

Code for 10.1021/acscentsci.7b00572, now running on Keras 2.0 and Tensorflow
Apache License 2.0
483 stars 180 forks source link

Metaclass conflict #57

Open SimoneGallarati opened 7 months ago

SimoneGallarati commented 7 months ago

Hi! I wanted to try running the intro_to_chemvae.ipynb example, I installed the environment via Anaconda, however I encountered the following issue when importing VAEUtils from chemvae.vae_utilis:

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

I have the same problem when running the autoencoder on the ZINC dataset as described in the example (python -m chemvae.train_vae)

Any suggestions on how to fix this? Thanks!

Simone


TypeError Traceback (most recent call last)

in 3 environ['KERAS_BACKEND'] = 'tensorflow' 4 # vae stuff ----> 5 from chemvae.vae_utils import VAEUtils 6 from chemvae import mol_utils as mu 7 # import scientific py ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _find_and_load(name, import_) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _load_unlocked(spec) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _load_backward_compatible(spec) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/chemvae-1.0.0-py3.6.egg/chemvae/vae_utils.py in 3 import random 4 import yaml ----> 5 from .models import load_encoder, load_decoder, load_property_predictor 6 import numpy as np 7 import pandas as pd ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _find_and_load(name, import_) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _load_unlocked(spec) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/importlib/_bootstrap.py in _load_backward_compatible(spec) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/chemvae-1.0.0-py3.6.egg/chemvae/models.py in ----> 1 from keras.layers import Input, Lambda 2 from keras.layers.core import Dense, Flatten, RepeatVector, Dropout 3 from keras.layers.convolutional import Convolution1D 4 from keras.layers.recurrent import GRU 5 from keras.layers.normalization import BatchNormalization ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/keras/__init__.py in 1 from __future__ import absolute_import 2 ----> 3 from . import utils 4 from . import activations 5 from . import applications ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/keras/utils/__init__.py in 4 from . import data_utils 5 from . import io_utils ----> 6 from . import conv_utils 7 8 # Globally-importable utils. ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/keras/utils/conv_utils.py in 1 from six.moves import range 2 import numpy as np ----> 3 from .. import backend as K 4 5 ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/keras/backend/__init__.py in 81 elif _BACKEND == 'tensorflow': 82 sys.stderr.write('Using TensorFlow backend.\n') ---> 83 from .tensorflow_backend import * 84 else: 85 raise ValueError('Unknown backend: ' + str(_BACKEND)) ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in ----> 1 import tensorflow as tf 2 from tensorflow.python.training import moving_averages 3 from tensorflow.python.ops import tensor_array_ops 4 from tensorflow.python.ops import control_flow_ops 5 from tensorflow.python.ops import functional_ops ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/tensorflow/__init__.py in 20 21 # pylint: disable=g-bad-import-order ---> 22 from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import 23 24 try: ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/tensorflow/python/__init__.py in 61 62 # Framework ---> 63 from tensorflow.python.framework.framework_lib import * # pylint: disable=redefined-builtin 64 from tensorflow.python.framework.versions import * 65 from tensorflow.python.framework import errors ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/tensorflow/python/framework/framework_lib.py in 23 # Classes used when building a Graph. 24 from tensorflow.python.framework.device import DeviceSpec ---> 25 from tensorflow.python.framework.ops import Graph 26 from tensorflow.python.framework.ops import Operation 27 from tensorflow.python.framework.ops import Tensor ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/tensorflow/python/framework/ops.py in 53 from tensorflow.python.framework import versions 54 from tensorflow.python.ops import control_flow_util ---> 55 from tensorflow.python.platform import app 56 from tensorflow.python.platform import tf_logging as logging 57 from tensorflow.python.util import compat ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/tensorflow/python/platform/app.py in 22 import sys as _sys 23 ---> 24 from tensorflow.python.platform import flags 25 from tensorflow.python.util.tf_export import tf_export 26 ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/tensorflow/python/platform/flags.py in 23 24 # go/tf-wildcard-import ---> 25 from absl.flags import * # pylint: disable=wildcard-import 26 import six as _six 27 ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/absl/flags/__init__.py in 33 import warnings 34 ---> 35 from absl.flags import _argument_parser 36 from absl.flags import _defines 37 from absl.flags import _exceptions ~/software/pkg/miniconda3/envs/chemvae/lib/python3.6/site-packages/absl/flags/_argument_parser.py in 80 81 ---> 82 class ArgumentParser(Generic[_T], metaclass=_ArgumentParserCache): 83 """Base class used to parse and convert arguments. 84 TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
beangoben commented 7 months ago

Hi Simone, the AI software stack moves really fast so I imagine some library is deprecated, you can probably find more up-to date reference implementations on github. Either for the layers, or the whole architecture.