Keras Project Template


文章翻译自 GitHub.

开始

此模板能够让你使用checkpoints和Tensorboard可视化简单地创建和训练深度学习模型。
使用此模板你必须:

  1. 定义一个数据载入的类
  2. 定义一个从BaseModel继承的模板类
  3. 定义一个继承的训练器类
  4. 定义一个配置文件,其中含有实验所需的参数
  5. 运行模型使用:
python main.py -c [path to configuration file]

运行一个Demo项目

简单地模型mnist数据集可用于测试此模板。运行项目样例:

  1. 开始训练:
python main.py -c configs/simple_mnist_config.json
  1. 开始Tensorboard可视化:
tensorboard --logdir=experiments/simple_mnist/logs

在这里插入图片描述

结合Comet.mI

此模板还支持向Comet.ml报告,这可以让你看到所有你的超参数、图、依赖项以及更多,包括实时度量。
添加你的API秘钥在配置文件当中,比如:

“comet_api_key”:“your key here”

你还可以将自己的GitHub存储库链接到comet.ml项目以进行完整版本控制。

模板细节衡量指标

项目架构

在这里插入图片描述

文件夹结构

|—main.py 这里是一个对整个pipeline负责的主要的实例
|
|—base 这个文件夹里包含了项目组成成分的抽象类
|||||||||—base_data_loader.py 这个文件夹包含了数据载入的抽象类
|||||||||—base_model.py 这个文件夹包含了模型的抽象类
|||||||||—base_train.py 这个文件夹包含了训练器的抽象类
|
|—model 这个文件夹包含了项目的面模型
|||||||||—simple_mnist_model.py
|
|—trainer 这个文件夹包含了项目的训练器
|||||||||—simple_mnist_trainer.py
|
|—data_loader 这个文件夹包含了项目的数据载入器
|||||||||—simple_mnist_data_loader.py
|
|—configs 这个文件夹包含了项目中实验和模型的配置
|||||||||—simple_mnist_config.json
|
|—datasets 这个文件夹可能包含了项目的数据集
|
|—utils 这个文件夹包含了一些你需要的实用工具
|||||||||—config.py 用于分析配置文件的工具函数
|||||||||—dirs.py 用于创建目录的工具函数
|||||||||—utils.py 用于分析参数的工具函数

主要部件

模型

你需要:

  1. 创建一个从BaseModel继承的模型类。
  2. 定义你的模型来覆盖build_model函数。
  3. 从构造函数中调用build_model函数。
训练器

你需要:

  1. 创建一个从BaseTrainer继承的训练器的类。
  2. 定义训练逻辑覆盖train函数。
    注意:在每个训练的epoch之后添加功能函数来保存checkpoints或者日志以方便Keras回调Tensorboard:
  • 在构造函数中声明回调数组。
  • 定义一个init_callbacks函数来填充你的回调数组并在构造函数中调用它。
  • 将回调数组传递给模型对象上的fit函数。
    注意:你可以使用fit_generator来代替fit以支持生成新的数据batch,而不是一次加载整个数据集。
数据载入器

你需要:

  1. 创建一个从BaseDataLoader继承的数据载入器的类。
  2. 覆盖get_train_data()和get_test_data()函数来返回你的训练和册数数据集片段。
    注意:如果你想在数据读取的时候每次从数据集中只读取一个batch,那么你也可以在数据载入器的类中的函数get_next_batch()定义一个不同的逻辑。
配置

你需要定义一个.json文件包含你的实验和模型的配置,比如实验名称、batch size、epoch的数量等。

主函数

负责pipeline的构建。

  1. 分析配置文件
  2. 创建数据加载器类的实例
  3. 创建模型类的实例
  4. 创建训练器类的实例
  5. 在训练器对象上使用“.Train()”函数训练模型
From Config

我们现在可以加载模型,而不必显式地为每个类创建一个实例。

  1. from_config.py:可以加载任何设置为指向要导入的正确模块/类的配置文件
  2. 查看config/simple_mnist_from_config.json从配置中了解这是如何工作的。运行使用:
python from_config.py -c configs/simple_mnist_from_config.json
  1. 查看conv_mnist_from_config.json(以及附加的数据加载器/模型)看看只使用不同的配置文件运行不同的实验有多简单:
python from_config.py -c configs/conv_mnist_from_config.json

未来工作

为Keras项目脚手架创建一个命令行工具,用户在其中定义一个数据加载器、一个模型、一个训练器,并运行该工具来生成整个项目(目前这已经在某种程度上通过加载配置文件中的每一个来完成)。

项目样例

Toxic comments classification using CNN and Word Embedding

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值