alex_bn_lee

导航

【620】读书笔记【Keras图像深度学习实战】

  • 1.2.2 张量

    • 0阶张量:标量,也就是一个数

    • 1阶张量:就是一个向量

    • 2阶张量:就是一个矩阵

    • 3阶张量:可以表示为3个颜色通道的彩色图片

  • 1.2.4 模型

    • Keras 包含两种模型(不同版本叫法不同)
      • Sequential模型:序贯模型,单输入单输出模型

      • Graph,图模型:支持多输入多输出,就是 functional model API

  • 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: 整数, 数据迭代的轮数。

  •  

 

posted on 2021-07-22 21:05  McDelfino  阅读(78)  评论(0)    收藏  举报