Reputation: 1
# 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
Based on this code, how do i insert learning rate? I have tried the learningratescheduler but it does not suit with me. I want to apply kfold and compare the result for each learning rate after every 10 fold.
Upvotes: 0
Views: 34
Reputation: 596
Assuming you're using Keras:
def getModel(lr):
...
adam = keras.optimizers.Adam(learning_rate=lr)
model.compile(optimizer=adam, loss='binary_crossentropy', metrics=['accuracy'])
return model
Upvotes: 1