Keras开发概述

作者: Nefelibatas | 来源:发表于2022-04-06 11:52 被阅读0次

    什么是Keras?

    Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:

    • 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
    • 支持CNN和RNN,或二者的结合
    • 无缝CPU和GPU切换

    Keras的设计原则

    • 用户友好:Keras是为人类而不是天顶星人设计的API。用户的使用体验始终是我们考虑的首要和中心内容。Keras遵循减少认知困难的最佳实践:Keras提供一致而简洁的API, 能够极大减少一般应用下用户的工作量,同时,Keras提供清晰和具有实践意义的bug反馈。
    • 模块性:模型可理解为一个层的序列或数据的运算图,完全可配置的模块可以用最少的代价自由组合在一起。具体而言,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,你可以使用它们来构建自己的模型。
    • 易扩展性:添加新模块超级容易,只需要仿照现有的模块编写新的类或函数即可。创建新模块的便利性使得Keras更适合于先进的研究工作。
    • 与Python协作:Keras没有单独的模型配置文件类型(作为对比,caffe有),模型由python代码描述,使其更紧凑和更易debug,并提供了扩展的便利性。

    典型Keras开发流程

    1.定义训练数据:输入张量和目标张量。
    2.定义组成的网络或model,将输入映射到目标。
    3.配置学习过程:选择损失函数、优化器和需要监控的指标。
    4.调用model的fit()在训练数据集上迭代。

    定义model有两种办法:

    • 使用Sequential类定义的两层model,目前最常见的通用网络架构

    • 函数式API,用于层组成的有向无环图,搭建任意形式架构

    使用Sequential类定义的两层model。

    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'))
    

    函数式API

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

    配置学习过程,选择损失函数、优化器和需要监控的指标。

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

    训练model

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

    相关文章

      网友评论

        本文标题:Keras开发概述

        本文链接:https://www.haomeiwen.com/subject/hdyrsrtx.html