在Keras的多层Perceptron情况下,input_dim参数在不同的密集函数情况下如何使用?
我尝试并看到了以下关于顺序模型的观察:
# 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())为什么我们只在隐藏的layer1中使用输入维。input_dim也可以用于其他层的其他场景是什么?
发布于 2019-08-04 12:44:16
input_dim非常类似于input_shape参数,该参数也通常只在第一层中使用。两者都告诉keras输入数据到第一层的维度是什么,从哪里可以对该层和后续层执行形状推断。
input_dim = n等同于input_shape = (n,),您在接收输入的层中使用,因为输入是keras唯一未知的输入,用户需要指定输入的预期形状。
https://stackoverflow.com/questions/57345964
复制相似问题