使用keras时出错:模块'keras.layers'没有属性'TextVectorization
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,这样一切又顺利运行了。
感谢大家的帮助!