Keras学习笔记

使用Keras中文文档学习

基本概念

  • Keras的核心数据结构是模型,也就是一种组织网络层的方式,最主要的是序贯模型(Sequential).创建好一个模型后就可以用add()向里面添加层.模型搭建完毕后需要使用complie()编译模型,之后就可以开始训练和预测了(类似于sklearn).
  • Sequential其实是模型的一种特殊情况,单输入单输出,层与层之间只有相邻关系.而通用的模型被称为函数式模型(function model API),支持多输入多输出,层与层之间可以任意相连.
  • Keras的底层库是Theano或TensorFlow,它们是符号式的库,也就是首先定义各种变量,然后建立一个规定各个变量之间计算关系的计算图,最后再把运算的输入放进去形成数据流从而输出.
  • 张量(tensor)是向量或矩阵的自然推广,也就是数字的多阶排列.张量的阶数也称为维度或者轴(axis).
  • 深度学习的优化算法一般是梯度下降,一般采用的是小批量梯度下降(mini-batch gradient decent),需要把数据分为若干批,按批来更新参数.Keras中的batch指的就是这个批,每个batch对应网络的一次更新.
  • epochs指的就是所有批次的单次训练迭代,也就是总数据的训练次数.每个epoch对应网络的一轮更新.
  • model.save(filepath)可以保存模型及权重,配置信息在一个HDF5文件中,models.load_model(filepath)可以重新实例化模型.

序贯(Sequential)模型

  • 可以通过向Sequential传递一个layer的list来构造模型,也可以通过add将layer一个个加入模型.
  • Sequential的第一层需要接受一个关于输入数据shape的参数,后面的各个层可以自动推导出中间数据的shape.这个参数可以由input_shape(),input_dim(),input_length()等方法传递,还可以通过传递batch_size参数来指定一个固定大小的batch.注意,input_dim=x意味着传入一个x维向量,也就等同于一个一阶张量,即input_shape=(x,).
  • compile()用于编译模型,它接收三个参数:
  1. 优化器(optimizer):已预定义的优化器名或一个Optimizer类对象,模型采用的优化方式
  2. 损失函数(loss):已预定义的损失函数名或一个损失函数,模型试图最小化的目标函数
  3. 指标列表(metrics):已预定义指标的名字或用户定制的函数,用于评估模型性能
  • fit()用于训练模型,需要传入Numpy数组形式的输入数据和标签,可以指定epochs和batch_size等参数.
  • 处理多分类问题时使用keras.utils.to_categorical()进行独热编码.

猜你喜欢

转载自www.cnblogs.com/limitlessun/p/9296614.html
今日推荐