首页 > 解决方案 > 定义/插入学习率

问题描述

# learning rate
batch_size = 32
epoch=50
activationFunction='relu'
def getModel():
    model = Sequential()
    model.add(Conv2D(64, (3, 3), padding='same', activation=activationFunction, input_shape=(img_rows, img_cols, 3)))
    model.add(Conv2D(64, (3, 3), activation=activationFunction))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))

    model.add(Conv2D(32, (3, 3), padding='same', activation=activationFunction))
    model.add(Conv2D(32, (3, 3), activation=activationFunction))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))

    model.add(Conv2D(16, (3, 3), padding='same', activation=activationFunction))
    model.add(Conv2D(16, (3, 3), activation=activationFunction))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))

    model.add(Flatten())
    model.add(Dense(64, activation=activationFunction)) # we can drop 
    model.add(Dropout(0.1))                  # this layers
    model.add(Dense(32, activation=activationFunction))
    model.add(Dropout(0.1))
    model.add(Dense(16, activation=activationFunction))
    model.add(Dropout(0.1))
    model.add(Dense(4, activation='softmax')) 

    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

    return model

基于此代码,我如何插入学习率?我已经尝试了 learningratescheduler,但它不适合我。我想应用 kfold 并在每 10 折后比较每个学习率的结果。

标签: pythontensorflowkerasdeep-learning

解决方案


假设您使用的是 Keras:

def getModel(lr):
  ...
  adam = keras.optimizers.Adam(learning_rate=lr)
  model.compile(optimizer=adam, loss='binary_crossentropy', metrics=['accuracy'])
  return model

推荐阅读