- 博客(63)
- 收藏
- 关注
原创 BUG修复
解决Anconda下Solving environment:failed with initial frozen solve. Retrying with flexible solve.
2024-09-04 18:38:27
194
原创 模型意识对比学习:摆脱训练中的一致性-容忍度困境
温度参数 τ 的设置会影响模型性能如果 τ 太小,模型会对训练不足的阶段施加过大的惩罚,导致难以区分潜在阳性样本,虽然模型的均匀性会变好但是容忍性会下降如果 τ 太大,有助于探索语义结构,对潜在阳性样本的容忍度增加,但是均匀性会下降体现在公式上:负样本xj上的惩罚权重分布为Pij,fi和gj是样本的特征表示,K是正样本的数量,τ是温度参数,此公式表明,对于每个负样本,其惩罚权重取决于它与某个正样本之间的相似度(由特征表示的点积计算得出),并且所有负样本的惩罚权重之和归一化显然,它有温度系数控制。
2024-08-14 22:26:05
193
原创 如何改进基于图的协同过滤中的表示对齐和一致性?How to Improve Representation Alignment and Uniformity in Graph-based CF?
之前研究中DirectAU是自监督学习,虽然有对齐和一致性的优势,但由于依赖于训练数据的特点,可能会导致模型过拟合,同时DirectAU严格最小化联合损失,这会引起过度的噪声转移,影响泛化性能。因此提出 AU+ 这种可以从更加普适的角度学习特征表示,不易受限于训练数据的特点,从而提高模型在新任务或数据上的泛化性能。
2024-07-25 21:53:08
1008
原创 通过超球层上的对齐和一致性来理解对比表示学习
对比表征学习在实践中取得显著成就,其中对比损失是对比表征学习的核心部分,直接定义了该如何比较数据样本来进行表征学习,因此,本文深入研究对比损失后,提出了对比损失的两个性质: - 对齐性——缩小正样本距离,增大负样本距离 - 一致性——归一化后在超球体上分布均匀性作者证明了对比学习也正是因为这两个性质才有较好效果的,本文就这两个性质展开研究
2024-07-25 13:51:12
1203
原创 SimGCL和XSimGCL
传统的SGL(图自监督学习)使得模型可以自行发掘任务特征,解决了数据稀疏和长尾分布的问题,SGL采用节点dropout、边dropout和随机游走三种方式对图结构进行扰动(图增强)进行对比学习,可以有效提高性能SGL主要解决传统推荐系统面临的数据稀疏和长尾分布问题。通过在图结构上进行数据增强,并结合对比学习机制,SGL能够有效提升模型的表征学习能力,从而改善推荐性能。
2024-07-23 17:44:50
1034
原创 MF(推荐系统的矩阵分解技术)论文笔记
推荐系统的可以为用户提供更为准确的个性化推荐,对比传统的,矩阵分解技术可以纳入更多信息,如和近邻技术:基于用户或物品之间的相似性进行推荐,当用户之间已有评价计算出两个用户爱好类似,就将a用户的其他物品推荐给b,在实际推荐计算时不再使用大矩阵,而是使用分解得到的两个小矩阵。
2024-04-27 09:12:37
2062
1
原创 python内存管理和垃圾回收一文详解(基于c语言源码底层逻辑)
首先我们大概回忆一下C语言中的环状双向链表,如图,在双向链表中对于一个结点来说会有前驱和后继:在python中,这个环状链表C源码的表示如上,可以发现在它分为PyObject和PyVarObject两个结构体,在python底层C源码中每个类型都有其对应的结构体是结点的固定变量(指向上一个的指针、指向下一个的指针、引用计数器、数据类型)构成的结构体是有多个元素组成的对象(例如一个列表L=['a','b','c'])构成的结构体我们把目光看到。
2024-03-14 21:07:42
994
原创 python元类实现单例模式
2. 当Foo类实例化的时候,会调用元类的call方法,我们将call方法中的init方法稍作变化,优先判断是否有对象,没有才创建。在创建类Foo的时候创建一个类变量,用于存储刚开始创建的对象,并且后续在程序中再创建一次只会得到同一个对象。1. 在元类初始化的时候创建一个变量instance,让他的默认值为None,该变量用来判断是否创建过对象。可以在Foo的元类中进行修改,在元类MyType调用new和init创建类时进行一些扩展。单例模式是一种创建型设计模式,此外,需要注意的是,
2024-03-14 16:59:21
528
原创 线性表、有序表的合并问题(线性表的应用)
现要求将La和Lb归并为—个新的线性表Lc,且Lc中的数据元素仍按值非递减有序排列。假设利用两个线性表La和Lb分别表示两个集合A,B,现要求求出新集合A=AUB。具体函数实现参看线性表的基础部分。无论使用链表还是顺序表均可以实现。已知线性表La和Lb中的数据元素。
2024-03-14 12:32:15
422
原创 python元类(type)
此时Foo就是由mytype创建的类,那么当Foo被创建的时候,就会调用mytype里面的方法(类似于mytype类创建出了一个Foo对象)类默认是由type创建的,那该怎么让一个类的创建改成由别的东西来创建呢?2. 程序接着执行类中的init方法,初始化该空对象 -----初始化方法。1. 程序自动帮你调用new方法、创建对象(空对象)-----构造方法。上面这两种创建方法其实都是由type创建,只不过第一种更为直观而已;那么类是由谁创建的呢?所以:对象是基于类创建出来的。类默认是由type创建的。
2024-03-12 10:35:40
399
原创 python面向对象中的__call__方法
方法后,该类的实例就成为了可调用对象(callable)。这意味着你可以像调用函数那样使用类的实例,即在实例后面加上括号。这种机制通常用于那些需要以类似函数的方式调用的对象,比如某些特定的设计模式中的类。方法,则无法通过实例加括号的方式直接调用实例的方法或属性。方法时,实例才能像函数一样被调用。在Python面向对象编程中,需要注意的是:只有当类定义了。
2024-03-12 10:34:44
584
原创 单链表的基本操作--增删改查
销毁 – 从头指针开始,一次释放所有的结点。取值 — 取单链表中的第i个元素的内容。插入 — 在第i个结点插入新结点。计算表长 – 不算头结点。删除 — 删除第i个节点。
2024-03-10 20:05:14
431
原创 递归算法三个经典例题(c++)
求解比原问题少一个数字的全排列问题,实现了将大问题变成一个小问题。设计递归算法生成n个元素R={r1,r2,r3…求解5开头的{5,3,2,1,6,9}的全排列 ……求解4开头的{5,3,2,1,6,9}的全排列。排列{4,5,3,2,1,6,9}大的永远不能在小的上面。输入:n=12345。
2024-03-10 15:58:08
1004
原创 求递归算法时间复杂性
f(n)的渐进上界是以n的log以b为底的e次幂。判断关系后一定要满足这三个对应规则。规则一:棋盘覆盖的时间复杂性。规则二:归并排序的时间复杂性。规则三:时间复杂性的递归定义。要求:a>=1,b>1。
2024-03-10 11:04:07
415
原创 python数据和分析——pandas基础内容
Pandas 的两个主要的数据结构是 Series 和 DataFrame:直接创建指定索引字典创建修改 Series 对象的数据类型(dtype),可以使用 方法。astype() 方法允许将 Series 中的数据转换为指定的数据类型查询索引和值:读取外部数据DataFrame创建直接创建索引字典访问列访问行添加新列:删除列:添加新行:删除行:查询info(): 提供有关DataFrame的基本信息,包括列名、非空值数量、每列的数据类型等。在上面的示例中,in
2024-01-24 20:20:55
912
原创 python数据分析——numpy基本用法
在上面的示例中,我们有一个二维数组 [[1,2,3], [4,5,6], [7,8,9]]。例如,如果有两个形状为 (M,N) 的二维数组 a 和 b,则 np.dstack([a, b]) 会返回一个形状为 (M,N,2) 的三维数组。在上面的示例中,np.eye(4, k=2) 创建了一个形状为 (4,4) 的单位矩阵,其中主对角线向右偏移两位。a是一个二维数组,在花式索引中,第一个列表 [1, 1, 3] 表示要获取的行索引,第二个列表 [2, 3, 0]表示要获取的列索引。
2024-01-23 16:02:47
1190
原创 python中tkinter/gui可视化界面
创建了一个标签,其中的text参数指定了标签的文本内容为 "姓 名: "是将该标签放置在网格布局中的指定位置。
2024-01-22 12:11:50
493
原创 CMD//
常用cmd命令盘符名称+:dir 查找该盘下的目录cd 目录 进入目录cd.. 返回上一级目录cd 目录1\目录2… 进入多级目录cd\ 回到盘符目录cls 清屏exit 退出命令行窗口
2023-09-25 14:53:11
116
原创 【C语言】宏
define<名字><值>没有结尾的分号名字必须是一个单词,值可以是任何东西#define pi3.1415926# define pi 3.1415926 //定义一个宏 pi是这个宏的名字 3.14159是这个宏的值如果一个宏的值中有其他宏的名字,也会被替换如果一个宏的值超过一行,最后一行之前的行末要加宏的值后面出现的注释不会被当作宏的一部分没有值的宏#define PI3.142PIprintf//6.28 PRT;;//6.28 PRT;printf。
2023-09-17 15:32:34
130
原创 【C语言】类型定义typedef
用于声明已有的数据类型的新名字//使得length成为int的别名,此时length就可以替代int出现在变量定义和参数声明的地方:int month;int day;int year;} Date;如果没有typedef则该代码声明一个Date的变量有typedef后意思为整个struct对象有了一个别名Datetypedef char* Strings[10]//String是10个字符指针的数组类型。
2023-09-15 10:37:40
105
原创 【C语言】结构
结构与函数 - 整个结构可以作为参数传入函数 - 此时在函数内部新建一个结构变量,并赋值调用者的结构的值 - 函数也可以返回一个结构
2023-09-15 10:24:07
67
原创 【C基础】指针
获取变量的地址值,它的操作数必须是变量;变量的地址值与类型是否相同要看编译器。在普通变量内会放实际的值,但是在指针变量内,只会放别的变量的地址值。sizeof用于给出某个类型或变量在内存中占据的字节数。a,b相邻排列,并且正好相差4个字节即一个int的字节。访问指针的值所表示的地址上的变量 -->特别注意:不可以对没有地址的东西取地址。简单来说,指针就是用来保存地址的量。
2023-08-18 14:47:52
72
原创 C语言参数传递问题(本地变量)
执行到swap(5,6)此刻传值给下方的函数定义处,但是函数定义处修改的值是函数的参数,swap(a,b)只是传递了值,对于main函数中的a,b值并没有改变。此时函数声明和原型中都是参数,但是main函数中函数调用时是确切的值,函数每次运行,就产生了一个独立空间,在这个空间中的变量,是这次函数运行所独有的,称作。函数传过去的只能是参数,它不是地址值,如果用引用的话,它就传的是真实值,你那传的它值在函数内部变了。
2023-08-08 10:51:28
73
原创 JS原生项目练习
该功能插入了一个超链接,可以让用户更加便捷发布自己的内容作为第一个原生JS项目,对于环境变量的配置,以及json-server的使用依旧需要增强,有关ajax也要增强练习,提高熟悉度,而且该项目所耗时长较久,独立完成性不高。大致而言,这次js原生项目的演习很好的锻炼了有关前后端模拟交互的场景,也将接下来学习的重点锁定在不熟练的领域,有效的认识到了不足之处,该网站后续仍然可以精进。
2023-02-05 23:47:46
174
原创 jQuery笔记
p是一个jQuery 创建的元素节点,但是是一个复杂数据类型的变量,存储的是一个地址,只要我使用同,就是在使用堆里面得哪个空间。-〉获取使用data()方法存储的数据,获取元素身上 data-xxx的属1=>语法:元素集合.data(属性名,属性值)->设置的时候,只是把数据存储在元素身上的某一个对象空间内->但是不会出现在标签上,不会由data-xxx的属性出现。=〉语法:元素集合.width()或者元素集合.height()=>获取的是元素内容位置的尺寸。
2023-02-02 18:26:38
95
原创 Python基础笔记
内部id不可以改变,如果内部元素为可变元素就可以改变,比如里面是列表就可以在列表内部变化,这样列表的id不会发生变化。a+表示追加,open打开文件,如果文件不存在,就创建,存在就在这个文件的后面继续追加。中文编码声明注释–>在文件的开头加上中文声明注释,用以指定源码文件的编码格式。默认从最后一个开始删除,给定索引就删除索引位置,删除元素会重新构成新数组。,可以指定reverse=true,进行降序排序,原列表不发生变化。,列表中的所有元素默认按照从大到小的顺序进行排序,可以指定。
2023-01-28 20:46:30
188
原创 ES6笔记
let变量声明// 1.必须先定义在使用 let a = 100 console . log(a) // 2.可以辨析变量重名问题 let name = "candy" let name = "judy" //报错,let声明的变量不能重名 var name = "sss" var name = "zzz" //相当于赋值 // 3.块级作用域 // 只会在{}内部起作用 var arr = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ] for(let i = 0;i ++) {
2023-01-20 18:11:07
126
原创 省市区三级联动
通过三个下拉菜单的联动来实现,第一级下拉菜单为省级,第二级下拉菜单为市级,第三级下拉菜单为区级。当点击第一级下拉菜单,第二级菜单的内容会自动匹配;选择第二级菜单时,第三级菜单会自动生成。当我取消上一级菜单的选项时,次一级选项会自动消失。3.当省级菜单发生变换的时候,先将市区全都设为【请选择】,再利用多层循环嵌套,确定每个省级元素对应的市级菜单内容,再将市级菜单元素一一对应区级菜单元素。2.利用创建节点的方式将每个省市区名称放入下拉菜单中。1.建立一个数组,分别将省市区以嵌套的方式写入数组。
2023-01-15 20:14:08
632
原创 JS实现简易时钟
上面的时钟,利用循环创建60个li标签,分别利用不同的偏转来实现在不同的位置上,再创建三个li标签设置宽度和高度来充当指针,将指针放入定时器中,每隔一秒转移一步。上方是简易的刻度时钟,下方是电子时钟,上下的时间需与北京时间实时对应。下面的时钟直接获得现在的时间就可以完成。
2023-01-15 17:32:44
2278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人