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

  • 相关阅读:
    mysql 主从配置
    doGet和doPost的区别
    我的第一个MVC项目
    c3p0xml配置详解
    c3p0连接数据库
    java加载资源文件
    Windows上部署Python
    Windows上部署Python
    NagiosQL安装
    Nagios Windows客户端NSClient++ 0.4.x安装配置
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/15046421.html
Copyright © 2020-2023  润新知