woshini 发表于 5 天前

转DFL模型文件的介绍

本帖最后由 woshini 于 2024-9-15 17:12 编辑

模型文件的关系
---DF架构MODE基础文件有6个

_data.dat----模型参数文件
_decoder_dst.npy----DST素材的模型文件-----承载DST映射的容器----预览窗第4列
_decoder_src.npy----SRC素材的模型文件-----承载SRC映射的容器----预览窗第2列
_encoder.npy----编码器文件
_inter.npy----素材的映射文件----数据记忆库
_src_dst_opt.npy----将SRC与DST两个模型溶合在一起的模型-----预览窗第5列

---编码器文件贯穿所有的模型文件---参数一变,所以数据都将丢失
---映射文件依赖编码器,这是数据的映射记忆库----删除此文件,模型就如于一个人永久性丢了所有的记忆,脑海里一片空白
---DST与SRC模型文件,是承载映射的容器,依赖编码器----删除此文件,就如已经耕种的农田又回到荒地-----即使映射记忆还在,却无法承载,相当于重头开始
---OPT文件很大,却不那么重要,但也有重要的一面(后面会讲),必要时我会删除重来----这是将SRC与DST模型溶合到一起的模型

本帖隐藏的内容---src.npy与dst.npy
    这两个只是储存两个素材映射的容器,这个容器是可以随意调用,改个名就行;你训练模型SRC是男的,DST是女的,当把两个素材调转时(SRC变女,DST为男),把这两个文件也同时改名调转,效果是一样的;但如果只调转素材而不把这两个文件更名调转,效果就如新素材复用数据,还需重新训练;
    ----技巧:一套素材一个模型(_src.npy),将用过的素材与模型文件同时备份(只需备份_src.npy即可,不需全部的文件),下次再用这套素材时把这个模型覆盖掉就不用再重新的训练来达到之前的效果(每次复用,SRC都会越练越精,就是逆行法的效果);注:必需是复用在同一个模型底丹时有效;

    不知大家是否记得,新建模型有个功能叫预训练,预训练完转正训时,数据会全部丢失;后来随着DFL技术的发展,都觉得这个预训练很鸡肋,不知道作用在哪,就跳过直接练丹;
    ----开启预训练参数就是启动模型时的最后一个参数
    ----作者描述预训练要放入大量的素材训练,而正训时为何又要把数据全部删除?
    ----这个预训练的作用目的是训练_src.npy与_dst.npy这两个模型容器,也就是我所说的模型开荒;
    ----一个模型的好不好,主要看_src.npy与_dst.npy这两个模型容器,因为最难练的就是这个容器
    ----容器的精细度不够,你再好的素材,也放不进去,也映射不出来效果;就好比开荒后的泥土,把土松得越细,呈现的清晰度就越高
    ----只要这两个容器精细度够高位置够大,就可以承载任何学习过的数据流

    ----至于为什么正训时要删除全部数据,是因为预训练开荒的数据很杂,就像A点到B点,在你面前有有分叉口若干条路,你会不知道如何选择,还可能被带歪。而删除数据后,模型会摸索条自己的新路捷径从而更快到达B点
https://s1.ax1x.com/2023/02/12/pS5J8rn.jpghttps://s1.ax1x.com/2023/02/12/pS5J3Ks.jpghttps://s1.ax1x.com/2023/02/12/pS5JHdP.jpg
    ----用脸图来开荒,人像都有五观轮廓,固定的位置限制在模型特定区域,所以就成了一条条路径;而用像素图开荒,相当于把整块地都铺成了路,让模型自己找最近的路;
    ----很多人来咨询过,用像素图根本复用不了,这里我就统一说了,训练好后别忘了清除数据(也是是删除_inter.npy映射记忆库);


    模型容器松土的重要性:虽然是DF构架模型,也开了真脸,轮廓也与SRC差不多,但换出来怎么都不像,看下图或许能帮助你理解

    ----复用模型后,未开荒的位置是没有路径,所以人脸就会被已知的路径带歪,原本的胖脸变成了瘦脸;这种情况下模型需要非常巨大的算力与时间才会慢慢纠正过来,相当与再次开荒
    ----模型会用已学过的知识去理解新的未知识东西,就如当你从来没见过马,别人跟你说这是一匹鹿,在你认知中马就是鹿,遇到同样差不多品种时,你就会理解为马就是鹿,这就是认知的一条路径;而开荒模型不是让模型记住也不给模型定义这是匹马,因为都要清空记忆的;
    ----就如原来打乒乓球练习惯横板的右手,在改练正板拍时不如新练左手掌握的快;横板的右手记忆会给你练习正板拍造成阻挠
   

---inter.npy映射记忆库
    模型的认知都在这个文件里,就像人脑的记忆一样,这个文件丢失或损坏,影响很大,但也有好的地方;预训练转正训时就是清空了这个数据
    这些映射记忆离不开src.npy与dst.npy模型容器,如果没有src.npy与dst.npy容器去承载映射记忆就如瓶口经过的水,进不了瓶子,都是过眼的映射;而有src.npy与dst.npy容器,却没有了映射记忆,却可以很快把映射信息收进瓶子,从而掌握新的知识数据;这就是预训练后虽然删除了数据,再训练新素材时,能快速成像的原理;
    ----删除映射记忆库就如原本练习横板拍的右手,完全忘记了用横板拍,再来练习正板拍,就会非常的快掌握,因为会从横板A点的路径上选择了更好的路线到达B点;当然,人是很难自主删除这段记忆的;是不是听着有点像太极原理
   ----这个映射记忆库有个很重要且估计还没人发现的,梯度裁剪这个参数;这个参数要是开了,会把映射记忆库里除了SRC到DST的最佳路线保留,其它的所以路径都删除,也就是说,模型要想复用其它新素材的话,这个参数一定不要开
   ----模型开荒完后,删除这个映射文件,预训转正训删除之前的记忆,就如删除原来练习横板拍的记忆;再来注入新的人脸素材,这时后才告知模型这叫人脸,让模型去认识
   补注:inter.npy不是说删就删的,删除了映射记忆需要重新注入新素材的映射,小模型还好,模型越大这个注入过程并非一两天的事;一般是在模型开荒后清空删除,再重新注入人脸素材让模型认知人脸的映射来重建路径;但别理解错了,认为删inter是随便的事
   ----完全开荒后的人脸模型改成换万物的模型,只要把之前的人脸辨识映射记忆删除掉,再注入万物的素材,这样才不会被人脸的映射记忆路径所干扰带歪

   模型复用时的快慢
   ----之前我讲述过,模型学的是像素点颜色的转换
   ----复用模型的清晰度级别就如下图,复用素材如果与底丹训练素材靠近或相似决定着你复用的效果
   ----映射记忆路径通过素材间的差异会脑补生成很多的路径级别,这个取决与你模型AE参数
   ----模型会自己寻找到合适或者接近的点从中插入接着接收新的映射信息进行训练,这就是复用时有些素材一开始就清晰或模糊的原因
https://s1.ax1x.com/2023/02/12/pS5d5QS.jpg
   ----如果没有这个映射记忆库的路径,所有的复用都是白搭;就像开了梯度,只留一条路径,只要与这条路径不同的都会删除,所以你开了梯度后之前映射效果会迟迟不去,因为没习得合适的像素数据之前,其它的与这条路径不同的都被抛弃了;


---src_dst_opt.npy
    这是将SRC与DST模型溶合在一起的模型,也就是第5列合成效果的模型;
    ----它把SRC与DST模型中的差异性中和出一个效果,基本囊括了所有的效果参数都在这里呈现
    ----因为它读取的是SRC与DST两模型和映射记忆库数据,只要三个数据不丢,这个中和的效果就算删除了,都很快能出来
    ----有时扭曲过度了,复用素材与底丹素材差别太大了,轮廓五观位置差别过大时,删除这文件重来,效果会更好
    ----这个文件删除后,所有的效果一开始都会丢失,(2、4、5列效果),耐心跑一段,马上回来
    我一直不用liae框架,因为DF构架模型就能出liae模型的效果,这个文件是关键

页: [1]
查看完整版本: 转DFL模型文件的介绍