我正在尝试重新使用神经网络进行声音分类,但 keras 给出错误: AttributeError:模块“keras.src.backend”没有属性“Variable”。 可能是兼容性问题吗? 我正在使用 keras v3.0.5。 这是我的代码:
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.optimizers import Adam
# from keras.utils import np_utils
from sklearn import metrics
from tensorflow.keras import layers
import keras
from keras import backend
num_labels = yy.shape[1]
filter_size = 2
# Construct model
model = Sequential()
model.add(Dense(256, input_shape=(40,)))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(256))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(num_labels))
model.add(Activation('softmax'))
model.summary()
根据 Keras 文档,如果我使用 dropout 层:
layers.Dropout(0.5, noise_shape=None, seed=None),
它给出了同样的错误。 有人能帮我吗? 谢谢。
在导入 keras 之前,您需要配置后端。如果没有,它永远不会导入 Variable 类,这可能与您的错误有关。
有关如何配置后端的信息可以在此页面找到: https://keras.io/getting_started/
从该页面复制:
您可以导出环境变量KERAS_BACKEND或者您可以编辑 您的本地配置文件位于 ~/.keras/keras.json 来配置您的 后端。可用的后端选项有:“jax”、“tensorflow”、“torch”。 示例:
export KERAS_BACKEND="jax"
在 Colab 中,您可以:
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras
注意: 导入Keras之前必须配置后端,后端 包导入后无法更改。