pytorch多卡训练的一些问题

多卡训练时的batch_size设置 问:假设我有4张卡,我将 batch_size 设置为64,那么是每张卡上都有64的batch同时训练,还是每张卡batch为64/4=16? 答:不管是dp还是ddp模式,batch_size 都是单张卡上的batch大小,即每张卡训练的都是batch=64 我觉得挺奇怪,如果我是因为显存不足而使用多卡训练,模型中又有 …

从白噪声到柏林噪声

以前很好奇,为什么我的世界游戏本身就那么小,但是你却可以根据一个种子得到一个固定的地图,总不可能作者把每个种子都手动生成了地图然后保存吧,但是我随机输入一个种子都可以,那工作量也太大了,而且跟游戏大小相悖,后来了解到他可能就是使用了柏林噪声加随机种子生成的。 下面是从白噪声到柏林噪声的过程: 每个像素点完全随机生成的噪声就是白噪声 import …

HTTPs原理

https核心目的是防止内容被篡改,核心方法是非对称加密 在http中,所有的信息都是明文传输,例如我要让服务器随机返回一个数字,整个过程如下: 如果有人想恶意篡改响应,就变成下面的流程了: 这种情况在以前很常见,很多时候你浏览一个网页时,页面中会塞满各种广告,但实际上服务提供商并没有加这些广告,而是网络运营商硬塞的,很恶心。有的时候也会非常不安全,因为可以 …

为什么模型训练这么吃显存?

现象 我有一个pytorch深度学习模型,模型本身不大,经过计算发现其自身只有约40 million的待学习参数量,大约仅需要150m内存就够了,但是我在一块有24g显存的显卡上训练时,很容易OOM,即使将batch size调整到刚刚能训练且不爆显存的大小,在backward阶段仍然会OOM,问题在于为什么这么小的模型却需要这么大的显存? 排查 搜索一番发 …

pytorch中的unfold

torch.nn.functional.unfold 如果将卷积看作 滑动窗口+求和 的话,那么这个方法就是只有 滑动窗口 这一步了。 如图,a.unfold(0, 2, 1),表示在a的第0维以卷积核长度为2步长为1的方式开始取值。a的维度为(5,5),其第0维相当于行,所以图中是竖着取值的,最终得到维度为(4,5,2)的结果,因为a的0维只有5个数,而你 …

jellyfin、plex、emby、kodi

都可以用来搭建self-host stream media service,都至少支持web端和android端,以下为个人使用对比(均使用docker安装) 最不推荐的是plex,它需要连接官网账号才能用,并且android端体验极差,加载任何东西都很慢而且经常超时,貌似观影流量还是走了plex的转发,速度很慢,若要使用Android app还需要收费(终 …

所有人都在仰望星空,但总要有人埋头苦行

好像在一瞬间,软件行业所有的目光都转向了AI,尤其是以ChatGPT为首的大规模语言模型。就好像原来散落的铁屑突然被一大坨吸铁石吸引了一样。已经很长一段时间,我打开github的trending,几乎全部都是GPT相关的东西了。 包括整个自然社会,随处可见关于这些语言模型的讨论。早先几个月,我看知乎热榜也是很多关于ChatGPT的东西,我的第一直觉是这东西像 …

千万不要用ChatGPT写论文

本来想用ChatGPT生成论文的Introduction部分的,发现它还能自动生成一些引用信息,大喜过望之余我又让它生成Related work部分,很快它生成好了,并且带有相当多的example以及引用出处,写的那真是头头是道。我非常高兴毕竟这能省下相当多的精力。 今天想着去看看这些引用的原文,结果发现全都是编的,作者是编的,论文标题也是编的,啥都是编的。 …

Excel 高亮每行最大值

step 1: 选中要操作的区域 step 2: 选择“条件格式”中的创建规则 step 3: 选择“使用公式决定要格式的单元格”,并在下方输入 =B20=MAX($B20:$L20) 公式中,第一个B20表示区域的起始位置,MAX($B20:$L20)函数表示选择B20到L20最大值,要求最小值时就使用MIN函数,B20中的B表示第B列,20表示第20行, …