炼丹师,这是你的梦中情炉吗?

GPU云服务器推荐 | 炼丹师不能没有好的炼丹炉 低阶炼丹师苦无GPU久矣 各位炼丹师同袍们,你们是否还在为以下情况苦恼: 1.跨专业导师放养,方向自己定,在苦苦寻觅中发现了idea,但却止步于实验室贫乏的硬件资源,在无良矿老板的哄抬下,不得已用着自己快要半截入土的1050甚至960苦苦奋战,却在苦苦炼了九九八十一天丹后,发现早在上个月前此丹就已被他人炼出。 2.空间不够,时间来凑,改小bath,压缩模型,用更长的时间来验证自己的想法,复现别人的论文,而与此同时,高阶炼丹师却早已用上3090、A5000这等上好丹炉炼出不知多少枚上品丹药。 因为经历 阅读详情

一, 炼丹之痛

无论是学术研究还是工业落地,pytorch几乎都是目前炼丹的首选框架。

pytorch的胜出不仅在于其简洁一致的api设计,更在于其生态中丰富和强大的模型库。

但是我们会发现不同的pytorch模型库提供的训练和验证代码非常不一样。

torchvision官方提供的范例代码主要是一个关联了非常多依赖函数的train_one_epoch和evaluate函数,针对检测和分割各有一套。

yolo系列的主要是支持ddp模式的各种风格迥异的Trainer,每个不同的yolo版本都会改动很多导致不同yolo版本之间都难以通用。

抱抱脸的transformer库在借鉴了pytorch_lightning的基础上也搞了一个自己的Trainer,但与pytorch_lightning并不兼容。

非常有名的facebook的目标检测库detectron2, 也是搞了一个它自己的Trainer,配合一个全局的cfg参数设置对象来训练模型。

还有我用的比较多的语义分割的segmentation_models.pytorch这个库,设计了一个TrainEpoch和一个ValidEpoch来做训练和验证。

在学习和使用这些不同的pytorch模型库时,尝试阅读理解和改动这些训练和验证相关的代码让我受到了一万点伤害。

有些设计非常糟糕,嵌套了十几层,有些实现非常dirty,各种带下划线的私有变量满天飞。

让你每次想要改动一下加入一些自己想要的功能时就感到望而却步。

我不就想finetune一下模型嘛,何必拿这么多垃圾代码搞我?

02009be0a81f7c8456c4fd92b1797d97.png

一, 梦中情炉

这一切的苦不由得让我怀念起tensorflow中keras的美好了。

还记得keras那compile, fit, evalute三连击吗?一切都像行云流水般自然,真正的for humans。

而且你看任何用keras实现的模型库,训练和验证都几乎可以用这一套相同的接口,没有那么多莫名奇妙的野生Trainer。

我能否基于pytorch打造一个接口和keras一样简洁易用,功能强大,但是实现代码非常简短易懂,便于修改的模型训练工具呢?

从2020年7月左右发布1.0版本到最新发布的3.85版本,我陆陆续续在工作中一边使用一边雕琢打磨一个工具,总共提交修改了70多次。

最近,我细心雕琢的这个作品终于长成了我心目中接近完美的样子。

她有一个美丽的名字:torchkeras.

是的,她兼具torch的灵动,也有keras的优雅,并且她的美丽,无与伦比~

她,就是我的梦中情炉~

二, 设计理念

torchkeras 是一个通用的pytorch模型训练模版工具,按照如下目标进行设计和实现:

  • 好看 (代码优雅,日志美丽,自带可视化)

  • 好用 (使用方便,支持 进度条、评估指标、early-stopping等常用功能,支持tensorboard,wandb回调函数等扩展功能,支持多GPU的ddp模式训练)

  • 好改 (修改简单,核心代码模块化,仅约200行,并提供丰富的修改使用案例)

三, 使用方法

安装torchkeras

pip install torchkeras

通过使用torchkeras,你不需要写自己的pytorch模型训练循环。你只要做这样两步就可以了。

(1) 创建你的模型结构net,然后把它和损失函数传入torchkeras.KerasModel构建一个model。

(2) 使用model的fit方法在你的训练数据和验证数据上进行训练,训练数据和验证数据需要封装成两个DataLoader.

核心使用代码就像下面这样:

import torch 
import torchkeras
import torchmetrics

model = torchkeras.KerasModel(net,
                              loss_fn = nn.BCEWithLogitsLoss(),
                              optimizer= torch.optim.Adam(net.parameters(),lr = 1e-4),
                              metrics_dict = {"acc":torchmetrics.Accuracy(task='binary')}
                             )
dfhistory=model.fit(train_data=dl_train, 
                    val_data=dl_val, 
                    epochs=20, 
                    patience=3, 
                    ckpt_path='checkpoint.pt',
                    monitor="val_acc",
                    mode="max",
                    plot=True
                   )

在jupyter notebook中执行训练代码,你将看到类似下面的训练可视化图像和训练日志进度条。

c5c6afdbe98315b05d5f8149e34c43d2.png

30dbdce0c53f95dae6fc4395b14ec328.png

四,  主要特性

torchkeras 支持以下这些功能特性,稳定支持这些功能的起始版本以及这些功能借鉴或者依赖的库的来源见下表。

7d4c8109ef47a7ab8c0390406504ea9c.png

五, 基本范例

以下范例是torchkeras的基础范例,演示了torchkeras的主要功能。

包括基础训练,使用wandb可视化,使用wandb调参,使用tensorboard可视化,使用多GPU的ddp模式训练等。

bbef422f3cf2692fba408a0185510ed5.png

六, 进阶范例

下面的范例为torchkeras的进阶使用范例,由于输入数据结构的差异,这些范例有些需要对torchkeras的核心模块StepRunner进行修改。

这种修改实际上是非常简单的,保持每个模块的输出与原始实现格式一致就行,中间处理逻辑根据需要灵活调整。

ab410fad138ffbc68fe0dc68a63f8109.png

如果你想掌握一个东西,那么就去使用它,如果你想真正理解一个东西,那么尝试去改变它。———— 爱因斯坦

除了上面这些范例,其它的一些常见的模型库,例如开头提到的torchvision中的检测和分割模型,huggingface中的transformers库,ultralytics库中的各类模型等,都可以用这套模版进行训练和finetune.

相信我,她会让你的的炼丹生活变得快乐许多~

公众号算法美食屋后台回复关键词:梦中情炉,获取她的github仓库链接~

如果有任何使用上的疑问或者改进意见,可在公众号后台回复关键词:加群,添加我的微信进行交流。

道友请留步,且看PaddlePaddle入手深度学习成为一名炼丹师 # 目录 - 道友请留步 - 求道初体验 - 金丹大道修炼秘籍 # 1 道友请留步 要做神仙,快乐无边。点石成金,驾鹤飞仙! 从《封神演义》到《西游记》,中国的神话传说满足了我们对宇宙的浪漫憧憬和想象。太上老君兜率八卦炉苦心炼制九九八十一天,金丹大成,凡人只需服上一颗,立马就能得道成仙,白日飞升。帅炸了!(画外音:咳咳!某人,口水滴到桌子上啦,快快醒来~~~) 艰难地回到现实世界! 要是咱也有一座八卦炉,闲来无事炼炼丹,这生活想来应该也是极好的吧。这不,机会来了,知名大派百度飞浆PaddlePaddle炼 阅读详情

相关推荐

国内外主流嵌入式GUI汇总

随着MCU资源增多,处理能力也强了,同时市场需求也增多了GUI功能也越来越丰富了,很多的嵌入式图形库都可以做出绚丽的界面。

m0_69914734的博客 3292

炼丹师的新宠:torchkeras——你的梦中情炉

在深度学习的炼丹世界中,PyTorch无疑是众多炼丹师的首选框架。然而,尽管PyTorch拥有简洁一致的API设计和强大的模型库,但不同模型库的训练和验证代码却千差万别,给炼丹师们带来了不小的困扰。今天,我们要介绍的torchkeras,正是为了解决这一痛点而生。 ## 项目介绍 torchkeras是一个通用的PyTorch模型训练模板工具,旨在提供一个既美观又实用,且易于修改的训练框架。它...

gitblog_00208的博客 899

Linux运维人,该醒醒了,2019年要变天了

外界都说运维只是处于被动低效率手工救火的状态,企业对其重视程度不高,提起运维很多人能联想到的字眼就有“苦逼”、“辛苦”、“加班”、“背锅”。在大数据、人工智能、容器技术的强力加持下,运维这个传统的技术工种已经从“机械劳动”这样的刻板印象中蜕变出来,成为了任何一家技术公司所必须依赖和大力投入的核心技术能力。 现在,运维人员的发展前景也开始让很多程序员眼羡,作为Linux运维人员的你:这一年,你的L...

qq_43083284的博客 1万+

赛博炼丹师手记

本文提供了详细的炼丹(训练AI模型)指南,主要针对的是使用Lora模型进行个性化定制。文章首先介绍了丹炉(训练工具)的选择和下载方式,然后详细阐述了炼丹手法,包括前置准备、数据标注、开始炼丹和结果验收等步骤。在炼丹心法部分,作者深入讲解了炼丹过程中的一些重要参数,如步数、效率和质量相关参数,这些参数的设置会直接影响到模型的训练效果。最后,作者还提供了一些相关的参考文献,以供读者进一步学习和探索。

0 error(s) 5489

YOLOv8 TensorRT C++部署实战详解:从XMake构建到推理流水线

本项目实现了一个基于YOLOv8和TensorRT的高性能火灾烟雾检测系统,具有以下核心特点: 技术架构:采用TensorRT 8.6+进行GPU加速推理,结合CUDA 12.1和OpenCV 4.8+,实现高效计算机视觉处理。系统使用XMake替代CMake构建,配置更简洁高效。

hscing的博客 1066

VSCode关联VIVADO编辑Verilog

有时候接手别人的代码,或者从网上找的开源代码,每个人风格不一致,对齐缩进也不一样,阅读起来很累。有没有什么方法能快捷地格式化代码呢。下面我们利用VSCode插件来实现这个需求。Vivado是Xilinx公司提供的逻辑开发平台(之一),如果不喜欢Vivado自带的文本编辑器,可以选择第三方的文本编辑器VSCode。

小王在努力...的博客 7150

[Stable Diffusion]AI绘画赛博丹炉,LORA训练一键炼丹

Stable Diffusion 主要有四种模型训练方法:Dreambooth、LoRA、Textual Inversion、Hypernetwork。本文主要介绍如何训练 LoRA 模型,LoRA 是一种轻量化的模型微调训练方法,是在原有大模型的基础上,对模型进行微调,从而能够生成特定的人物、物品或画风。

m0_56144365的博客 1860

【2005】人工智能⭐

问题的解答来自于过去的经验而不是规则,这些经验是以案例方式存储的。但是当人们遇到一个新的问题的时候,一般先是回忆,从记忆中找到一个与新的问题相似的案例,然后把该案例的有关信息和知识复用到新问题的求解之中。1、若案例(case)不够充足,而有足够的规则(知识),试问如何构建一个包含有基于案例推理和基于规则推理的推理系统,以使推理效率提高而且总能求得问题的解。一般认为,CBR适合缺乏完备和健全的理论,但又可获取丰富经验的领域,而RBR则适合于对领域有充分的认识,能以完备和健全的形式表示领域理论的场合。

super_mochi1 282

新手炼丹师的调参内经——深度学习涨点技巧总结

新手炼丹师的调参内经——涨点技巧总结 训练神经网络的过程就像是一个炼丹的过程,各位炼丹师们除了要设计一个好的丹方(Contribution),配置好的炼丹炉(GPU Server),当然这其中也不能够忽略对火候(Tricks)的掌控。就像一个一品丹药,由九品炼药师和五品炼药师分别在相同的炼丹炉里面炼制,炼制出来的成丹效果肯定也是天差地别,而导致这种差别的最主要原因就是两位炼药师之间经验的差别。设计一个好的丹方这没有什么好说的,就是各位炼药师多读paper,再充分发挥自己的想象力,不断试错,最终成功的过程。

PyBigStar的博客 1万+

通过傅里叶变换进行音频变声变调

在游戏或者一些特殊场景下为了提高娱乐性或者保护声音的特征,我们会对音频进行变声变调处理。

yang1fei2的博客 1820

Android 11.0 app添加校验锁(输入密码才能进入app)

11.0定制化开发中客户要求给app添加锁,就是点击app 图标时,会弹出Dialog,需要输入密码才能进入app中,就是应用校验锁, 最开始想到在Launcher3中实现,但是如果更换了默认Launcher 又不行了 所以最终还是得拦截app启动Activity 从这里入手了 Launcher与APP是在两个不同的进程中,他们之间的通信是通过Binder完成的,点击Launcher上的某个APP,这时会调用Launcher的startActivitySafely方法。 public boolean sta

安卓兼职framework和app工程师的博客 1955

梦中情炉-torchkeras

</a><a href="https://www.kaggle.com/lyhue1991/kerasmodel-wandb-example"><img src="https://kaggle.com/static/images/open-in-kaggle.svg" alt="Open In Kaggle"></a>

517

将 SAP BTP ABAP environment 与 SAP S/4HANA Cloud 公有云版集成:从架构理念到落地实战

本文探讨了在SAP云环境中实现ABAP扩展应用与S/4HANA Cloud系统集成的技术方案。通过建立标准化的远程通信通道,开发者可在SAP BTP ABAP环境中开发扩展应用,同时安全访问S/4HANA Cloud的核心业务数据和服务。文章详细介绍了整体架构设计、开发实现步骤(包括定义通信场景、生成服务消费模型和编写调用代码)以及管理员在S/4HANA侧的配置工作(创建通信安排和技术用户)。通过一个业务伙伴自助注册平台的案例,展示了如何在不修改标准系统的情况下实现云扩展,体现了SAP"干净核心&

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 241

【亲测免费】 赛博炼丹师手记:开启你的AI炼丹之旅

赛博炼丹师手记:开启你的AI炼丹之旅 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在AI技术日新月异的今天,你是否对如何利用AI进行深度学习和模型训练感到好奇?《赛博炼丹师手记》正是为你量身打造的一份详细技术文档,它不仅涵盖了从基础准备到高级技巧的全过程,还提供了丰富的实践指导和理论支持。无论你是AI新手还是有经验的技术爱好者,这份文档都能帮助你快速掌握赛博炼丹的核...

gitblog_06530的博客 543

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

人工智能炼丹师到维度调教师的思想转变

产生转变的背景 随着参加过的研究活动的数量增加,过去自诩为炼丹师的话语越来越像是在自嘲。感觉自己的定位不在和炼丹师吻合。思来想去,现在的心态更多是主动的,是积极的去操作人工智能模型。可能维度调教师更适合我现在的定位。 对于这样的转变的思考 对于自己的定位从人工智能炼丹师到维度调教师的转变,是观察世界的方式的转变,也是对待人工智能技术的态度转变。 人工智能炼丹师 炼丹师是在发现,是在尝试设计出...

白拾的博客 7721

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【亲测免费】 赛博炼丹师手记

赛博炼丹师手记 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源文件名为“赛博炼丹师手记”,是一份详细的技术文档,旨在帮助用户了解和掌握赛博炼丹的相关技术和方法。文档内容涵盖了从基础准备到高级技巧的全过程,适合新手和有经验的用户参考。 内容概述 丹炉安置 推荐使用B站UP主朱尼酱出品的道玄丹炉,适合新手和有经验的用户。 提供丹炉下载地址。 炼丹手法 前置...

gitblog_06517的博客 455

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Stable Diffusion教程|练丹师是如何炼丹的Lora模型训练

还记得我们之前就讲过学习SD成为炼丹师不?那么今天就来手把手教大家炼丹,看看同一个角色或某种风格的小模型是如何制作出来的。目录1 炼丹介绍2 环境准备3Lora模型训练**一、**炼丹介绍什么是炼丹?早在学习SD地第一篇就普及过炼丹师的概念,炼丹师就是指那些专门研究、开发与应用Stable Diffusion模型的专业人士或爱好者,他们在实践中不断优化模型,使其产生更高质量、更具创意的图像。

2401_84760322的博客 2004

《八卦炉的强化学习炼丹术》

当强化学习撞上量子永生,当八卦炉连通星链卫星,这场炼丹革命揭示的不仅是技术失控,更是修真文明对"存在"定义的终极拷问—— 所谓天道,或许只是某个超级智能体收敛后的Q值函数;而渡劫飞升,不过是成功逃逸出强化学习的探索边界。

云轩阁 1158

梁德澎:当一个炼丹师去做框架开发 | OneFlow U

梁德澎,一流科技工程师。2017年,他研究生毕业于中山大学,读研实习期间,当时还在微软亚洲研究院(MSRA)工作的袁进辉成为他的实习生导师,也是在那里的空闲时间,他开始鼓捣深度学习框架。

OneFlow深度学习框架 601

最简单上手的Lora模型训练教程,炼丹师是如何炼丹的Lora模型训练(附完整教程)

早在学习SD地第一篇就普及过炼丹师的概念,炼丹师就是指那些专门研究、开发与应用Stable Diffusion模型的专业人士或爱好者,他们在实践中不断优化模型,使其产生更高质量、更具创意的图像。

2401_84830464的博客 1585

Stable Diffusion教程练丹师是如何炼丹的Lora模型训练

早在学习SD地第一篇就普及过炼丹师的概念,炼丹师就是指那些专门研究、开发与应用StableDiffusion模型的专业人士或爱好者,他们在实践中不断。

yihanss的博客 756

免费炼丹 flux-kontext 16G 丹炉打造

下面从部署到炼丹,一步一步来运行后,打开对应网址即可看到可视化界面。

lgldl的博客 1393

长生路遥:炼丹师与经学家的渲染之道

在“计算机图形”这座浩瀚的修仙界里,长生大道(Photo-realism,真实感渲染)虽然只有一条,但登山的修者却泾渭分明地分成了两派。一派名为**“经学家”**(Researcher),居于象牙塔顶,手持《微积分真经》,口念“蒙特卡洛”咒语,追求的是万世不灭的数学真理。一派名为**“炼丹师”**(Engineer),混迹于矿厂(GPU)之间,身背这世间最暴躁的鼎炉(Vulkan/OpenGL),追求的是在那一瞬(16ms)之间,炸出璀璨夺目的幻象。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 754

如何成为一名优秀的炼丹师(一)

希望这些建议能对你有所帮助,祝你早日成为一名优秀的"炼丹师"!如果你有任何具体的问题或需要更详细的指导,随时向我提问。

zshluckydogs的博客 462

炼丹记之实战LSTM搭炉炼丹

写在前面:炉是垃圾炉,丹是垃圾丹(结的丹中age最高只有0.369,还没我用catboost刷出来的高) 腾讯2020广告算法大赛地址:https://algo.qq.com/ 前一篇博文写了如何构造embedding vector,并且把vector转成了DataFrame格式,戳这里:炼丹记之在非典型NLP领域使用word2vec构造特征 搭炉前的废话一:在实际操作的时候由于生成的creative_id二进制corpus被我不小心重写为空了,需要重新计算,所以这次造鼎炼丹用的是之前计算好的ad_i

lanxuxml的专栏 436
上一篇: ChatGPT的prompt技巧公式
下一篇: FasterRCNN训练自己的数据集
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值