• keras_19_工具Utils


    1. keras.utils下面的api

    • CustomObjectScope

      • 提供一个无法转义的_GLOBAL_CUSTOM_OBJECTS 范围。with 语句中的代码将能够通过名称访问自定义对象。 对全局自定义对象的更改会在封闭的 with语句中持续存在。 在with语句结束时, 全局自定义对象将恢复到 with 语句开始时的状态。

        # 考虑自定义对象 MyObject (例如一个类):
        with CustomObjectScope({'MyObject':MyObject}):
            layer = Dense(..., kernel_regularizer='MyObject')
            # 保存,加载等操作将按这个名称来识别自定义对象
        
    • HDF5Matrix

      • 使用 HDF5 数据集表示,而不是 Numpy 数组。

        x_data = HDF5Matrix('input/file.hdf5', 'data')
        model.predict(x_data)
        # 提供 start 和 end 将允许使用数据集的一个切片。
        # 你还可以给出标准化函数(或 lambda)(可选)。 这将在检索到的每一个数据切片上调用它。
        
    • Sequence

      • 用于拟合数据序列的基类,例如一个数据集。每一个 Sequence 必须实现 __getitem____len__ 方法。 如果你想在迭代之间修改你的数据集,你可以实现 on_epoch_end__getitem__ 方法应该范围一个完整的批次。注意Sequence 是进行多进程处理更安全的方法。这种结构保证网络在每个时期每个样本只训练一次,这与生成器不同。

        from skimage.io import imread
        from skimage.transform import resize
        import numpy as np
        import math
        
        # 这里,`x_set` 是图像的路径列表
        # 以及 `y_set` 是对应的类别
        
        class CIFAR10Sequence(Sequence):
        
            def __init__(self, x_set, y_set, batch_size):
                self.x, self.y = x_set, y_set
                self.batch_size = batch_size
        
            def __len__(self):
                return math.ceil(len(self.x) / self.batch_size)
        
            def __getitem__(self, idx):
                batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]
                batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]
        
                return np.array([
                    resize(imread(file_name), (200, 200))
                       for file_name in batch_x]), np.array(batch_y)
        
    • to_categorical

      • 将类向量(整数)转换为二进制类矩阵。对向量中每个元素执行one-hot编码。一般后面接categorical_crossentropy。
    • normalize

      • 标准化一个 Numpy 数组。
    • get_file

      • 从一个 URL 下载文件,如果它不存在缓存中。默认情况下,URL origin处的文件 被下载到缓存目录 〜/.keras 中, 放在缓存子目录 datasets中,并命名为 fname。 文件 example.txt 的最终位置为 ~/.keras/datasets/example.txt。tar, tar.gz, tar.bz, 以及 zip 格式的文件也可以被解压。 传递一个哈希值将在下载后校验文件。 命令行程序 shasumsha256sum 可以计算哈希。
      • 返回值:下载的文件的存在本地的路径。
    • print_summary

      • 打印模型概况。
    • plot_model

      • 将 Keras 模型转换为 dot 格式并保存到文件中。
    • multi_gpu_model

      • 将模型复制到不同的 GPU 上。具体来说,该功能实现了单机多 GPU 数据并行性。 它的工作原理如下:
        • 将模型的输入分成多个子批次。
        • 在每个子批次上应用模型副本。 每个模型副本都在专用 GPU 上执行。
        • 结果(在 CPU 上)连接成一个大批量。
      • 例如, 如果你的 batch_size 是 64,且你使用 gpus=2, 那么我们将把输入分为两个 32 个样本的子批次, 在 1 个 GPU 上处理 1 个子批次,然后返回完整批次的 64 个处理过的样本。这实现了多达 8 个 GPU准线性加速。此功能目前仅适用于 TensorFlow 后端
      • 返回值:一个 Keras Model 实例,它可以像初始 model 参数一样使用,但它将工作负载分布在多个 GPU 上。
      • 多GPU模型的保存:要保存多 GPU 模型,请通过模板模型(传递给 multi_gpu_model 的参数)调用 .save(fname) 或 .save_weights(fname) 以进行存储,而不是通过 multi_gpu_model 返回的模型。
  • 相关阅读:
    3、Find and run the whalesay image
    1、docker初涉
    Java之ThreadLocal原理分析
    Java之Synchronized和ReentrantLock锁机制的比较
    Java之动态代理的实现及原理
    Java之atomic包的原理及分析
    深入理解Java内存模型-volatile
    Java WeakReference
    JavaScript 事件的冒泡,委派
    JavaScript Date删除添加员工信息练习
  • 原文地址:https://www.cnblogs.com/LS1314/p/10380700.html
Copyright © 2020-2023  润新知