Error when using keras: module 'keras.layers' has no attribute 'TextVectorization'

53 views Asked by At
import os

os.environ["KERAS_BACKEND"] = "tensorflow"

import pandas as pd
import pathlib
import random
import string
import re
import numpy as np
import tensorflow as tf
import keras
from keras import layers

MAX_SEQUENCE_LENGTH = 40
INP_VOCAB_SIZE = 15000

input_vectorization = keras.layers.TextVectorization(
    max_tokens=INP_VOCAB_SIZE,
    output_mode="int",
    output_sequence_length=MAX_SEQUENCE_LENGTH
)

AttributeError: module 'keras.layers' has no attribute 'TextVectorization'

I import the keras module and get layers from keras, but when I try to use keras.layers.TextVectorization, my code throws that error.

I've tried writing the call differently but then I get a new AttributeError.

input_vectorization = tf.keras.TextVectorization(
    #same inside as before
)

AttributeError: module 'keras' has no attribute '__version__'

I've also tried reinstalling both tensorflow and keras using pip, but that didn't change anything. What should I do?

Keras version: 3.1.1

Tensorflow version: 2.16.1

2

There are 2 answers

0
Leila Saxby On BEST ANSWER

I figured out the issue. There was something wrong with the virtual environment I was using in vs code. Creating a new enviroment with conda and reinstalling tensorflow and keras locally had everything working smoothly again.

Thanks for everyone's help!

3
Karan Shishoo On

After tensorflow 2.0 you should access keras using tf.keras whenever you work with tensorflow and Textvectorization as per the docs exists there - https://www.tensorflow.org/api_docs/python/tf/keras/layers/TextVectorization

so all you should need to do is change your call to tf.keras.layers.TextVectorization