事情的经过就是,跑深度学习代码的时候,遇到了一系列的错误
参数维度对不上
1.运行时,发现预训练模型得到的参数跟我模型要的对不上,傻逼了,当时没看见github得issues里面就有解答,找了大半天,还尝试去改模型参数。
其实就是因为下载的预训练模型参数的版本不对,应该用旧的版本。
cuda用不了
RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc)
先是去调试,发现是代码运行到linear层的时候报错的,然后打印了一下维度,发现一个是二维,一个是三维,但是俺的师兄说不是这个问题,进而作罢。
然后因为上面说是用的cuda,直接在自己创建的环境下使用print(torch.cuda.device_count())是可以打印的,但是放到我跑的代码里头,就报错了,想着应该是这个问题吧。
然后俺就装了cuda和cudann,发现还是没有解决问题!!!
然后我的好心师兄就帮登了我的号去看了一下,给俺重新弄了一个环境,不得不说,我的师兄实在是太好了,类目。
解决方法就是,重新装了一个高一点版本的torch,因为我之前是按照代码里的readme直接装的torch==1.4.0
,但是这个实在是太老了,跟俺服务器里的12.0已经匹配不上了,所以装了个新的就好了。