Keras 中的“无法解释激活函数标识符:256”错误

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

我尝试运行以下代码,但出现错误。我是否遗漏了代码中的某些内容?

from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
from keras.models import Sequential
from keras.callbacks import ModelCheckpoint
from keras.models import load_model
from keras.optimizers import Adam
from keras.regularizers import l2
from keras.activations import relu, elu, linear, sigmoid

def build_fc_model(layers):
    fc_model = Sequential()
    for i in range(len(layers)-1):
        fc_model.add( Dense(layers[i],layers[i+1]) )#, W_regularizer=l2(0.1)) )
        fc_model.add( Dropout(0.5) )
        if i < (len(layers) - 2):
            fc_model.add( Activation('relu') )
    fc_model.summary()
    return fc_model
fc_model_1 = build_fc_model([2, 256, 512, 1024, 1])

这是错误消息:

TypeError: Could not interpret activation function identifier: 256

python tensorflow keras
1个回答
3
投票

密集层中的第二个参数被视为激活函数,而不是神经元的数量。您已将神经元的数量作为激活函数传递给密集层对象。

在密集层的定义中,您传递了两个参数:

layers[i]
layers[i+1]

基于 Dense 函数的文档

here
: 第一个参数是单元(神经元)的数量,第二个参数是激活函数。因此,它将
layers[i+1]
视为无法被
Dense
函数识别的激活函数。

推论: 您不需要将下一层神经元传递到密集层。因此删除

layers[i+1]
参数。

此外,您必须为模型定义一个输入层,并将模型的输入形状传递给它。

因此,修改后的代码应该是这样的:

from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
from keras.models import Sequential
from keras.callbacks import ModelCheckpoint
from keras.models import load_model
from keras.optimizers import Adam
from keras.regularizers import l2
from keras.activations import relu, elu, linear, sigmoid
from keras.layers import InputLayer  #import input layer 

def build_fc_model(layers):
    fc_model = Sequential()
    fc_model.add(InputLayer(input_shape=(784,))) #add input layer and specify it's shape
    for i in range(len(layers)-1):
        fc_model.add( Dense(layers[i]) ) #remove unnecessary second argument 
        if i < (len(layers) - 2):
            fc_model.add( Activation('relu') )
        fc_model.add( Dropout(0.5) )
    fc_model.summary()
    return fc_model
fc_model_1 = build_fc_model([2, 256, 512, 1024, 1])
© www.soinside.com 2019 - 2024. All rights reserved.