- 博客(23)
- 收藏
- 关注
原创 Deepspeed ZERO原理
数据并行,每张卡上保存完整的模型参数。反向传播时所有卡的梯度通过all-reduce进行同步。假设参数量为ψ,进程数(卡数)为n,通信量为2⋅n−1⋅nψ≈2ψ。
2024-11-09 10:39:36
935
1
原创 混合专家模型(MoE)入门
模型规模是提升LLM大语言模型性能的关键因素,但也会增加计算成本。Mixture of Experts (MoE) 架构通过分布式专家层和动态门控机制,有效降低了计算资源,使模型能够在扩展参数规模的同时保持高效的运行。
2024-08-11 17:51:50
3326
原创 背包问题基础与应用
背包中的每个物品只能用一次定义:表示从下标的物品中任取,放进容量为的背包的最大价值初始化:转移方程:将物品放入背包有两种选择:遍历顺序:到底是先遍历物品呢?还是先遍历背包?根据上图,依赖于,即左上角和正上方,画图可知两种遍历顺序都可以1.先遍历物品,后遍历背包2.先遍历背包,后遍历物品完整代码:初始化的代码可以省略,类比在物品1之前,加了一个质量为0价值为0的物品0状态压缩:仔细观察转移方程:发现的取值只依赖于上一行的值,而在循环遍历过程中,上一行的数据已经计算过了,我们只需要把的数据保留下来具
2023-04-18 20:09:18
620
原创 手撕深度学习中的损失函数(上)
交叉熵损失函数关于输入权重的梯度表达式与预测值与真实值的误差成正比且不含激活函数的梯度,而均方误差损失函数关于输入权重的梯度表达式中则含有,由于常用的sigmoid/tanh等激活函数存在梯度饱和区,使得MSE对权重的梯度会很小,参数w调整的慢,训练也慢,而交叉熵损失函数则不会出现此问题,其参数w会根据误差调整,训练更快,效果更好。
2023-04-14 08:57:57
1018
原创 手撕深度学习中的优化器
深度学习中的优化算法采用的原理是梯度下降法,选取适当的初值params,不断迭代,进行目标函数的极小化,直到收敛。由于负梯度方向时使函数值下降最快的方向,在迭代的每一步,以负梯度方向更新params的值,从而达到减少函数值的目的。
2023-04-05 17:19:20
1369
1
原创 字典树基础与应用
一个节点的所有子孙具有相同的前缀,也就是这个节点代表的字符串,根节点代表空字符串。时,就不会继续往下比较了,因为不管后面是什么结果,a异或b的结果都会比c小。从左往右比较,当比较到第3位时,异或结果是比x小的,所以后面就不用比较了。从字典树的根开始遍历,向下查找字符串的插入位置,并记录满足条件的前缀数量。,两两取异或,根据异或结果计数,这是我第一次写的代码,毫无疑问超时了。其中的键通常是字符串,由节点在树中的位置决定,键保存在。每遍历一个节点,不管节点是否存在,节点的。,我们从高位往低位比较,当找到一个。
2023-01-06 17:27:26
1126
原创 排序算法总结
堆排序属于不稳定排序和就地排序,如果有两个相等的数,有着不同的父节点,一个父节点发生交换,另一个不交换,两个相等数的顺序就发生了改变。稳定排序要求不改变相等元素的相对位置,而选择排序选出最小元素,和前面的元素交换位置,可能会打乱相等元素的顺序。答案是每次将根节点(堆首,最大值)与最后一个叶子节点(堆尾)交换,然后缩小堆的尺寸,更新堆,直到堆的尺寸为1。从下往上构建堆,保证根节点是最大值,每次更新节点,都需要递归的维护下层树。快速排序划分区间,可能将相等的值划分到不同的区间,所以不稳定。
2023-01-05 22:39:12
285
原创 无监督学习中数据增强的几种方式
扰动后的图像适合做无监督预训练,从无标注的数据集中学习先验信息,将扰动后的图像输入网络中,执行重建任务。从左往右为原始图像,扰动图像和重建图像,效果其实不怎么好,迁移到分割任务上不知道有没有用,慢慢做实验吧。随机选取一定数量的各种大小和纵横比的窗口,将每个窗口内的所有像素替换为一个随机高斯噪声。这个指数就是gamma,注意Vin的取值范围为0~1,因此需要进行归一化。将图像分为大小相同但不重叠的立方体块,随机遮盖一定比例的块。在肾脏肿瘤数据集(KiTS19)的训练结果。在三维图像中随机打乱部分区域的体素。
2022-10-25 19:09:08
2349
1
原创 半监督3D医学图像分割(四):SASSNet
作者在分割网络的最后一层,增加一条支路输出SDM(signed distance map,带符号距离映射),SDM是分割二值图中,每个像素到目标边界的距离,包含目标的表面和形状信息。 这篇文章提出的形状感知半监督分割方法,在网络中加入更灵活的几何表示,以便对分割输出执行全局形状约束,同时处理具有不同位置或形状的目标,探究有标签和无标签图像的预测结果在几何空间上的一致性。有标签的图像和无标签的图像,分别标记为1和0,判别器(D)的输出在[0, 1],越接近1,说明和有标签的图像越相似。
2022-10-23 13:59:58
4740
5
原创 半监督3D医学图像分割(三):URPC
深度学习归根结底是数据驱动的,模型训练的好坏依赖于数据集。在医学图像分割领域,即使是像nn-UNet那样强大的训练框架,也受限于数据集的大小。相比自然图像,医学图像的标注代价更加昂贵,相反,无标注的图像有很多。半监督学习的目的就是将无标注的数据利用起来,达到比单独用有标注数据集更好的效果。前两篇博客介绍的方法,都是student-teacher双路模型,URPC是单路模型。TS模型是在学生网络和教师网络之间做一致性损失,URPC则是多级特征内部做一致性损失,相比TS架构的计算量和显存大大降低。
2022-10-15 09:53:28
4334
3
原创 半监督3D医学图像分割(二):UA-MT
作者在Mean-Teacher的基础上,提出不确定性自感知模型(Uncertainty-Aware Self-ensembling Model),将图像加上不同的随机噪声多次输入教师网络中,对输出计算平均概率和不确定度,设计阈值过滤不确定的区域,得到更有意义更可靠的预测结果,然后再去指导学生网络。通俗的理解,以二分类为例(随机变量X要么是A类,要么是B类,非黑即白),如果X是A类的概率很小或者很大,我们可以说X是比较确定的,而X是A类的概率在0.5左右时,我们就说事件X是不确定的。
2022-10-14 14:37:14
5459
5
原创 半监督3D医学图像分割(一):Mean Teacher
个人认为,Mean Teacher网络的训练是一个求同存异的过程,输入的图像略有差异,网络参数略有差异,我们假设网络训练好后完全收敛,此时学生网络和教师网络的参数应该是非常接近的,也具备良好的去噪能力,那么一致性损失就会很小;自监督学习先使用大量无标签的数据集,通过对比学习和图像重建等方式构建损失函数,进行预训练,然后在特定任务上使用有标签的数据集进行微调。损失由两部分组成,有标签的数据做分割损失,无标签的图像做一致性损失(有标签的也可以做一致性损失)。论文里的方法,结合图像分割画的网络图。
2022-10-04 18:56:18
8096
24
原创 LAHeart2018左心房分割实战
2018 Atrial Segmentation ChallengeThe Left Atrium (LA) MR dataset from the Atrial Segmentation Challenge数据集下载地址:Data – 2018 Atrial Segmentation Challenge (cardiacatlas.org)数据集结构:一共有154例包含心房颤动的 3D MRI 图像分为训练集(Training Set)和测试集(Testing Set,已开源),数据集下每个文件夹包
2022-10-03 10:18:14
8335
63
原创 BraTS2021脑肿瘤分割实战
脑肿瘤分割是MICCAI所有比赛中历史最悠久的,到2021年已经连续举办了10年,参赛人数众多,是学习医学图像分割最前沿的平台之一。简介: 胶质母细胞瘤和具有胶质母细胞瘤分子特征的弥漫性星形细胞胶质瘤(WHO 4 级星形细胞瘤)是成人中枢神经系统最常见和最具侵袭性的恶性原发性肿瘤,在外观、形状和组织学上具有极端的内在异质性。胶质母细胞瘤患者的预后非常差,目前的治疗标准包括手术,然后是放疗和化疗。国际脑肿瘤分割(BraTS)挑战赛自2012年以来一直在运行,评估了用于mpMRI扫描中脑肿瘤图像分析的最先进的
2022-06-23 15:11:58
43168
227
原创 nnUnet肾脏肿瘤分割实战(KiTS19)
nnUnet肾脏肿瘤分割实战KiTS19 Challenge Homepagennunet项目官方地址MIC-DKFZ/nnUNet 使用nnunet之前,建议先阅读两篇论文nnU-Net: Self-adapting Framework for U-Net-Based Medical Image SegmentationnnU-Net: a self-configuring method for deep learning-based biomedical image segmentation
2022-05-05 19:51:55
11732
28
原创 nnUnet代码解读--优化策略
优化策略nnUNetTrainerdef initialize_optimizer_and_scheduler(self): assert self.network is not None, "self.initialize_network must be called first" self.optimizer = torch.optim.Adam(self.network.parameters(), self.initial_lr, weight_decay=self.weight_
2022-05-04 16:06:54
3174
1
原创 nnUnet代码解读--数据增强
nnunet项目官方地址MIC-DKFZ/nnUNet 准备工作关于nnUnet代码包的安装和配置参考[nn-UNet使用记录–代码配置_宁眸的博客-优快云博客](nnUnet最经典的部分在于数据处理,本文简单介绍nnUnet的数据读取和数据增强方法。以nnunet/training/network_training/nnUNetTrainer.py为例数据读取self.dl_tr, self.dl_val = self.get_basic_generators()self.dl_t
2022-05-03 19:37:23
7431
5
原创 nnUnet代码解读--模型训练
nnUnet代码解读(一)nnunet项目官方地址MIC-DKFZ/nnUNet准备工作关于nnUnet代码包的安装和配置参考nn-UNet使用记录–代码配置_宁眸的博客-优快云博客确认安装nnUnet代码包,配置好环境变量,确认nnunet/run/run_training.py可以成功运行。我是一边debug一边阅读源码的,不想debug也可以直接看源码。export nnUNet_raw_data_base="/data/.../nnUNet_raw_data_base"export
2022-04-30 20:09:21
13003
18
原创 Anaconda下四行命令配置本地pytorch环境(CPU版本)
Anaconda下四行命令配置本地pytorch环境(CPU版本)虽然现在跑深度学习都在服务器上,但在本地配置一个pytorch环境看源码和debug也是非常方便的,先在自己的电脑上把代码调通,再用服务器去跑。而且我将本地磁盘映射到实验室的服务器,然后直接用pycharm打开服务器文件夹,直接修改调用服务器上的文件,同时用本地的pytorch环境调试代码,调试好之后再通过Xshell或者VSCode在服务器上运行程序,简直不要太方便 ~下面是我在自己的笔记本上(没有独显)配置pytorch环境的步骤,
2022-04-29 10:50:40
1251
原创 VS Code下ptvsd远程调试代码,三步到位
ptvsd远程debug简单使用1.安装如果pip install ptvsd安装太慢,可以使用清华的镜像源,pip安装其他包也是一样pip install ptvsdpip install ptvsd -i https://pypi.tuna.tsinghua.edu.cn/simple2.配置点击左侧的debug按钮,选择远程连接,添加配置文件3.调试在python文件顶部添加以下三行代码import ptvsd ptvsd.enable_attach(address =('12
2022-04-29 09:39:44
2442
原创 nn-UNet使用记录--代码配置
nnunet代码使用上一篇博文中,我在第三方的超算平台上配置了nnunet包,上手简单,但调参非常有限,也不能使用自己的模型。本文我将在实验室的服务器配置nnunet代码包(也是怕以后用不了第三方的平台了),可以直接阅读和修改源码,我认为是非常有必要的。1.服务器环境import torchprint(torch.__version__) # torch版本查询print(torch.version.cuda) # cuda版本查询print(torch.backends.cudnn.ve
2022-04-28 16:17:08
6934
12
原创 nn-UNet使用记录--开箱即用
nn-UNet使用记录–开箱即用nnunet项目官方地址MIC-DKFZ/nnUNet (github.com)使用nnunet之前,建议先阅读两篇论文nnU-Net: Self-adapting Framework for U-Net-Based Medical Image SegmentationnnU-Net: a self-configuring method for deep learning-based biomedical image segmentation本文使用vscode
2022-04-28 11:01:18
7825
28
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人