![](https://img-blog.csdnimg.cn/20190128231241759.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
深度学习
自己玩深度学习的经验
ONE_SIX_MIX
等待翻身的咸鱼E
展开
-
flash-linear-attention CUDA算子成功实现(但限制极多。。)
flash-linear-attention 注意力算子CUDA实现原创 2023-10-23 18:07:45 · 314 阅读 · 0 评论 -
记录:在 TransnormerLLM 的纯线性注意力(改)中,出现的值异常现象
实验记录。原创 2023-08-08 00:52:43 · 142 阅读 · 0 评论 -
TransnormerLLM 中 FlashLinearAttention 的纯pytorch实现
纯 Pytorch 实现 TransnormerLLM 中快速线性注意力算子原创 2023-08-06 22:07:40 · 541 阅读 · 0 评论 -
SqueezeLM 的想法,压缩输入句子潜变量,生成下一句子
又研究了一段时间。还是感觉LongNet那种空洞注意力做编码器有搞头。RetNet等AFT方法,直接生成太长的句子感觉有点难度,不过可以一句句生成,每次生成短句,这样感觉比较合适。原创 2023-07-30 01:00:05 · 159 阅读 · 0 评论 -
不成方圆 - 中日互译模型 v1.1
不成方圆 - 中日翻译模型 公开原创 2023-05-29 02:08:34 · 843 阅读 · 0 评论 -
记录:自回归 模型在记忆 全随机序列 的潜变量 统计量爆炸现象
然后发现,这个值会在训练初期迅速飙升到1e4 - 1e6 的域,非常巨大,如果使用半精度训练,会直接撑爆然后变成nan,只能使用float32值域训练。一开始,我以为这模型又完蛋了,但后面让他继续训练,发现它居然在缓缓下降,当下降到 1e2 - 1e3 的以内的域时,模型基本记忆正确率已经 90%以上了。但是神奇的是,这个注意层的各个权重是正常的,即权重的标准差均在1以内。写的在全局性能上很好的,在无序序列的模型收敛很快,在自然语言上被普通gpt秒成渣(指验证集分数提升慢,最终分数也差一点)原创 2023-05-17 15:13:28 · 338 阅读 · 0 评论 -
torchdata DataPipe 和 DataLoader2 快速入门和使用
pytorch 使用 multiprocess库 让 Dataloader 不再报错 AttributeError: Can‘t pickle local object。torchdata 使用了 dill 替代了 pickle, 从而允许在spawn多进程模式下转移复杂的数据集。以下为使用 torchdata 的示例,SimpleDataset 可以直接替换为你自己的函数。是该博文的另一种解决方法。原创 2023-04-27 14:59:54 · 690 阅读 · 0 评论 -
pytorch 使用 multiprocess库 让 Dataloader 不再报错 AttributeError: Can‘t pickle local object
pytorch 的 dataloader 默认使用 python 自带的多进程库 multiprocessing ,它又使用 pickle 作为序列化库。pickle 库只能储存一些简单类型。如果 dataset 中使用 lambda 函数对象,将会导致出现这样的错误 AttributeError: Can’t pickle local objectmultiprocess 的 pip 安装方法。原创 2023-04-26 16:19:40 · 1585 阅读 · 1 评论 -
Google FLASH-QUAD Transformer模型的设计雷点
这个模型用来做无序弱监督分类,效果好,特别是收敛速度比标准多头Attention层快多了,完全没得比。原创 2023-04-15 16:52:25 · 446 阅读 · 0 评论 -
pytorch weighted_and_neg_topk_cross_entropy 加权的负权重topk交叉熵损失
相比上面文章里改的的loss,加入topk 负类型测试,当负权重的类别在预测类别前 K 的高概率类别时,才会传递梯度,否则会跳过。一种 用于GPT模型 训练的 包含加权 和 数据增强 和 损失方法 的设计。根据这段时间的NLG经验,继续改进损失函数。主要用于以下文章所写的 NLP 增强管道。原创 2023-03-23 15:36:02 · 236 阅读 · 0 评论 -
一种 用于GPT模型 训练的 包含加权 和 数据增强 和 损失方法 的设计
根据之前训练的字模型+PALM效果和经验。真是胡言乱语,牛头不搭马嘴。观察了模型的在各种条件下的输出。看大佬的各种的增强方法,搞了2周写完了新的增强管道。换了新方案,继续训练了一晚上,马上就有不错的生成效果了,泪目。在老的增强方法和损失函数上,T5 模型不太行,8+8 层的情况下生成效果不如12层相似参数量的PALM连贯,准确度也不如PALM,训练速度也比PALM慢2倍。训练语料是质量较好的,但比较少,而且生僻字略多,所以使用字模型。训练模型:GPT模型(参数量44M)训练任务:翻译;原创 2023-03-22 00:31:09 · 403 阅读 · 0 评论 -
pytorch 使用 xformers 库 加速多头注意力计算 和 大幅节省显存
来自 https://facebookresearch.github.io/xformers/components/ops.html#module-xformers.ops。好处:使用 google PALM 架构的小模型做 生成任务,改为 xformers 实现后,加速比为 2倍,显存消耗为原来的 1/3 ,非常给力。xformers 官方文档:https://facebookresearch.github.io/xformers/缺点:相比pytorch的原生实现,误差略大。原创 2023-02-26 17:25:49 · 10074 阅读 · 10 评论 -
bleu-mp 多进程bleu评估工具
我改的多进程 bleu 评估工具,已发布到 pypi 上Github 仓库:https://github.com/One-sixth/bleu-mpGitee 仓库:https://gitee.com/ONE_SIX_MIX/bleu-mp原创 2023-02-05 02:41:28 · 464 阅读 · 0 评论 -
我也有一作论文了!IEEE ISBIC
我也有一作论文了!原创 2022-08-26 00:42:19 · 172 阅读 · 2 评论 -
pytorch GradScale 梯度缩放算子
很早前就想弄这东西,正好有空。这个东西可以很方便的缩放指定层或指定Tensor的梯度。与调整对应变量的学习率一个效果。Stylegan 里面 MapNet 使用了另外一种基于权重缩放的 学习率缩放方式,算了,效果差不多。有两个方便的方法可以实现。使用 Tensor.register_hook 来调整import torchx = torch.ones(1, dtype=torch.float32, requires_grad=True)y = x + 0y.backward()#原创 2022-04-07 16:03:27 · 2669 阅读 · 0 评论 -
RTX 3090 与 Tesla P40与 Tesla M40 深度学习训练速度比较
最近多了两张卡,一张P40,一张M40,都是24G显存版本,测试下训练速度。训练StyleGan类对抗生成模型,占用显存15G。核心100%满载。没有使用混合精度加速技巧。平均下来,每训练1000次RTX 3090,耗时约 107 秒Tesla P40,耗时约 245 秒Tesla M40,耗时约 346 秒时间比为RTX 3090 为 1XTesla P40 为 2.3XTesla M40 为 3.2X与它们的价格比较M40性价比很高。不过耗电嘛,见仁见智了。...原创 2022-03-24 18:08:12 · 37393 阅读 · 20 评论 -
为什么宁可使用 float16 也不使用 bfloat16
因为,bfloat16的计算,真的太慢了。。。。。。一丁点优化都没有。。。styleganv2 1070显卡上的Log,改成bfloat16跑1000张图像居然要6分钟而跑在 float16 上只需要2分钟如果换到 3090 显卡上,跑1000张图像的 bfloat16,也需要3.6分钟,如果是切换到 float32,则只需要30秒。bfloat16 的计算速度真是令人绝望。这个是使用GTX1070 bfloat16的2022-03-19 18:12:26.821 | INFO | Ge原创 2022-03-19 23:24:31 · 1338 阅读 · 4 评论 -
fid-helper-pytorch 简单易用的 FID 计算工具
fid-helper-pytorchGithub 仓库地址:https://github.com/One-sixth/fid-helper-pytorchGitee 仓库地址:等待增加这是一个FID助手工具。提供了一个简单方便的接口来计算FID。仓库使用pytorch jit script来打包模型,包含了一个默认模型。:default_1 的模型和权重来自 styleganv3 fid tool。文件夹 make_default_model 包含了默认模型的编译脚本。我本想实现一个简单的f原创 2022-03-16 23:53:21 · 5178 阅读 · 10 评论 -
转载:像素在哪里?-- 深度学习视角
转载自大佬博客:https://ppwwyyxx.com/blog/2021/Where-are-Pixels/在研究FID计算过程中,遇到各种奇奇怪怪的采样问题。正好见到这篇文章。感谢大佬,大佬写的真给力,帮我弄清了 tensorflow opencv pytorch pillow 库里面的各种奇奇怪怪的正确的和错误的重采样方法。截图保存大佬文章。直接使用了谷歌网页翻译+网页截图。...转载 2022-03-14 16:05:31 · 119 阅读 · 0 评论 -
RMS正则化 和 STD正则化 的一些见解
研究styleganv2过程中,记录下它使用的正则化方法的一些见解RMS=方均根STD=标准差stylegan 中的 pixel_norm 是 RMS正则化常见的BN层,IN层,用的是STD。在不减均值的情况下RMS正则化公式t = torch.rand([3, 128, 64, 64])t = t * t.pow(2).mean(dim=1,keepdim=True).rsqrt()标准差正则化公式t = torch.rand([3, 128, 64, 64])t = t / t.原创 2022-02-06 17:54:04 · 2472 阅读 · 0 评论 -
torch.backends.cudnn.benchmark=True 的效果和坑
系统环境CUDA 11.1gtx1070-8gwin10 21h1 19043.1266打开该选项torch.backends.cudnn.benchmark=True加快运算速度,但相比加速。。。。。。最为直观的影响计算误差会增大约1000倍。显存占用会变为关闭时的 1.1 - 1.5 倍。这个选项不能随便打开,影响很大。以下为实验cudnn.benchmark = False,显存占用为 3.0 Gcard_id: 0 elapsed/total: 1/10 max_diff_原创 2021-10-05 19:47:14 · 2038 阅读 · 1 评论 -
使用 DGL图神经网络 分类全连接图的内外环。
介绍大约一个月前学习的DGL图神经网络时,为了便于自己学习和重温用的,从0搭建起来的例子。有两条环状排列的节点,构造它们的全连接图,然后判断节点是属于内环还是属于外环。输入有两个,一个是节点自身的XY坐标,一个是节点之间的关系图。输出是一个onehot向量,只有两个结果,0或1。0代表为节点属于内环,1代表节点属于外环。然后数据集里面,每个图的都是长这样的,但是它们的内环和外环的半径各不相同,环的中心坐标也各不相同。内外环数据集会在首次运行时,自动和随机生成。Github仓库:https://原创 2021-06-27 23:43:07 · 655 阅读 · 2 评论 -
记录,太坑了,深度学习显卡损坏原来是这样子的。
记录,太坑了,深度学习显卡损坏原来是这样子的。时间 2020-10-23深度学习服务器,3张 RTX2080Ti。损坏的是1号卡,就是夹在0号和2号卡中间的那张卡。可能常年温度太高,烧坏了。事件记录:每过一段时间,1号卡温度和功率会变成nan。重启服务器就好了。但服务器经常有任务,也不能随便重启,没看到什么问题,就不管了。又过了一段时间。发现模型运算超慢的。还以为那里出问题了,查来查去,然后发现执行nvidia-smi命令也超慢的。怀疑机器问题,重启一下,好了,就像啥事没发生过。改了一个模原创 2020-10-23 23:01:12 · 10583 阅读 · 6 评论 -
pytorch 1.6 严重性能问题 对不连续张量运算缓慢(no contiguous tensor)
更新远程机pytorch 1.3.1 到 1.6版本,没想到慢到爆炸。醉了。找了半天才发现这东西的锅。提了个issue,不知道能不能解决。issue:https://github.com/pytorch/pytorch/issues/44943下面为测试代码,速度差距可能不是很明显,在我的机器上实验,差别只有2s。但在我实际训练代码和模型里面 加和不加 contiguous ,速度差距达到了 10x 以上,太坑了,醉了。import torchimport torch.nn as nnimp原创 2020-09-18 17:59:15 · 581 阅读 · 0 评论 -
SE Block 在特定情况可能会产生的害处(未使用专门实验验证,仅记录)
(未使用专门实验验证,仅记录,有空再专门弄个实验验证)记录下实验情况。模型结构模型中每个残差块的特征提取分支末端均加了 SEBlock。训练输入图像特点:亮度比较高的图像,如下面这种验证输入图像特点:原始亮度较高,但填充了一大块黑色区域的图像,如下面这种训练中,图像增强过程中,没有做过添加大块黑色区域的增强。训练后,如果输入图1,模型能正常输出概率热图(有细胞核的地方将会输出1.0概率值)。如果输入图2,概率热图左边那块区域的热图的概率值将会大幅度下降,约为0.1,接近全黑。如果将图原创 2020-07-20 10:56:27 · 826 阅读 · 2 评论 -
pytorch tensorflow 卷积权重互导
做个记录测试版本:pytorch 1.15.1tensorflow 1.15.3通道格式tensorflow NHWC权重格式为[filter_height, filter_width, in_channels, out_channels]pytorch NCHW权重格式为[out_channels, in_channels, filter_height, filter_width]tensorflow 权重转 pytorchpt_weight = np.transpos原创 2020-07-15 11:59:49 · 522 阅读 · 0 评论 -
i-RevBackward,使用 i-RevNet 方法大幅度节省显存
仓库:https://github.com/One-sixth/like_i_revnet_pytorch我根据i-RevNet原理,编写了一个反向传播函数,正向传播时不保存临时变量,反传时利用i-RevNet可逆的方式恢复输入,然后在一个区间内反传计算梯度。可逆块原理forward 时输入 x1, x2y = x1 + F(x2)输出 y, x2invert 时输入 y,x2x...原创 2020-03-30 12:23:13 · 888 阅读 · 0 评论 -
pytorch v1.4 严重收敛bug
记录,pytorch v1.4 严重bugpytorch v1.4 cuda101 windows训练复杂模型时,例如DeepLabV3,收敛会非常困难,猜测是内部梯度计算有错误。降级到 v1.3.1 cuda101 ,收敛变的正常我不知道其他版本有没有这样的问题,如果发现收敛困难,请降级到v1.3.1。...原创 2020-02-26 00:12:55 · 474 阅读 · 0 评论 -
记录,以计算机图形方式突然发现深度学习的本质。。。
拜读了一篇大佬写的胶囊网络解析,非常给力https://zhuanlan.zhihu.com/p/29435406先对已变形的特征进行一定的空间变换,还原特征原本的样子,找到特征之间的不变性。仔细想如何对特征进行空间变换,第一个想到的就是矩阵的线性变换。以三维空间为例子有一个3D顶点,坐标是一个3元组,[x, y, z]有一个3维的3x3旋转变换矩阵将顶点与变换矩阵进行线性运算,可以...原创 2020-02-05 02:54:03 · 239 阅读 · 0 评论 -
使用 gan-qp 做动漫头像生成实验
代码托管在githubhttps://github.com/One-sixth/gan-qp-mod-pytorch我使用 gan-qp 在我的动漫头像数据集(3.7w张图像)上训练的,不过效果不怎么好,也许是数据集太小了,或者卷积核数量太少了。少了也没办法,显存限制了我的想象力。在这个模型上,Checkpoint基本没有加速作用,节省的显存太少了,所有没有用。模型1 一开始训练时,生成...原创 2019-04-03 16:13:57 · 2243 阅读 · 11 评论 -
想了一个TwiceLog激活函数,相比Tanh但不会饱和,pytorch实现
不知是否有前人想过这个激活函数,我没找到。。。做GAN的实验,发现很多实现都是在生成器最后一层使用Tanh函数,不过Tanh不是和Sigmod一样存在饱和问题吗?然后想用不会饱和Log函数来实现。TwiceLog跟Tanh曲线类似,只不过没有上下界class TwiceLog(torch.jit.ScriptModule): __constants__ = ['scale'] ...原创 2019-04-03 14:22:47 · 277 阅读 · 0 评论 -
目前发现 pytorch1.0 与 tensorflow1.12 一些区别
pytorch 与 tensorflow1.12 的 eager execution 对比pytorch没有完整的half支持例如conv2d 以半精度训练 cpu 运行时会报错未实现torch.cat 无法拼接 halfTensor,报错未实现torch.linspace 参数 dtype=torch.half,报错未实现而tensorflow 有完整的半精度训练实现(应该是这样,...原创 2019-01-28 00:44:46 · 664 阅读 · 0 评论 -
pytorch1.1 半精度训练 Adam RMSprop 优化器 Nan 问题
半精度浮点数表示的范围比单精度的少很多使网络输入 值域缩放到 [-1, 1] 或 [0, 1]定义Adam 或 RMSprop 优化器时,加入参数eps=1e-3optimizer = optim.Adam(model.parameters(), lr=0.001, eps=1e-3)...原创 2019-01-12 17:24:32 · 5945 阅读 · 11 评论 -
tensorflow 1.12 与 pytorch 1.0 互相迁移 操作符
估计距离 tensorflow 2.0 要出还有几个月,要升级到动态图了,不过要弄动态图的话,直接玩pytorch不是更好?所以直接学了点pytorchtensorflow 的 eager execute 效率不怎么好,虽然defun可以优化不少,但是对于复杂的网络,defun需要的时间太长了,而且defun之后就没法进入内部调试了,调试时间漫长。而pytorch直接运行,效率仍然非常高记录一...原创 2019-01-11 21:00:27 · 1290 阅读 · 1 评论 -
低质量的 包围框 iou 值,让其更有用
下面 iou = 0.5 的两种情况,在 iou 无法提高的情况下,可以让预测框更符合某种形状,或某种状态,例如下面第二种状态,大部分时候比第一种要好方法:增加一个loss,使预测框重叠真实框时有更大的损失...原创 2018-10-14 18:09:46 · 776 阅读 · 0 评论 -
此花亭奇谭 动漫 人物 目标识别 数据集 v0.1.1
前段时间看完此花亭,很喜欢,刚好那段时间弄懂了 yolo v3 网络,于是想自己弄个数据集练练手花了好长时间做的目标识别数据集,好多大的和重叠目标。。然后好难训练目前还未完成,只做到了第五集,后面的有空慢慢做。。其实是想使用训练出来的目标识别网络辅助标记完剩下的。。。无奈。。训练出的网络很差劲,还在努力加强中图像来源ANK-Raws-このはな綺譚-Ranpo-Kitan:Game-of-...原创 2018-10-08 00:23:18 · 2331 阅读 · 1 评论 -
神经网络 参数有效比
忘记在哪看的了,看了 对数组卷积 的论文 突然想起来了。。好吧,找不到出处了。应该是这个名字,还是叫 参数利用率 啥的。。参数有效比 = 准确率 / 参数数量那个 对数组卷积 的论文。。。貌似反证了平均组卷积的效率。 也不对,论文说的是浅层网络 图片截取自论文 https://arxiv.org/abs/1707.09855v1 有效比越大,参数利用率越高 uniform ...原创 2018-08-26 17:18:52 · 332 阅读 · 0 评论 -
tensorflow 任意 batch size 不溢出显存( OOM ),使用 darknet 的 sub batch 方法
这方法很久之前就想弄了,网上( 百度 )除了 darknet 之外,没人弄这东西,无奈那时对 tf 的 Optimizer 和 梯度计算 理解很浅,没法弄,不久前看了个 tensorflow 的 eager run 的例子才弄懂 tf 的梯度计算方式。原理很简单,例如一个 batch 的 size = 100,直接放进显卡会溢出,那我把这个 batch 再分成 10 个 sub batch,每...原创 2018-08-26 14:11:24 · 7289 阅读 · 20 评论 -
CVAE-GAN tensorlayer实现
代码,训练过程,训练输出,测试输出,参见 github:https://github.com/One-sixth/CVAE-GAN_tensorlayer其他复制一下:CVAE-GAN_tensorlayerA CVAE-GAN implementation with tensorlayer.示例依赖tensorflowtensorlayernumpyprogr...原创 2018-08-23 16:02:54 · 2584 阅读 · 17 评论 -
mobilenet_v2 tensorlayer 实现
mobilenet_v2 使用 tensorlayer 实现 训练数据使用 cifar10完整代码 github 地址 https://github.com/One-sixth/mobilenet_v2-tensorlayer 启动训练 python3 cifar10_use_mobilenet_v2.pymobilenet_v2 定义 like_mobilenet_v2.py...原创 2018-06-09 22:12:13 · 1309 阅读 · 0 评论