自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 pytorch中矩阵维度变化的函数

顾名思义,这个函数是将tensor展平,分为全部展平和部分展平。记录一下自己遇到的tensor维度变化的方法。这个函数主要用于tensor的拼接。后面遇到新的再做更新。

2024-09-26 14:51:58 285

原创 MMOE中softmax的处理

softmax(1)表示对每个样本的第二维(即4个专家的评分)应用softmax操作。这样,每个样本的第二维将会被转换为概率分布,即这一维的所有值加起来等于1。gating_score_of_experts的shape为(1024,4,1),它有1024个样本,每个样本有4个专家的评分。由于先前得出的gating_score_of_experts并没有进行归一化,因此使用softmax进行归一化。在写dcn_v2时,最后一步需要将mmoe思想的矩阵乘法归一化,这里的代码用了很巧妙的一个写法。

2024-09-26 14:37:28 309

原创 pytorch中矩阵与数组运算的广播机制

广播后,计算的结果为:如果x和y的维数不等,在维数较少的张量上添加尺寸为 1 的维度,结果维度尺寸是x和y相应维度尺寸的较大者。2.迭代维度尺寸时,从尾部的维度开始,维度的尺寸。2.2其中一个张量的维度尺寸为1。2.3其中一个张量不存在这个维度。1.每个张量至少有一个维度。决定梳理一下pytorch中的广播机制。

2024-09-26 14:31:56 392

原创 关于itertools.combinations批量创建网络与计算

接下来,在forward函数中,会通过zip函数中第一个元素任取出一个tuple,这个tuple包含了两个tensor,然后通过v[0]和v[1]的方式取出对应vi与vj。因此,上述代码的逻辑就是:通过调用itertools.combinations,在range(filed_size)内任取两个数值,只要取到就创建一层linear层。今天在写Fibinet网络的时候,发现了一个很新奇的批量创建神经网络层的方法。这种特征交叉的计算方法如下所示。

2024-09-26 14:07:03 323

原创 pytorch中的矩阵与向量计算

2.torch.matmul 在torch.mm的基础上支持高维计算,最重要的功能是支持广播。最近在写神经网络的时候,因为对各种乘法计算概念比较模糊,经常出bug,所以抽时间总结一下遇到的矩阵和向量计算。5.@ @和torch.mm功能相同,实现对应矩阵相乘,需要两个元素都为二维矩阵。1.torch.mm 正常的矩阵相乘,必须保证相乘的两个元素为矩阵,该函数不支持广播。3.torch.mul 矩阵点乘,即矩阵对应元素相乘,支持广播机制。4.* *和torch.mul功能相同,即实现矩阵对应元素相乘。

2024-09-26 11:31:56 535

原创 矩阵按条件批量处理

此时,我在得到预测值之后,会出现不符合常理的值,例如电影评分为1-5,模型可能预测出大于5或者小于1的分数来,此时就需要对矩阵按条件处理,使用torch.where函数和torch.full_like函数。fm模型的关键在于构建了特征的二阶交叉,并且对每个特征分量引入k个辅助向量,使用向量内积的方法表示原先的权重矩阵,起到降维的作用。torch.where接受三个参数,第一个参数为条件张量,第二个参数为条件为真时的处理,第三个参数为条件为假时的处理。第二步:使用torch.where进行条件替换。

2024-09-23 09:47:55 437

原创 tensor在cpu和gpu上对array的转化

最近在写代码时,遇到了一个问题,我导入神经网络的数据为tensor类型,放在gpu上进行计算。由于是一个点击率的预测问题,我需要计算预测值和真实值之间的roc_auc_score。这是因为roc_auc_score无法处理gpu上的数据,此时只需要将gpu上的tensor取出,放在cpu上面,再将cpu上的tensor转化为array即可。roc_auc_score的计算需要传入两个array数组,此时需要将gpu上的tensor转化为array,我一开始的代码为。如果按照这样写,系统会报错。

2024-09-23 09:36:09 464

原创 如何调试神经网络里forward函数

针对有单独的model文件,即有model和train的代码文件。除了要在model.py的forward函数进行断点,还需要在train.py内进行断点。针对没有单独model的文件,即train和model没有分开的文件,可以在forward内直接断点,然后debug。在写神经网络的时候,经常需要计算各个分量的维度,此时需要debug编写的神经网络类的forward函数。可以在调用model的代码行打断点,这样deubg时就会进入model.py内调试forward函数了。

2024-09-23 09:27:34 572

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除