8000 GitHub - Starangle/torcher
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Starangle/torcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

torcher

torcher是为pytorch训练模型提供一个类似keras和sklearn中fit方法类似的接口,使用步骤如下

  1. 准备好要进行评估的模型(一个torch.nn.Module的实例),一个loss函数以及一系列评价指标;
  2. 声明一个Torcher对象(可通过from torcher import Torcher导入定义);
  3. 调用fit方法进行拟合。 model对象应当已经被放置到GPU上。

模块实现见torcher文件夹,test.py提供了一个基于MNIST的简单实例。

loss函数

任意的接受两个tensor并返回一个标量tensor的函数都可以被当作loss函数,可表示为

f(y_pred,y_true) -> loss

7084

其中y_pred表示一个batch的预测结果,y_true表示对应的label。

metric函数

任意的接受两个tensor并返回一个标量的函数都可以被当作loss函数,可表示为

f(y_pred,y_true) -> metric

其中y_pred表示一个batch的预测结果,y_true表示对应的label。注意该函数与loss不同的是,其返回值为numpy类型,这允许你在计算指标时使用任意无法计算梯度的方法。

transfrom对象

在处理数据时,如果希望能够利用GPU进行加速,可以指定transform对象,transform对象应当是一个torch.nn.Module的子类,在Torcher中,transform对象中进行的操作不会被计算梯度。transform对象应当独立于model对象,因为pytorch不允许在模型中存储可能用到的一些函数,例如torchaudio中的FFT变换。

optimizer对象

opti参数接受形如

lambda x:torch.optim.Adam(x,lr=0.01)

的函数对象,其中x会在Torcher对象中为其赋值,其余超参数可以在自己进行设定。

0.0.5更新

  • 修复了log_file在当前目录下因无法创建文件夹而导致的错误
  • 现在transform由用户的类型为用户编写的torch.nn.Module的子类
  • model和transform对象中数据在CPU和GPU之间的迁移应当由用户决定,以便于构建在多个GPU上并行的模型
  • 支持DataLoader输出的某个batch为None,None的操作,这个批次被直接跳过
  • 增加学习率衰减的回调函数,支持按照loss衰减和按照训练时间衰减两种模式,通过method来指定,关键字分别为based_on_lossbased_on_epoch
    • loss:当连续freq个epoch中没有出现loss下降,则将学习率乘上decay的数值
    • 按时间衰减:每经过freq个epoch,将学习率乘上decay的数值
  • 修复valid_data=None时的Bug
  • 增加名为Checkpoint的回调函数,自动保存在验证集上具有最小的loss的模型 *可选择保存具有最高指标的模型
  • 增加eval方法,可以按照设定好的loss和metrics进行验证并报告结果

0.0.4更新

  • 现在Torcher支持将日志写入到文件中,相比与使用重定向,这可以避免一些提示性的输出(例如进度条)。可以通过fit函数的log_file参数来指定写入的文件。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0