Skip to Content
机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
book

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

by Aurélien Géron
October 2020
Intermediate to advanced
693 pages
16h 26m
Chinese
China Machine Press
Content preview from 机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
444
15
Dense 层实际上支持序列作为输入(甚至是更高维的输入):它像 TimeDistributed
(Dense()) 一样处理它们,这意味着它仅仅应用于最后一个输入维度(独立于所有
的时间步长)。因此,我们可以用 Dense(10) 代替最后这一层。但是为了清楚起见,
我们将继续使用 TimeDistributed(Dense(10)),因为它清楚地表明在每个时间步
长都独立应用了 Dense 层,并且模型将输出一个序列,而不仅仅是一个向量。
训练期间需要所有的输出,但是只有最后一个时间步长的输出才对预测和评估有用。因
此,尽管我们要依赖所有输出的 MSE 进行训练,但是我们使用自定义指标进行评估,
以便在最后一个时间步长来计算输出的 MSE
def
last_time_step_mse(Y_true, Y_pred):
return
keras.metrics.mean_squared_error(Y_true[:, -1], Y_pred[:, -1])
optimizer = keras.optimizers.Adam(lr=0.01)
model.compile(loss="mse", optimizer=optimizer, metrics=[last_time_step_mse])
我们得到的验证 MSE 约为 0.006,比以前的模型好 25%。你可以将此方法与第一个方法
结合使用:使用这个 RNN 来预测接下来的 10 个值,然后将这些值合并到输入时间序列, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

算法技术手册(原书第2 版)

算法技术手册(原书第2 版)

George T.Heineman, Gary Pollice, Stanley Selkow
Go语言编程

Go语言编程

威廉·肯尼迪
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey

Publisher Resources

ISBN: 9787111665977