AttributeError:模块“keras.src.backend”没有带有 Dropout 层的属性“Variable”

问题描述 投票:0回答:1

我正在尝试重新使用神经网络进行声音分类,但 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),

它给出了同样的错误。 有人能帮我吗? 谢谢。

python tensorflow keras neural-network
1个回答
0
投票

在导入 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之前必须配置后端,后端 包导入后无法更改。

© www.soinside.com 2019 - 2024. All rights reserved.