调整优化参数
现在是亲自上手做优化的时候了。您将尝试用一个非常低的学习率、一个非常高的学习率,以及一个"刚刚好"的学习率来优化模型。运行练习后请查看结果,并记住:损失函数的值越低越好。
在这些练习中,我们已经为您预加载了先前分类模型(预测谁能在泰坦尼克号上幸存)的自变量和目标值。每次更改学习率时,都需要从头开始优化,以便公平比较不同学习率的效果。因此我们提供了一个函数 get_new_model(),用于创建一个尚未优化、可供您开始优化的模型。
本练习是课程的一部分
Python 深度学习入门
练习说明
- 从
tensorflow.keras.optimizers导入SGD。 - 创建一个名为
lr_to_test的列表,存放要尝试的学习率。其取值应为.000001、0.01和1。 - 使用
for循环遍历lr_to_test:- 使用
get_new_model()函数构建一个全新的、未优化的模型。 - 使用
SGD()构造函数并传入关键字参数lr=lr,创建一个名为my_optimizer的优化器。 - 编译模型。将
optimizer参数设置为上面创建的 SGD 对象;由于这是分类问题,将loss参数设为'categorical_crossentropy'。 - 使用
predictors和target训练模型。
- 使用
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Import the SGD optimizer
____
# Create list of learning rates: lr_to_test
lr_to_test = ____
# Loop over learning rates
for lr in lr_to_test:
print('\n\nTesting model with learning rate: %f\n'%lr )
# Build new model to test, unaffected by previous models
model = ____
# Create SGD optimizer with specified learning rate: my_optimizer
my_optimizer = ____
# Compile the model
____
# Fit the model
____