- 博客(65)
- 收藏
- 关注
原创 tenrec mmoe实操
该项目包含多种任务数据集,以及详细清晰的代码,十分适合用于推荐项目练习使用,但是在运行该项目过程中,遇见了一些麻烦,现记录下来。2.下载数据集,项目目录下建立data文件夹,将相应数据放到该目录下,建立checkpoint目录,用来保存模型。这个命令的缺点就是项目使用CPU训练而不是GPU了,博主也暂时没有跑GPU版本,GPU可能会有不少问题。运行中可以在代码中添加一些中间日志,比如在main.py相应位置添加print代码。再检查到程序运行无问题后,可以将中间日志删掉,以防影响查看训练指标。
2024-09-12 15:53:51 148
原创 GAUC的计算,每个epoch结束算一次gauc,keras实现,通过回调函数实现
【代码】GAUC的计算,每个epoch结束算一次gauc,keras实现,通过回调函数实现。
2024-08-29 10:40:21 99
原创 一文讲清协同过滤,矩阵分解,spark als,显示反馈与隐式反馈
然后针对用户a消费的物品序列b,c,d分别得到对应的topk个相似物品(e,f,g),e的推测得分就为(b1*be+c1*ce+d1*de)/(be+ce+de)(其中b1,c1,d1是用户a针对b,c,d的评分,be,ce,de是b与e,c与e,d与e的物品相似度)。显式反馈:用户明确提供的反馈,例如评分、喜欢或不喜欢、喜欢的程度等。其中,c_ui是用户u对物品i的置信度,p_ui是用户u对物品i的偏好(如果用户u有过对物品i的行为,p_ui=1,否则p_ui=0),其他参数的含义与显式反馈的模型相同。
2024-08-27 17:08:04 1006
原创 大规模协同过滤,矩阵分解模型,keres子类化实现,流式输入,从模型中取出参数保存user_embedding矩阵,item_embedding矩阵
【代码】大规模协同过滤,矩阵分解模型,keres子类化实现,流式输入,从模型中取出参数保存user_embedding矩阵,item_embedding矩阵。
2024-08-20 15:11:11 95
原创 一文弄清楚python3字符串编码
4.unicode字符串打印出来是类似 u'你好' 的形式,bytes打印出来是类似 b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81' 形式。2.encode('utf-8')是将utf-8 string转为bytes(byte string),decode('utf-8')是将bytes转为utf-8 string,注意Python2有区别。
2024-08-08 14:52:18 213
原创 git将自己工作分支多次提交合并为一次提交到主分支
命令之前,你需要确认你的开发分支和主分支都是最新的,并且没有未commit的改动。否则,这个命令可能会产生冲突,你需要手动解决冲突才能继续。首先,你需要确认你当前的分支和主分支的状态,确保所有的改动都已经commit。这个命令会将开发分支的所有改动合并为一个新的改动,并且放在你的工作区,但是并没有commit。这样,你的主分支就只会有一个新的commit,而不是一堆commit了。
2024-08-01 19:20:40 291
原创 yaklang window安装 vscode运行得到“hello world”
然后随便创建一个文件夹,命名为yak_demo,vscode open folder打开该文件夹,创建demo.yak文件,文件里输入。然后在底下terminal页面就可以看到“hello world”了,就大获成功啦!安装vscode,打开插件市场安装yaklang插件。然后右键,yak exec file运行文件。
2024-06-30 17:07:39 324
原创 chat-glm4,qwen1.5性能对比
数据来源是以下两个图。可以看到GLM4非常优秀,qwen应该也快要开源自己的新模型了,希望国内的大模型团队能够继续坚持,持续努力,坚持就是成功,持续性的努力非常重要!
2024-06-06 15:29:23 527
原创 大模型训练经验
解决办法:训练数据的输入输出去掉起始符号。3.模型训练后预测没有结束符,暂时未解。加大epoch,我加大到了1000。1.模型训练好后预测全是起始符号。2.模型训练后学不到有效信息。
2024-03-01 10:04:02 397
原创 字符串编码在python2,python3的区别
这是因为在Python 2中,Unicode字符串和字节字符串是两种不同的类型,它们在比较时会被认为是不相等的,即使它们包含相同的字符序列。上述代码在python3返回True,python2返回false。),这是必须的,因为我们在源代码中直接使用了非ASCII字符。要想在python2判断这两个字符串的异同,应该按下面方式做。请注意,文件的开头包含一个编码声明(是一个Unicode字符串,而。
2024-01-25 16:29:36 422 1
原创 多目标loss平衡和多目标融合推理
优化方法更多的考虑的是在已有结构下,更好地结合任务进行训练和参数优化,它从Loss与梯度的维度去思考不同任务之间的关系。强化搜参:把线上流量分成一些小的流量池,通过一些线上当前的参数,去生成一些新的参数,去看用户对这些参数的反应,收集反馈进行迭代。GradNorm 尝试将不同任务的梯度调节到相似的量级来控制多任务网络的训练,以鼓励网络以尽可能相同的速度学习所有任务。
2024-01-09 14:43:04 439
原创 lr推荐模型 特征重要性分析
年龄,性别就是特征域粒度,男,女,10岁,20岁就是特征值粒度。真正输入模型的是特征值粒度,会把特征one-hot化,男可以表征为[1,0],女可以表征为[0,1],年龄取值为[0,100),hash_bucket化为5个桶,[0,20),[20,40),[40,60),[60,80),[80,100),那么10岁表征为[1,0,0,0,0],20岁表征为[0,1,0,0,0]。那么假设此时输入模型的一条样本数据为男性10岁,那么输入模型的w1,w1,...,wn就为1,0,1,0,0,0,0。
2024-01-04 10:17:12 471
原创 tensorflow2,keras,feature_column查看中间结果
在定义特征列时,你会创建一个特征列列表(在示例中为`feature_columns`),这个列表包含了所有需要进行转换的特征列。`DenseFeatures` 层会接收每一列特征的输入,并根据定义的特征列进行转换。转换的顺序是由TensorFlow框架内部管理的,不一定和用户定义的列表顺序相对应。转换操作与特征列在列表中的位置无关,它们通常是并行执行的。在TensorFlow中,`tf.feature_column` 的定义顺序并不会影响其在模型中的执行顺序或输出结果的排列顺序。
2024-01-03 10:35:26 385
原创 MMOE,MOE,SHARED-BOTTOM比较
mmoe相比于shared-bottom来说,MMOE通过门控网络来显式地建模任务之间的关系,而Shared-bottom则假设所有任务都可以从共享的底层网络中获益。因此,MMOE可能在处理任务关系更复杂的场景中表现更好,而Shared-bottom可能在任务之间存在明显共享特征的情况下表现更好。moe多个专家能够提取到不同的信息,从而帮助提升模型表现。
2023-12-29 17:41:09 545
原创 推荐系统,推荐模型中负样本的选择和采集
这种策略的理念是,如果一个项目非常热门,但用户却没有互动过,那么可能是因为用户对该项目不感兴趣。3. 利用用户的历史行为:例如,如果用户在浏览一个项目后没有采取任何行动(如购买、添加到购物车等),那么可以认为用户对该项目不感兴趣,将其作为负样本。推荐系统中,负样本的采集通常是一个挑战,因为用户往往只提供他们喜欢的项目的反馈,而不喜欢的项目的反馈通常是缺失的。4. 利用用户的隐式反馈:例如,如果用户在看到一个推荐项目后选择了“不再显示这个推荐”,那么可以将该项目作为负样本。
2023-12-12 14:19:35 593
原创 python伪多线程,实现多线程失败,无法实现多线程,实现多线程的经典错误,教你实现多线程,threading,thread
这两段代码有什么区别吗,如果不小心看都注意不到,第一段代码是正确的实现方式,第二段代码target中的test函数加上了括号,实际上在thread1初始化时便开始执行了一次。所以,切忌在target的函数加括号!
2023-11-28 11:30:54 442
原创 使用gpt对对话数据进行扩增,对话数据扩增,数据增强
我们知道一个问题可以使用很多方式问,但都可以使用完全一样的回答,基于这个思路,我们可以很快的扩增我们的数据集。然后我们可以工程化这个过程,从而快速扩增我们的对话数据集。
2023-08-07 11:27:26 1775
原创 gcc-o,gcc -o3和gcc -ofast的含义和作用
"-Ofast" 是"-O3"的超集,它启用所有"-O3"的优化,并额外启用一些可能会破坏IEEE浮点标准和其他标准的优化。"-O3" 表示开启所有的优化选项,包括"-O2"的所有优化,并添加一些额外的优化以进一步提高性能。这可能会使编译时间更长,也可能会增加生成的代码的大小。"-o" 是一个选项,用于指定输出的文件名。总的来说,这两个选项都是用来提高程序运行速度的,但是可能会有一些副作用,比如增加编译时间、增大生成的代码大小、破坏某些标准等。"-O3" 和 "-Ofast" 是GCC的优化选项。
2023-07-31 16:49:38 1530
原创 gpt4对adamw优化算法中eps,beta1,beta2,weight_decay,Gradient Clipping的理解
在原始的Adam优化器中,权重衰减是直接作用在权重的梯度上,而在AdamW中,权重衰减是直接作用在权重上,这样可以更好地控制模型的复杂度,防止过拟合。具体的学习率衰减策略有很多种,比如每隔一定的迭代次数就将学习率乘以一个固定的因子(比如0.1),或者根据当前的训练误差来动态调整学习率等。其中,t是迭代次数,lr是学习率,wd是权重衰减系数,ε是防止除0的小数值。相比于原始的Adam优化器,AdamW在处理权重衰减时更加稳健,特别是在处理深度学习模型时,可以更好地防止过拟合,提高模型的泛化能力。
2023-07-28 10:51:34 2586 2
原创 python接收流式返回
注意,requests.post参数里的stream参数,不设置时就是一次返回,设置了才有流式返回的感受;for line in 里面的循环体根据自己的返回去处理,不同的返回有不同的处理方式。
2023-07-20 14:16:45 3162
原创 could not load cublas64_11.dll
在文件目录下有该文件,环境变量也配好了,但还是报错could not load,这时候就得。
2022-12-02 18:29:23 3537 1
原创 三遍写代码法
第一遍:实现代码,解决问题;第二遍:规范代码。 1.先让代码更优美,如何让代码更优美呢,一是更简洁,比如能一行完成的你写了五行可能就不够优美,二是让自己的代码更节省空间性能和时间性能。 2.然后让代码整齐清晰,就主要是格式上的整理工作。第三遍:添加注释。 程序员们经常会忽略写注释,但是程序员的工作也经常需要沟通协作,即使只写一些简单的注释也能极大的帮助别人看懂你的代码,也能避免年岁久远之后自己都看不懂自己代码的尴尬情况。经过这样三遍代码法的代码我相信一定比大家平时写
2022-07-14 17:47:54 549
原创 tf.data dataset filter筛选数据,解决报错:ValueError: `predicate` return type must be convertible to a scalar
官网针对这个函数的讲解十分简陋,并不能用于实际,官网教程:tf.data.TFRecordDataset | TensorFlow Core v2.9.1https://tensorflow.google.cn/api_docs/python/tf/data/TFRecordDataset?hl=en 下面说说我的实现,废话不多说,直接上代码,看代码是最清晰的:注释的写法也是可以的。接下来说下我解决这个问题的过程:写成:报错根本这个报错信息我反复找如何把tensorspec转化为sca
2022-06-30 15:42:50 1317
原创 报错:Fatal Python error: Segmentation fault,段错误(吐核)
关于同时import TensorFlow 与faiss出现的报错,真的是苦恼了一段时间,把自己的代码分开测试始终找不到代码问题出现在哪,现在终于意识到这个问题,只要同时import这两个包就会遇到这个错误
2022-06-28 14:15:39 2206
原创 实现batch内负采样和解决报错:tensorflow.python.framework.errors_impl.InvalidArgumentError
在我们实现双塔等模型时一些负样本难以获取,这时我们可以通过batch内负采样的方式来实现训练,此时采集的样本数据仅需要正样本就够了。我们先来看一个案例,通过此案例来理解此代码运行这段代码的输出是:此时我们将我们的代码用于我们的模型之中,然后加上softmax,loss改为category_loss代码就可运行一半了,但是我们发现仿佛在一个epoch快要运行结束时报错了,报错为:它的原因为:我们的数据被分为一个batch_size,一个batch_size的输入模型中,在最后总会剩余不足一个
2022-06-20 16:14:52 2851 1
原创 linux下安装cuda11.2(从英伟达官网下载安装)
wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run再执行sudo sh cuda_11.2.0_460.27.04_linux.run
2021-11-10 12:11:15 2261
原创 tensorflow2 多目标模型子类化实现
直接上代码,import datetimeimport numpy as npimport pandas as pdfrom matplotlib import pyplot as pltimport tensorflow as tffrom tensorflow.keras import layers, models, Model# ============================================================================
2021-07-09 09:47:13 332
原创 tensorboard2使用指南。
from tensorflow.keras.callbacks import TensorBoardtbCallBack = TensorBoard(log_dir="./log", histogram_freq=1, write_grads=True)model.fit([x_train, x_train_masks], y_train, batch_size=batch_size, epochs=epochs, validation_split=0.2, callbacks=[tbCa.
2021-06-30 11:31:35 185
原创 training=true or false
目前的经验来看,training=false会使预测出来的值分布更加离散,差别相对较大;training=true预测出来的数值差别比较的小,甚至无差别。
2021-06-22 15:03:37 1027
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人