[bug][未解决] transformer encoder对不同的输入,输出全部一样

news/2024/7/19 12:40:01 标签: transformer, bug, 深度学习

多标签分类问题,输入是蛋白质特征,输出是蛋白质的功能(即,一个由标签组成的DAG)

motivation:输入是一个有multi-hot向量组成的张量,multi-hot的每一位代表着某一种特征。

考虑到不同特征之间可能存在交互作用,进而影响到最后的结果,首先用一个权重矩阵将输入嵌入之后,使用transformer的encoder进行特征的提取(特征之间没有先后关系,因而没有加入位置信息)。

然后问题出现了:不管输入是什么,输出的结果都是一样的,或者十分接近。

transformer改成mlp,效果反倒好了不少,而且也不存在输出一样的问题。

一个假设是,transformer的层数过多导致了过拟合,使得模型错误地拟合到了根据出现频率进行预测。然后减小了encoder layer的层数,结果很奇怪:一层的时候基本不存在这个问题,一旦层数到了2,输出一致的问题就很严重。。。感觉这个假设很牵强啊

暂时没有其他想法了,只能先放下了。希望大佬解答。


http://www.niftyadmin.cn/n/1363379.html

相关文章

Ubuntu系统安装后无法进入,出现“grub rescue> 界面”等问题解决

Ubuntu系统安装后无法进入,出现“grub rescue> 界面”等问题解决 这里分享一个可以最快最简单的解决Ubuntu系统安装后因为启动项问题无法正常进入或者每次进入都需要从F2中选择启动项的解决方法: 使用boot repair工具修复 使用带有Ubuntu系统的U盘启…

两个按钮共用一个界面并且点击该界面保存按钮调用不同事件

第一种情况:新增修改共用窗口 新增是创建model加载到弹出窗口的form中,sysid为空(sysid是在保存记录时生成的一串字符,由sys_guid()得到)。编辑时将grid已选项加载到弹出窗口form,此…

python 保存和读取中间变量

三种方法: pickle, joblib, pd.read_pickle 很简单,知道包之后就可以搜,教程很多,此处不再赘述。 需要说明的是,根据类型的不同,使用不同的包会报错,目前遇到的有&…

Caffe安装问题解决——找不到 -lcblas -latlas

Caffe安装问题解决——找不到 -lcblas -latlas 问题描述 LD -o .build_release/lib/libcaffe.so.1.0.0 CXX tools/caffe.cpp CXX tools/compute_image_mean.cpp CXX tools/convert_imageset.cpp /usr/bin/ld: 找不到 -lcblas /usr/bin/ld: 找不到 -latlas collect2: error: l…

AsyncTask

AsyncTask定义了三种泛型类型 Params,Progress和Result。 Params 启动任务执行的输入参数,比如HTTP请求的URL。Progress 后台任务执行的百分比。Result 后台执行任务最终返回的结果,比如String。使用过AsyncTask 的同学都知道一个异步加载数据…

何为本体论

文科的东西就是这点麻烦,看了忘忘了看,总是记不住。研究本体大半年了,连本体是什么都解释不清楚。现在花时间又整理一遍,暂且写个博客备个份。 本体首先是个哲学概念,后来才迁移到计算机领域。大致的意思是“一切实在…

ubuntu18.04开机后无法进入系统问题的解决方法

解决方法ubuntu18.04开机时无法进入系统的问题 问题描述: 出现这种错误的原因是安装了nvidia-smi安装包,Ubuntu18.04内核bug导致gdm3和nvidia驱动冲突,使得gdm3无法正常启动图形界面,而gdm不断尝试启动的后果就是屏幕的闪烁。 …

PyG中自定义Data的注意事项(__cat_dim__)

记录一个超超超超超令人无语的事件 下载PyG跑源码,然后使用DataLoader加载自定义的数据,结果报错: __cat_dim__() takes 3 positional arguments but 4 were given 找不到原因,看了一下博客,GNN学习笔记&#xff08…