使用keras时出错:模块'keras.layers'没有属性'TextVectorization

1 投票
2 回答
50 浏览
提问于 2025-04-13 16:46
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'

我导入了keras模块,并从中获取了层,但当我尝试使用keras.layers.TextVectorization时,我的代码报错了。

我尝试以不同的方式写这个调用,但结果又出现了新的AttributeError错误。

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

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

我还尝试通过pip重新安装了tensorflow和keras,但这并没有改变任何情况。我该怎么办?

Keras版本:3.1.1

Tensorflow版本:2.16.1

2 个回答

1

在tensorflow 2.0之后,当你使用tensorflow和文本向量化时,应该通过tf.keras来访问keras,文档里有说明 - https://www.tensorflow.org/api_docs/python/tf/keras/layers/TextVectorization

所以你需要做的就是把你的调用改成 tf.keras.layers.TextVectorization

0

我找到了问题所在。原来我在VS Code里使用的虚拟环境出了点问题。于是我用conda创建了一个新的环境,并在本地重新安装了tensorflow和keras,这样一切又顺利运行了。

感谢大家的帮助!

撰写回答