Keras多层感知器中多隐层情况下如何使用输入参数

2024-09-27 21:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在Keras中多层感知器(MLP)的情况下,如何在不同的稠密函数情况下使用输入参数

我已经尝试并看到了以下关于序贯模型的观察结果:

  1. 在MLP中添加第一个隐藏层时,input_dim参数始终作为Dense()函数的一部分传递

  2. 对于MLP中的其他隐藏层(例如第2层、第3层、第4层等)或输出层,input_dim参数永远不会作为Dense()函数的一部分传递

# To create a Sequential model
model_batch_drop_5lyr = Sequential()

# Hidden Layer1
model_batch_drop_5lyr.add(Dense(684, activation='relu', input_dim = input_dim, kernel_initializer=RandomNormal(mean=0.0, stddev=0.025, seed=None)))
model_batch_drop_5lyr.add(BatchNormalization())
model_batch_drop_5lyr.add(Dropout(0.5)) # 50% no. of neurons droped

# Hidden Layer2
model_batch_drop_5lyr.add(Dense(512, activation='relu', kernel_initializer=RandomNormal(mean=0.0, stddev=0.050, seed=None)))
model_batch_drop_5lyr.add(BatchNormalization())
model_batch_drop_5lyr.add(Dropout(0.5)) # 50% no. of neurons droped

# Hidden Layer3
model_batch_drop_5lyr.add(Dense(356, activation='relu', kernel_initializer=RandomNormal(mean=0.0, stddev=0.075, seed=None)))
model_batch_drop_5lyr.add(BatchNormalization())
model_batch_drop_5lyr.add(Dropout(0.5)) # 50% no. of neurons droped

# Hidden Layer4
model_batch_drop_5lyr.add(Dense(228, activation='relu', kernel_initializer=RandomNormal(mean=0.0, stddev=0.125, seed=None)))
model_batch_drop_5lyr.add(BatchNormalization())
model_batch_drop_5lyr.add(Dropout(0.5)) # 50% no. of neurons droped

# Hidden Layer5
model_batch_drop_5lyr.add(Dense(128, activation='relu', kernel_initializer=RandomNormal(mean=0.0, stddev=0.155, seed=None)))
model_batch_drop_5lyr.add(BatchNormalization())
model_batch_drop_5lyr.add(Dropout(0.5)) # 50% no. of neurons droped

# Output Layer
model_batch_drop_5lyr.add(Dense(output_dim, activation='softmax'))

# Printing Summary of the model with 3 hidden layers
print(model_batch_drop_5lyr.summary())

为什么我们只在隐藏层1中使用输入维度。在其他情况下,输入尺寸也可以用于其他层


Tags: ofaddmodelbatchmeanactivationkernelhidden
1条回答
网友
1楼 · 发布于 2024-09-27 21:34:16

input_diminput_shape参数非常相似,它通常也只在第一层中使用。两者都告诉keras第一层的输入数据的维数是多少,从中可以对该层和后续层进行形状推断

input_dim = n等价于input_shape = (n,),您在接收输入的层中使用,因为输入是keras唯一未知的,所以用户需要指定输入的预期形状

相关问题 更多 >

    热门问题