- 博客(12)
- 收藏
- 关注
原创 交叉注意力机制
结果是元组第0个元素,它的维度是(L,N,embed_dim),L是序列步长,它的值取决于q的步长。调用nn.MultiheadAttention(embed_dim,num_heads=1)可以实现。输入q,k,v,另外设置need_weights参数可以控制是否输出权重。
2024-06-02 14:37:57 162
原创 pytorch googlenet输出的问题
使用上面的代码调用googlenet然后进行训练,出来的结果一会儿时GooglenetType类型,一会是(bs,output_dim)类型的结果。我知道googlenet有两个辅助判断的网络,上面的情况是一会儿把辅助判断的网络结果也一同输出,一会不加上。这种情况也好解决,只需判断一下输出类型,把辅助网络的输出去掉即可。不要三者取平均,网络会没法训练。
2024-06-01 11:19:57 124
原创 python导入自定义函数库时将函数库修改了重新导入为什么无法得到修改后函数
比如有一个自定义函数库func.py,如果已经导入了这个库,此时在里面新添加了一个func1函数,然后重新运行from func import *代码,但是仍然无法使用新添加的函数func1。上面的代码跑一边应该就可以解决问题。
2024-06-01 09:46:11 109
原创 pytorch模型载入与保存
import datetimedef savemodel(model,name): formatted_date = datetime.datetime.now().strftime('%Y-%m-%d_%H-%M') # Save the model checkpoint torch.save(model.state_dict(), './savemodel%s_%s_withoutembedding.ckpt'%(name,formatted_date))def loadmod
2024-05-31 13:07:15 104
原创 层归一化和批量归一化
层归一化LayerNorm是对一个样本的所有特征做归一化。批量归一化是在批量维度上对每个特征做归一化。层归一化之后在放入多头注意力机制内计算相似度就很方便,点积就是余弦相似度。
2024-05-28 14:16:10 222
原创 dataframe记录常用操作
df.groupby(by='A').agg({'a':'value_counts'})可以实现按A列分组然后对每组计算a列各类别的数量。df['A'].apply(lambda x:)使用apply+匿名函数的方法可以很灵活的处理某一列数据。df.reset_index(inplace=True,drop=True)重置索引,并将旧索引删去。df.rename({'A':'a'},inplace=True)给某一列重命名A->a。pd.merge()实现两个dataframe行合并,支持多种合并方式。
2024-05-26 13:08:25 107
原创 python拾遗
Python内置库collections提供了很多的除list,dict,set等额外的容器,如deque表示双端队列,counter表示计数器,defaultdict表示默认字典。列表list,使用list.insert(-1,1),是不能把1插到列表最后的,会插到倒数第二个位置,即最后一个数之前。应使用list.append。Python内置库函数itertools.combinations(iterable,r)可以从iterable中挑r个返回。list要想不是浅拷贝,可以使用list[:]
2024-05-19 10:51:48 138
原创 关于torchvision.transforms.ToTensor()
有一个细节,在导入图像时,自动对图像做了归一化,变到[0,1]之间,所以后面transforms.Normalize()时设置均值0.5,标准差0.5也没什么问题。使用 torch.utils.data.random_split() 比 train_test_split() 好。关于深度学习做图像训练集和测试集切分。
2024-04-03 21:30:20 285
原创 关于torch.nn.CrossEntropyLoss
用于多分类问题作为损失函数,使用的时候要注意它包含了logsoftmax和nllloss的过程,输入其中的预测值不需要经过softmax,另外输入的真实标签值应当是长整型。
2024-01-31 11:10:57 200 1
原创 Hugging face学习笔记
准备好数据集和编码工具后,要用到dataset.map和dataset.filter函数,dataset.map函数用于给数据编码,filter进行进一步的处理,过滤掉一些无法输入模型的样本。要向这两个函数里面输入构造的函数。关于使用pipeline,方便,就是task参数有点难记,可以参考下面的文档。2.定义评价函数 compute_metrics()根据不同任务自行定义。3.定义训练超参数 TrainingArguments。4.定义训练器 Trainer。二.定义模型与训练工具。
2024-01-18 21:02:25 705 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人