-
1.2.2 张量
-
0阶张量:标量,也就是一个数
-
1阶张量:就是一个向量
-
2阶张量:就是一个矩阵
-
3阶张量:可以表示为3个颜色通道的彩色图片
-
-
1.2.4 模型
- Keras 包含两种模型(不同版本叫法不同)
-
Sequential模型:序贯模型,单输入单输出模型
-
Graph,图模型:支持多输入多输出,就是 functional model API
-
- Keras 包含两种模型(不同版本叫法不同)
-
1.2.5 batch
-
遍历全部数据集算一次损失函数:计算开销大
-
一次一个数据:SGD,比较波动
-
mini-batch:为了克服两种方法的缺点,现在一般采用的是一种折中手段,mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,所以计算量也不是很大。就是 keras 中的 batc_size。
-
-
2.1 卷积神经网络
-
feature map:特征图,就是经过卷积后生成的多层图,所有有多少个卷积核,就会生成多少个 feature maps
-
下采样层:Max Pooling 层
-
-
3 Keras 模型
-
compile(self, optimizer, loss, metrics=None, sample_weight_mode=None):该方法编译用来配置模型的学习过程, 其参数有以下这些
-
optimizer:字符串(预定义优化器名) 或优化器对象,参考优化器。
-
loss:字符串(预定义损失函数名)或目标函数,参考损失函数。
-
metrics:列表,包含评估模型在训练和测试时的网络性能的指标,典型用法是 metrics=['accuracy']。
-
-
fit(self, x, y, batch_size=32, epochs=10, verbose=1, callbacks=None, validation_split=0.0, validation_data=No):本函数将模型训练epoch轮, 其参数有
-
x:输入数据。如果模型只有一个输入,那么x的类型是numpy array,如果模型有多个输入,那么x的类型应当为list,list的元素是对应于各个输入的numpy array。
-
y: 标签向量,numpy array类型。
-
batch_size: 整数, 指定进行梯度下降时每个batch包含的样本数。 训练时一个batch的样本会被计算一次梯度下降, 使目标函数优化一步。
-
epochs: 训练的轮数, 每个epoch会把训练集轮一遍。
-
verbose: 日志显示, 0为不在标准输出流输出日志信息, 1为输出进度条记录, 2为每个epoch输出一行记录。
-
callbacks: list, 其中的元素是keras.callbacks.Callback的对象。 这个list中的回调函数将会在训练过程中的适当时机被调用, 参考回调函数。
-
validation_split: 0~1之间的浮点数, 用来指定训练集的一定比例数据作为验证集。 注意, validation_split的划分在shuffle之前, 因此如果你的数据本身是有序的, 需要先手工打乱再指定validation_split, 否则可能会出现验证集样本不均匀。
-
validation_data: 形式为(X, y) 的tuple, 是指定的验证集。 此参数将覆盖validation_spilt参数。
-
shuffle: 布尔值或字符串, 一般为布尔值, 表示是否在训练过程中随机打乱输入样本的顺序。 若为字符串“batch”, 则是用来处理HDF5数据的特殊情况, 它将在batch内部将数据打乱。
-
initial_epoch: 从该参数指定的epoch开始训练, 在继续之前的训练时有用。
-
fit函数返回一个History的对象, 其History.history属性记录了损失函数和其他指标的数值随epoch变化的情况, 如果有验证集的话, 也包含了验证集的这些指标变化情况。
-
-
evaluate(self, x, y, batch_size=32, verbose=1, sample_weight=None):本函数按batch计算在某些输入数据上模型的误差, 其参数有predict(self, x, batch_size=32, verbose=0):本函数按batch获得输入数据对应的预测结果, 其中x是输入向量, batch_size是每批次选取的数据集数量。函数的返回值是预测值的numpy array。
-
x: 输入数据, 与fit一样, 是numpy array或numpy array的list。
-
y: 标签, numpy array。
-
batch_size: 整数, 含义同fit的同名参数。
-
verbose: 含义同fit的同名参数, 但只能取0或1。
-
本函数返回一个测试误差的标量值( 如果模型没有其他评价指标) , 或一个标量的list( 如果模型还有其他的评价指标) 。 model.metrics_names将给出list中各个值的含义。
-
-
fit_generator(self, generator, steps_per_epoch, epochs=1, verbose=1, callbacks=None, validation_data=None):利用Python的生成器, 逐个生成数据的batch并进行训练。 生成器与模型将并行执行以提高效率。 例如, 该函数允许我们在CPU上进行实时的数据提升, 同时在GPU上进行模型训练。函数的参数是
-
generator: 生成器函数, 生成器的输出应该为:
-
a) 一个形如(inputs, targets) 的tuple。
-
b) 一个形如(inputs, targets, sample_weight) 的tuple。 所有的返回值都应该包含相同数目的样本。 生成器将无限在数据集上循环。 每个epoch以经过模型的样本数达到samples_per_epoch时, 记一个epoch结束。
-
-
steps_per_epoch: 整数, 当生成器返回steps_per_epoch次数据时计一个epoch结束, 执行下一个epoch。
-
epochs: 整数, 数据迭代的轮数。
-
-