python - 定义/插入学习率
问题描述
# 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 折后比较每个学习率的结果。
解决方案
假设您使用的是 Keras:
def getModel(lr):
...
adam = keras.optimizers.Adam(learning_rate=lr)
model.compile(optimizer=adam, loss='binary_crossentropy', metrics=['accuracy'])
return model
推荐阅读
- xcode - Xcode:希望在启动时显示多个窗口
- node.js - 为什么我收到 elifecycle 错误编号 1
- typescript - 打字稿对象语法问题(没有索引签名)
- java - Java 可比和接口
- ruby-on-rails - 为什么 Rails 应用程序有时工作有时不工作?
- multithreading - 使用 Perl 进行 DNA 序列分析的线程
- javascript - 无法识别数据变量。未捕获的 ReferenceError:未定义 edu_id
- html - 图片在页面底部被压扁?
- iframe - Google Apps 脚本、站点和自定义域
- r - 如何计算具有不同样本量的两个变量之间的相关性