听它爹说他孩儿:Keras 学习笔记 4.2

Keras 简介

Keras 拥有以下重要功能:

  • 代码可在 CPU 和 GPU 上同样运行。
  • 用户喜欢的 API 可以快速构建深度学习原型。
  • 内建机制支持卷积网络(用于计算机视觉),循环网络(用于处理序列)和上述二者的任何组合。
  • 支持任意网络架构:多个输入或多个输出的模型,层共享,模型共享,等等。

Keras 拥有超过 200,000 的用户,其中大公司有 Google, Netflix, Uber, CERN, Yelp, Square 等。Keras 也是“开搞”(Kaggle)的流行框架。

用 Keras 进行开发

Keras 开发的流程是这样的:

  1. 定义训练用的数据:输入张量和目标张量。
  2. 定义层(或模型)的网络,把输入映射到目标。
  3. 设置学习过程:选择损失函数、优化器,以及若干监测指标。
  4. 用 fit() 函数,迭代训练模型。

定义模型有两种方法:一是用 Sequential 类(仅用于层的线性栈,这是最常见的网络架构);二是用函数式接口 (对于多个层构成的有向无环图,可完整建造各种架构的网络)。这里有个用 Sequential 类定义的两层模型:

from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Dense(32, activation='relu', input_shape=(784,)))
model.add(layers.Dense(10, activation='softmax'))

与其相同的模型,用函数式接口定义则是这样:

input_tensor = layers.Input(shape=(784,))
x = layers.Dense(32, activation='relu')(input_tensor)
output_tensor = layers.Dense(10, activation='softmax')(x)
model = models.Model(inputs=input_tensor, outputs=output_tensor)

这时操纵数据张量、层、模型等,仿佛它们都是函数。

在模型架构确定之后,使用 Sequential 模型或函数式接口都行,接下来的步骤是相同的。学习过程是在编译时设定,此时指定优化器和损失函数,以及训练过程中的监测指标。下面是常见的使用单个损失函数的例子:

from keras import optimizers
model.compile(optimizer=optimizers.RMSprop(lr=0.001),
loss='mse',
metrics=['accuracy'])

最后,在学习过程中,通过 fit( ) 函数把输入的 Numpy 数组,及其对应的目标数据传送给模型。这种做法,与 Scikit-Learn 等机器学习库的做法相似:

model.fit(input_tensor, target_tensor, batch_size=128, epochs=10)

搭建深度学习工作站

在开始深度学习应用开发之前,你需要搭建自己的工作站。强烈建议使用 NVIDIA 的 GPU 跑你的代码。

图像处理的卷积网络和处理序列的循环网络,在 CPU (即使是多核的)上跑得极慢。同样的应用,在 GPU 上跑比在 CPU 上跑快 5 至 10 倍。

也可选择在谷歌或者其他商家提供的云平台上,以其提供的 GPU 实验你的应用,但需支付高额费用。

你的本地机器,最好使用 Unix 工作站。我们不推荐在 Windows 平台上跑 Keras 。在 Ubuntu 上跑 Keras,节省时间并减少麻烦。

为了使用 Keras,需要安装 TensorFlow 或者 CNTK 、Theano 。本书用的底层是 TensorFlow 。

深度学习,哪种 GPU 最好 ?

你只能使用 NVIDIA 公司的 GPU,在其产品中选择。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值