深度学习框架keras——华为AI学习笔记15

举报
darkpard 发表于 2022/02/24 22:47:21 2022/02/24
【摘要】 1. 介绍可以作为tensorflow、CNTK等高阶应用的接口,它本身不提供计算,偏前端。可以帮助我们进行深度模型的设计、调试、评估和可视化。为什么不直接使用tensorflow的这些功能呢?因为keras的以下特点。1.1. 用户友好极大减少用户代码量如果直接用tensorflow可能要用很多代码1.2. 模块性网络层、损失函数、优化器、正则化方法都是独立的,方便我们构建和维护1.3. ...

1. 介绍

可以作为tensorflow、CNTK等高阶应用的接口,它本身不提供计算,偏前端。

可以帮助我们进行深度模型的设计、调试、评估和可视化。为什么不直接使用tensorflow的这些功能呢?因为keras的以下特点。

1.1. 用户友好

极大减少用户代码量

如果直接用tensorflow可能要用很多代码

1.2. 模块性

网络层、损失函数、优化器、正则化方法都是独立的,方便我们构建和维护

1.3. 易扩展性

依照现有模块编写的类或方法都可使用

2. keras的模块

2.1. keras.layers

很多神经网络层,比如 全连接、RNN、CNN

2.1.1. 常用层

layers.core

2.1.1.1. 全连接层

layers.core.dense(n, activation='')

n表示多少个神经元

activation为激活函数

2.1.1.2. Dropout

随机丢弃一部分神经元来防止过拟合

layers.core.Dropout(rate, seed='')

2.1.2. 卷积层

layers.convolutional

2.1.2.1. CNN

layers.convolutional.Con2D(N, kernel_shape, padding, activation)

图片用2D,文字可以是1D

kernel_shape是卷积核

padding是填充,不填充尺寸会不断缩小

activation是激活函数

2.1.3. RNN

layers.convolutional.SimpleRNN(N, activation='')

这是简单RNN,实际工作中可以是复杂的RNN,比如双向RNN

2.2. keras.models

创建模型,创建模型后再创建layers

它还提供了模型训练、优化和保存等方法

2.2.1. 创建模型

model = models.Sequential()

图片

实例下模型对象,再加layers

具体可以如下:

  1. models.Sequential([layers.Dense(n, input_shape), ])

  2. Model = models.Sequential()
    Model.add([layers.Dense(n, input_shape), ])

图片图片

  1. InputShape = Input()
    Layer1 = layers.Dense(n)(InputShape)

2.2.2. 模型训练/预测

Model.fit()

图片

这里需要注意的训练数据的格式是有要求的,需要进行一些调整。

图片

Model.predict()

图片

可以看到效果并不好,稍有常识的同学就知道用卷积神经网络应该会有更好的效果。这里只是一个简单的学习案例,不做更多的深入。

2.2.3. 保存与加载

Model.save

models.load()

2.3. keras.optimizers

优化器,比如SGD、Adam等,都封装在里面

2.3.1. SGD

optimizers.SGD(lr,decay,momentum, nesterov)

随机梯度下降,lr代表学习率,学习率不会变

2.3.2. Adam

optimizers.Adam(lr, beta_1, beta_2, epsilone, decay, amsgrad=False)

现在非常常见的优化器,学习率会随着训练下降

2.4. keras.activations

激活函数

2.4.1. activations.softmax

一般用在多分类任务

2.4.2. activations.relu

现在也非常常用,解决了一些梯度消失问题

2.4.3. activations.tanh

双曲正切函数,缺点是靠近正无穷或负无穷时会存在梯度消失问题

2.4.4. activations.elu

是relu的改进版,relu在0点不能求导

2.5. keras.datasets

封装了很多数据集,用于学习,比如mnist手写数字

图片

优点是开源、免费,且已经被处理好

2.5.1. CIFAR10

6万张32*32彩色图片,可以做多分类

2.5.2. IMDB

电影评论,有正向负向情感,可以做二分类

2.5.3. 波士顿房价

可用于回归的学习

2.5.4. 话题分类newswire

2.6. keras.applications

提供了带有预训练权重的深度学习模型,用的时候直接导入或者微调就可以了

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。