使用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()用于编译模型,它接收三个参数:
- 优化器(optimizer):已预定义的优化器名或一个Optimizer类对象,模型采用的优化方式
- 损失函数(loss):已预定义的损失函数名或一个损失函数,模型试图最小化的目标函数
- 指标列表(metrics):已预定义指标的名字或用户定制的函数,用于评估模型性能
- fit()用于训练模型,需要传入Numpy数组形式的输入数据和标签,可以指定epochs和batch_size等参数.
- 处理多分类问题时使用keras.utils.to_categorical()进行独热编码.
Keras学习笔记
原文:https://www.cnblogs.com/limitlessun/p/9296614.html