
机器学习基础
文章平均质量分 62
机器学习基本概念,基础学习
Pengsen Ma
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分类、回归常用损失函数
MAE 与 MSE 的区别:MAE 和 MSE 作为损失函数的主要区别是:MSE 损失相比于 MAE 通常可以更快的收敛,但 MAE 损失对于异常值更加健壮,即更加不易受到异常值影响。原创 2023-07-25 09:49:36 · 727 阅读 · 0 评论 -
整理张量(tensor)中常用的操作
维度变换。原创 2023-05-04 09:31:43 · 1147 阅读 · 0 评论 -
梯度下降、反向传播、学习率 α 、优化器
反向传播学习连接:前向传播、反向传播——通俗易懂_马鹏森的博客-优快云博客_前向传播 反向传播梯度下降与反向传播1、反向传播 是 求解损失函数关于各个参数的梯度的一种方法。(求梯度)2、梯度下降 是 根据计算得到的梯度来更新各个权重W,使损失函数极小值的一种方法。(使梯度下降)学习率 α 与梯度下降的关系?学习率 α 是梯度下降中权重更新公式的一部分梯度下降中的权重更新公式:利用,权重更新公式更新权重W,其中 α 是学习率备注:我认为:学习率有 ==...原创 2022-05-05 09:55:50 · 2415 阅读 · 0 评论 -
使用阿里云盘将服务器上的文件上传/下载到云盘/服务器
upload <本地文件/目录的路径1> <文件/目录2> <文件/目录3> <目标目录>他就会在这个阿里云盘自己创建一个test001文件夹,然后将文件放进去。你就打开这个链接,然后扫码登录以后,再在Linux上按Enter即可。原创 2024-10-11 18:48:09 · 743 阅读 · 0 评论 -
安装TensorFlow 1.14.0
conda create -n tf114 python=3.6pip install tensorflow-gpu==1.14.0conda install -c anaconda cudatoolkit=10.1.243 cudnn=7.6.5conda install cudatoolkit=10.0原创 2024-10-08 08:49:25 · 1441 阅读 · 0 评论 -
移动WSL到其他盘
移动过程中,可以看到脚本会先将移动目标导出到一个tar文件,然后再将tar文件导入到 ext4.vhdx 文件中。选择要移动的目标,比如移动Ubuntu-18.04,则输入 1 并回车,然后会提示让我们输入移动的目标路径。根据移动目标的大小,时间可长可短,请耐心等待。cd d:\move-wsl-master(这个是你下载的Move WSL 工具包的位置)3、在PowerShell中运行如下命令,停止正在运行的Linux子系统。移动完成后,脚本会删掉原来C盘中的相应内容,释放C盘空间。原创 2024-10-06 18:16:53 · 716 阅读 · 0 评论 -
可变形卷积(Deformable Convolution)是什么?
可变形卷积(Deformable Conv)原理解析与torch代码实现-优快云博客论文及代码详解——可变形卷积(DCNv1)_可变形卷积v1-优快云博客Deformable Convolution |可变形卷积_哔哩哔哩_bilibili原创 2024-10-04 20:14:04 · 1307 阅读 · 0 评论 -
多个loss怎么权衡?Uncertainty Weights(UW)使用方法
当你有多个loss的时候,一般的方法是将大loss的给与小的系数,小loss的给与大的系数我们可以使用Uncertainty Weights来平衡。原创 2024-09-12 14:03:45 · 740 阅读 · 0 评论 -
ResNet结构图(ResNet18、ResNet50)
ResNet18中的"18"指的是网络中的加权层数量。具体来说,它包含了18个卷积层和全连接层。原创 2024-09-09 21:04:27 · 8198 阅读 · 0 评论 -
“互信息”(Mutual Information)是什么?有什么用?
在概率论和信息论中,两个随机变量的互信息(Mutual Information,简称MI)是变量间相互依赖性的量度,。原创 2024-09-06 19:17:16 · 715 阅读 · 0 评论 -
Wandb使用指南(教程)
然后image要通过一步wandb.Image(image)转换才可以存储。在terminal中操作查看你的API key并粘贴回车进行授权(运行代码后,会出现日志,直接点击本次运行结果的连接即可。wandb.log()记录这些值。原创 2024-08-17 11:20:12 · 4269 阅读 · 0 评论 -
仿射变换是什么?AdaIN是什么?仿射变换、Linear、AdaIN之间的关系?代码怎么实现?
在风格迁移、解纠缠(styleGAN)、信息融合(DiT)等方面,AdaIN一直有很好的表现,所以我们常用它来组合两种信息,或者实现信息的解纠缠 AdaIN 输入为内容编码(content input x )与风格编码 (style input y), 对于每个channel,将x的通道级(channel-wise)均值和标准差匹配到y的通道级均值和标准差上:其实很简单,上述公式中间圈出的其实就是InstanceNorm2d(),缩放系数ys,i和偏置系数yb,i是通过使用一个全连接层得到的原创 2024-08-14 19:10:09 · 442 阅读 · 0 评论 -
模型参数量与显存占用分析
由于反向传播、Adam优化和Transformer架构等因素,保守估计,训练所需的显存是模型参数所占显存的4倍(1x 为模型 、1x 为梯度、1~2x 为优化器)。为了确保训练期间模型收敛,参数类型一般不能是int8或int4。注1:使用AdamW优化器,显存需求为2x;使用SGD优化器,显存需求为1x。训练所需的显存是模型参数所占显存的1倍(1x 为模型)。训练一个1B模型大约需要16GB(4GB x 4)。训练一个1B模型大约需要4GB(4GB x 1)。例如,使用单浮点精度。例如,使用单浮点精度。原创 2024-07-10 09:24:04 · 7476 阅读 · 0 评论 -
torch.where()
condition:判断条件,一个布尔类型的张量,表示条件。若当前index满足条件,则取x中index对应的元素若当前index不满足条件,则取y中index对应的元素。原创 2024-07-04 14:05:59 · 931 阅读 · 0 评论 -
resume不严格加载model、避免某些层维度不一致导致错误
在resume模型的时候,可能会遇到某些层是没有的,或者你改变了某些层的维度,从而导致model_state_dict()错误,所以此时的解决办法为:忽略这些层,不加载它们。原创 2024-06-27 16:12:45 · 469 阅读 · 0 评论 -
non_blocking=True 与 torch.cuda.synchronize()
GPU和CPU之间是异步执行的,CPU向GPU下达指令以后会立刻执行之后的代码,CPU不会等待GPU执行完成。原创 2024-06-22 09:45:17 · 881 阅读 · 0 评论 -
torch.compile() 加速推理速度
需安装2.0及以上版本的torch即可。原创 2024-05-13 09:24:33 · 1043 阅读 · 0 评论 -
einsum 表达式
ein 就是爱因斯坦的ein,sum就是求和。einsum就是爱因斯坦求和约定,其实作用就是把求和符号省略。einsum接收的第一个参数为einsum表达式,-> 符号就相当于要把->前面的张量变成->后面的张量,后面的参数为要被操作的张量。这里的 i,j 是指代A的下标,也可以换成其他字母。你可以直接看->后面相对于前面少了什么,那么就是对前面的哪些维度做了求和操作。原创 2024-04-27 15:19:53 · 518 阅读 · 0 评论 -
DDP、pytorch的分布式 torch.distributed.launch 训练说明
可以通过命令,来打印该模块提供的可选参数。我们在训练分布式时候,会使用到。原创 2024-04-22 20:08:39 · 1062 阅读 · 0 评论 -
bpd(bits per dimension)是什么意思?
"bpd" 表示 "bits per dimension",即。这,尤其是在图像和声音处理领域的性能指标。它测量的是模型重建数据时每个维度所需的信息量,用比特(bits)来衡量。当评估生成模型的性能时,"bpd" 用于量化模型生成数据的质量。原创 2024-04-22 07:27:41 · 986 阅读 · 0 评论 -
Pytorch torch.sort()、torch.argsort()函数解析
"""numpy的聚合运算"""#生成100个0-0.99999之间的数L=numpy.random.random(100)numpy.sum(L)numpy.min(L)numpy.max(L)X=numpy.arange(16).reshape(4,-1)big_array=numpy.array([1,1,2,2,10])numpy.sum(X,axis=0)#[24 28 32 36],求出的是每一列的和numpy.sum(X,axis=1)#求出的是每一行的和nump.原创 2020-10-26 20:53:09 · 17195 阅读 · 1 评论 -
register_forward_hook()
比如自己想单纯的记录网络的输入输出(也可以进行修改等更加复杂的操作)。hook()函数是register_forward_hook()函数必须提供的参数,好处是。原创 2024-04-06 10:57:29 · 1350 阅读 · 0 评论 -
【异常错误】 Expected to have finished reduction in the prior iteration before star、find_unused_parameters
如果模型的输出有不需要进行反传的(比如部分参数被冻结/或者网络前传是动态的)【如果有forward的返回值如果不在计算loss的计算图里】,设置此参数为True。如果你的代码运行后卡住某个地方不动,基本上就是该参数的问题,设置为find_unused_parameters=True 就可以了find_unused_parameters=True的设置会带来额外的运行时开销(而且还不小)。原创 2024-04-04 11:23:39 · 4301 阅读 · 0 评论 -
torch中的nonzero() 方法
返回维度维度与输入一样的N个元组,第一个元组代表行索引,第二个元组代表列索引,依次向后Numpy.nonzero() 使用方法简明解释_for j in np.nonzero(adj[i])[0]:-优快云博客Pytorch torch.nonzero()的简单用法_一维tensor看哪些不等于0-优快云博客。原创 2024-03-30 10:21:51 · 1998 阅读 · 0 评论 -
python中的__dict__
类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类的__dict__里的,:__dict__中存储了一些类中__init__的一些属性值。原创 2024-03-25 20:24:04 · 1634 阅读 · 0 评论 -
如何理解“高频信息/高级语义”和“低频信息/低级语义”?
对于图像这种,你改变几个像素值,他代表的东西还是那样的,例如你对一个狗的图片改变了几个像素块,它还是一只狗。图像:它在空间上是高度冗余的,对于图片中的某个部分,模型很容易由其相邻的图像块推断出来,不需要大量的高级语义信息。图像和语言的信息密度是不一样的。因此,在 CV 中,要 mask 掉图片中的较多的部分,这样才能使任务本身具有足够的挑战性,从而使模型学到良好的潜在特征表示。而对于图像则相反,它在空间上是高度冗余的,对于图片中的某个部分,模型很容易由其相邻的图像块推断出来,不需要大量的高级语义信息。原创 2024-03-18 14:34:15 · 913 阅读 · 0 评论 -
Numba加速循环,大幅度减少for循环所花费的时间
模块,在统计Numba函数耗时的时候也不例外。但有一点需要注意的是,Numba在第一次运行你写的代码时会即时编译,编译会消耗一定的时间。这与Numba的运行原理有关。2、如果在代码中出现了其它库的函数,Numba可能就无法正常识别了,最后只能把代码交给常规的Python Interpreter运行。因此在统计Numba代码耗时的时候不应该以第一次运行该函数的时间为准。1、numba对没有循环或者只有非常小循环的函数加速效果并不明显,用不用都一样。函数、特征提取函数、匹配函数、pandas等等,尽量不写在。原创 2024-01-29 09:53:20 · 947 阅读 · 0 评论 -
CUDA_VISIBLE_DEVICES:控制(指定GPU)在固定的某些设备上运行Python程序
设置仅使用CUDA 1 设备设置仅使用CUDA 1、5、7 设备在这种情况下,export命令会将设置为环境变量,该变量会影响在同一会话中随后运行的所有命令。这意味着只要您在同一个终端会话中,之后运行的所有 CUDA 支持的程序都只能看到并使用编号为 1 的 GPU。一旦关闭了终端会话,这个环境变量设置就会失效,如果需要在新的会话中使用相同的设置,您需要再次设置它。原创 2024-01-24 08:34:38 · 3355 阅读 · 1 评论 -
如何实现:潜在空间划分(Partitioning the Latent Space)+ 将新数据表示放置在独立区域的潜在空间
在训练的第二部分——全局部分,我们将新训练的频段与已经编码的知识进行对齐。规避频带间干扰的最简单方法是划分 VAE 的潜在空间,并将新的数据表示放置在潜在空间的单独区域中。因此,在多频带 VAE 中,我们建议通过我们称为转换器的附加神经网络来对齐不同的潜在空间。这些方法旨在确保新数据的表示不会与已有知识相互干扰,从而实现对潜在空间的分区,使得每个区域或子空间能够专门处理特定类型的信息或数据。具体的方法可能会因研究的具体问题而有所不同,但总体目标是将不同类型的数据表示保持在潜在空间的独立区域中。原创 2024-01-06 20:00:39 · 1064 阅读 · 0 评论 -
前向知识迁移(forward knowledge transfer)、后向知识迁移(backward knowledge transfer)
知识迁移的两个方面:一方面是通过先前学到的知识对新任务产生积极影响(前向知识迁移),另一方面是通过重新训练模型并使用与先前任务相似的数据示例来提高模型性能(后向知识迁移)。也就是说,由于先前学习到的知识已经在某种程度上融入了现有的模型或系统中,因此新任务的执行表现更好。这种情况下,通过已经整合的知识,使得模型对新任务更有效地适应和处理。:指的是当已经训练好的模型或系统在重新训练时,通过使用额外的相似示例(类似于先前任务的示例)能够产生更好的结果。原创 2024-01-06 19:24:26 · 678 阅读 · 1 评论 -
深度学习中的各种学习技术:监督学习、无监督学习、半监督学习、主动学习、自监督学习............
连续学习、增量学习、终身学习(Continual Learning、Incremental Learning 和 Lifelong Learning)在线学习(Online Learning)meta-learning(元学习)原创 2024-01-06 15:09:36 · 631 阅读 · 0 评论 -
连续学习(Continual Learning)或者增量学习的场景中,multiband和replay分别是什么?起到什么作用
multiband更侧重于通过模型结构和并行处理多任务来平衡新旧知识的学习。replay则是通过重复使用旧数据来帮助模型保持对过去学习内容的记忆。在实际应用中,选择哪种方法取决于具体的任务、数据可用性、模型结构和所需的性能。有时,这两种方法甚至可以结合使用,以充分利用它们各自的优势。原创 2024-01-05 17:34:05 · 1057 阅读 · 0 评论 -
4种feature classification在代码的实现上是怎么样的?Linear / MLP / CNN / Attention-Based Heads
具体的分类效果可以看:【Arxiv 2023】Diffusion Models Beat GANs on Image Classification1、线性分类器 (Linear, A)使用一个简单的线性层,通常与一个激活函数结合使用。import torch.nn as nnclass LinearClassifier(nn.Module): def __init__(self, input_size, num_classes): super(LinearClass原创 2023-12-24 10:27:49 · 514 阅读 · 0 评论 -
Linear probing accuracy(线性探测精度)是什么?评价表征学习的质量的方式
Linear probing accuracy 的关键在于它提供了一个简单而直接的方式来评估模型学习到的特征的质量。如果一个自监督学习模型能够学习到有用的、丰富的特征表示,那么即使是一个简单的线性分类器也能在这些特征上取得良好的分类性能。在这种方法中,使用一个简单的线性分类器(通常是一个线性层或者一个全连接层)来测试模型学习到的特征的质量。:然后,在提取的特征上训练一个简单的线性分类器。:最后,评估这个线性分类器在一个标记的测试集上的性能,通常是准确率(accuracy)。原创 2023-12-16 21:23:57 · 2025 阅读 · 0 评论 -
pytorch_lightning 安装
pytorch_lightning 安装方式要与torch的安装方式保持一致,否则也会导致你的torch版本被替换。pip install pytorch-lightning==版本名。-lightning时一定注意自己的torch是pip安装还是。conda方式(conda不需要指定版本号)原创 2023-12-14 19:51:12 · 4057 阅读 · 0 评论 -
np.random.uniform() 采样得到的是一个高维立方体,而不是球体,为什么?
这里,函数在每个维度独立地生成了一个介于和之间的随机数。这意味着每个维度都是独立采样的,每个维度的采样范围都是一个长度为的线段。当你结合所有维度的采样结果时,形成的是一个边长为的超立方体(在三维空间中就是一个立方体)。原创 2023-11-30 21:07:54 · 593 阅读 · 0 评论 -
np.random.uniform() 用法
是NumPy库中用来生成在一个指定范围内均匀分布的随机数的函数。highsize如果size是一个整数,那么会返回一个形状为(size,)的数组。如果size是一个元组,比如(m, n, k),那么它会返回一个形状为(m, n, k)的多维数组,每个元素都是在low和high之间均匀分布的随机浮点数。原创 2023-11-30 20:47:31 · 2813 阅读 · 0 评论 -
cddd 安装指南(pip install cddd)
TensorFlow==1.10.0对应的Python版本是3.6,所以如果你的Python版本是3.6以上是不行的.....这个命令可能会报错,因为要求是TensorFlow==1.10.0。原创 2023-11-29 15:51:39 · 569 阅读 · 0 评论 -
Python怎么在py文件中执行某个命令行,这个命令行是运行另外一个程序的命令,例如“python aa.py”
【代码】Python怎么在py文件中执行某个命令行,这个命令行是运行另外一个程序的命令,例如“python aa.py”原创 2023-11-29 10:05:13 · 678 阅读 · 0 评论 -
“凸函数”是什么?
如单变数的二次函数和指数函数。二阶可导的一元函数为凸,当且仅当其定义域为凸集,且函数的二阶导数″在整个定义域上非负。直观理解,凸函数的图像形如开口向上的杯∪,而相反,凹函数则形如开口向下的帽∩。凸函数(英文:Convex function)是指函数图形上,凸函数的最小化问题有唯一性。,即凸开集上的严格凸函数,原创 2023-11-05 09:07:53 · 2748 阅读 · 0 评论