AttributeError: module 'keras.engine' has no attribute 'InputSpec'

I am trying to load the bert-language-model:

import numpy as np
from tensorflow import keras
from keras_bert import load_trained_model_from_checkpoint
import tokenization

folder = "multi_cased_L-12_H-768_A-12"

config_path = folder+'/bert_config.json'
checkpoint_path = folder+'/bert_model.ckpt'
vocab_path = folder+'/vocab.txt'

tokenizer =  tokenization.FullTokenizer(vocab_file=vocab_path, do_lower_case=False)
model = load_trained_model_from_checkpoint(config_path, checkpoint_path, training=True)
model.summary()

and I got the error:

----> 4 model = load_trained_model_from_checkpoint(config_path, checkpoint_path, training=True)

in layer_normalization.py from Anaconda packages:

---> 70         self.input_spec = keras.engine.InputSpec(shape=input_shape)

AttributeError: module 'keras.engine' has no attribute 'InputSpec'

Installed:

Tensorflow version Version: 2.7.0
Keras  Version Version: 2.7.0

Please help me to sort out

Upvotes: 0

Views: 971

Answers (1)

user11530462
user11530462

Reputation:

Tensorflow 2.7 has API tensorflow.keras.layers.InputSpec

Replace

keras.engine.InputSpec(shape=input_shape)

with

tf.keras.layers.InputSpec(shape=input_shape)

Upvotes: 1

Related Questions