Keras框架简介

简介: Keras是基于Theano的一个深度学习框架,它的设计参考了Torch,用Python语言编写,是一个高度模块化的神经网络库,支持GPU和CPU。使用文档在这:http://keras.io/,中文文档在这:http://keras-cn.readthedocs.io/en/latest/ ,这个框架是2015年流行起来的,使用中遇到的困惑或者问题可以提交到github:https://github.com/fchollet/keras。

Keras是基于Theano的一个深度学习框架,它的设计参考了Torch,用Python语言编写,是一个高度模块化的神经网络库,支持GPU和CPU。使用文档在这:http://keras.io/,中文文档在这:http://keras-cn.readthedocs.io/en/latest/ ,这个框架是2015年流行起来的,使用中遇到的困惑或者问题可以提交到github:https://github.com/fchollet/keras。

Keras主要包括14个模块包,可参见文档https://keras.io/layers/ ,下面主要对Models、Layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics八个模块包展开介绍。

1. Models包:keras.models

这是Keras中最主要的一个模块,用于对各个组件进行组装。

详细说明:http://keras.io/models/

from keras.models import Sequential

model = Sequential()  # 初始化模型

model.add(...)  # 可使用add方法组装组件

2. Layers包:keras.layers

该模块主要用于生成神经网络层,包含多种类型,如Core layers、Convolutional layers、recurrent layers、advanced_activations layers、normalization layers、embeddings layers等。

其中Core layers里面包含了flatten(CNN的全连接层之前需要把二维特征图flatten成为一维的)、reshape(CNN输入时将一维的向量弄成二维的)、dense(隐藏层)。

Convolutional layers层包含Theano的Convolution2D的封装等。

详细说明:http://keras.io/layers/

from keras.layers import Dense  # Dense表示BP层

model.add(Dense(input_dim=3,output_dim=5))  # 加入隐含层

3. Initializations包:keras.initializations

该模块主要负责对模型参数(权重)进行初始化,初始化方法包括:uniform、lecun_uniform、normal、orthogonal、zero、glorot_normal、he_normal等。

详细说明:http://keras.io/initializations/

model.add(Dense(input_dim=3,output_dim=5,init='uniform')) #加入带初始化(uniform)的隐含层

4. Activations包:keras.activations、keras.layers.advanced_activations(新激活函数)

该模块主要负责为神经层附加激活函数,如linear、sigmoid、hard_sigmoid、tanh、softplus、softmax、relu以及LeakyReLU、PReLU等比较新的激活函数。

详细说明:http://keras.io/activations/

model.add(Dense(input_dim=3, output_dim=5, activation='sigmoid'))  # 加入带激活函数(sigmoid)的隐含层

等价于:

model.add(Dense(input_dim=3, output_dim=5))

model.add(Activation('sigmoid'))

5. Objectives包:keras.objectives

该模块主要负责为神经网络附加损失函数,即目标函数。如mean_squared_error,mean_absolute_error ,squared_hinge,hinge,binary_crossentropy,categorical_crossentropy等,其中binary_crossentropy,categorical_crossentropy是指logloss。

注:目标函数的设定是在模型编译阶段。

详细说明:http://keras.io/objectives/

model.compile(loss='binary_crossentropy', optimizer='sgd') #loss是指目标函数

6. Optimizers包:keras.optimizers

该模块主要负责设定神经网络的优化方法,如最基本的随机梯度下降SGD,另外还有Adagrad、Adadelta、RMSprop、Adam,一些新的方法以后也会被不断添加进来。

详细说明:http://keras.io/optimizers/

keras.optimizers.SGD(lr=0.01, momentum=0.9, decay=0.9, nesterov=False)

上面的代码是SGD的使用方法,lr表示学习速率,momentum表示动量项,decay是学习速率的衰减系数(每个epoch衰减一次),Nesterov的值是False或者True,表示使不使用Nesterov momentum。

model = Sequential()

model.add(Dense(64, init='uniform', input_dim=10))

model.add(Activation('tanh'))

model.add(Activation('softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)

model.compile(loss='mean_squared_error', optimizer=sgd)  #指优化方法sgd

model.compile(loss='binary_crossentropy', optimizer='sgd')

7. Preprocessing包:keras.preprocessing

数据预处理模块,包括序列数据的处理、文本数据的处理和图像数据的处理等。对于图像数据的处理,keras提供了ImageDataGenerator函数,实现数据集扩增,对图像做一些弹性变换,比如水平翻转,垂直翻转,旋转等。

8. metrics包:keras.metrics

与sklearn中metrics包基本相同,主要包含一些如binary_accuracy、mae、mse等的评价方法。

predict = model.predict_classes(test_x)       #输出预测结果

keras.metrics.binary_accuracy(test_y, predict)  #计算预测精度

 

目录
相关文章
|
Windows
Anaconda卸载与重装过程记录
本文记录了博主Anaconda卸载与重装过程记录,此为博主电脑环境发生变化,无奈之举,希望对大家有所帮助
2464 0
Anaconda卸载与重装过程记录
|
消息中间件 存储 监控
五分钟快速了解Airflow工作流
简介 Airflow是一个以编程方式创作、调度和监控工作流的平台。 使用 Airflow 将工作流创作为有向无环图(DAG)任务。 Airflow 调度程序按照你指定的依赖项在一组workers上执行您的任务。同时,Airflow拥有丰富的命令行实用程序使得在DAG上进行复杂的诊断变得轻而易举。并且提供了丰富的用户界面使可视化生产中运行的工作流、监控进度和需要排查问题时变得非常容易。 当工作流被定义为代码时,它们变得更易于维护、可版本化、可测试和协作。
vscode设置自动保存步骤
vscode设置自动保存就不用每次要运行时候去先保存一下才能加载新页面了
16085 0
vscode设置自动保存步骤
|
机器学习/深度学习 缓存 并行计算
NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
NVIDIA Tesla系列GPU适用于高性能计算(HPC)、深度学习等超大规模数据计算,Tesla系列GPU能够处理解析PB级的数据,速度比使用传统CPU快几个数量级,NVIDIA Tesla GPU系列P4、T4、P40以及V100是Tesla GPU系列的明星产品,云服务器吧分享NVIDIA.
78466 1
|
9月前
|
机器学习/深度学习 人工智能 监控
【AI 现况分析】AI 大模型在自动化交易的应用
【1月更文挑战第27天】【AI 现况分析】AI 大模型在自动化交易的应用
|
索引 Python
Python报错:IndexError: index 0 is out of bounds for axis 0 with size 0
Python报错:IndexError: index 0 is out of bounds for axis 0 with size 0
431 0
|
机器学习/深度学习 算法
【负荷预测】基于VMD-SSA-LSTM光伏功率预测【可以换数据变为其他负荷等预测】(Matlab代码实现)
【负荷预测】基于VMD-SSA-LSTM光伏功率预测【可以换数据变为其他负荷等预测】(Matlab代码实现)
250 0

热门文章

最新文章