pytorch教程一Ignite

官方参考资料
如果您看到我的记录,建议忽略我的,看官方参考资料,现在水平,不值得您看
python是一种面向对象抽象,书写深度学习程序,最好是将所有程序对象像化,这样的化,可以花更多的精力在网络结构上,在这里介绍基于pytorch高级库Ignite,这个非常有用的库,下面看下源码布局

Ignite介绍

读这个之前,最好看官网github的列子
在这里插入图片描述
这个package中包含四个包:

  1. contrib
  2. engine
  3. handlers
  4. metrics
    这里每个package的源码有兴趣,可以读一读,感受一下,大神是如何设计package的。 一天时间,我反正是没有看懂——2019.7.2

四个概念的介绍

一、Engine
Engine是Ignite中最主要的类,它的作用是提供一个trainer 和 evaluater。

  • trainer:相当于在样本上执行process_function函数执行多此,并更新参数。
  • evaluater:相当于在数据上process_函数一次,输出结果:

因此:Engine具有

  1. 循环功能
while epoch < max_epochs:
    # run once on data
    for batch in data:
        output = process_function(batch)
  1. 更新参数
    在这里插入图片描述

二、Events and Handler
Events有以下几种:
在这里插入图片描述
Handle是在触发上述事件时运行的函数。这个函数可以通过装饰器的方式,装饰到事件上,有两种发视定义,这里介绍一种:
在这里插入图片描述
这个代码的意思是:每次Iteration_completed迭代结束后,触发```log_training_loss`函数,这个函数功能是:输出loss,另外loss写入tensorbord的writer对象。

三、Timeline and events
在这里插入图片描述
这个图我也不明白什么意思,大概是想表述,epoch_start——iteration_start——iteration_end——epoch_end,
iteration_end,判断,输出此次iteration的loss,在epoch,输出,此时模型在训练集,和测试集上的准确率或者其他指标
四、State
在这里插入图片描述
state对象在Engine中引入,用来存储,process_function的输出(上文有介绍这个函数),当前的epoch,iteration,还有其他信息,每个Engine有一个State,如下:

  • engine.state.epoch:Number of epochs the engine has completed. Initializated as 0.
  • engine.state.max_epochs: Number of epochs to run for. Initializated as 1.
  • engine.state.iteration: Number of iterations the engine has completed. Initialized as 0.
  • engine.state.output: The output of the process_function defined for the Engine.

综上:这里介绍下,利用Ignite进行训练的基本思路:

  1. 构建class Net(nn.Module)网络结构
  2. 定义函数get_data_loaders(train_batch_size, val_batch_size), 返回train_loader,val_loader
  3. 创建函数create_summary_writer(model,data_loader, dog_dir) ,返回的是一个SummaryWriter对象
  4. 定义run(train_batch_size,val_batch_size, epochs, lr, momentum, log_interval, log_dir)
    1. 这个函数要定义 train_loader、val_batch_size 、模型、SummaryWriter对象、优化器、trainer、evaluator、
    2. 定义handles,通过事件触发程序
  5. 运行函数
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值