2024.7.9记录我跑实验遇到的问题:
1、autodl里面用jupyter notebook跑实验内核老是崩溃重启
2、崩溃重启之后就没有之前的变量了,后面的代码也会报错显示不认识这个变量。怎么解决?
3、导入错误:无法从“scipy.linalg”导入名称“triu”是gensim 和scipy版本对应问题,不对应根本运行不了,怎么解决,下载什么版本?
4、GPU为啥拉不起来?
解决办法
1、解决autodl里面用jupyter notebook跑实验内核崩溃重启
原因是:本人为了省钱用的无卡模式运行的,因为暂时用不上GPU,奈何文件太大了,无卡模式下内存只能使用2G,所以每次运行到这块代码内核一直崩溃。
正确做法:不要用无卡模式开机,因为读取的文件太大的话,无卡模式下的内存无法满足这个条件。
2、 在云端运行 Jupyter 内核时,如果内核终止,通常会丢失未保存的运行结果,如何解决?
本人遇到的情况是,我好不容易跑出的结果,存储到变量里面,结果内核关闭之后,变量也丢失了,后续的代码也不认识该变量,重新跑又需要很长时间。
解决办法:使用 Pickle 保存和加载数据
定期将中间结果保存到磁盘文件中,可以是CSV、JSON、Pickle等格式。这确保在内核终止后可以重新加载这些数据。将data替换为你所需要保存的变量即可,dump函数会在你的文件中查看有没有这个文件名,如果没有的话会自动构建。
#示例1
import pickle
# 保存数据到文件
def save_data(data, filename):
with open(filename, 'wb') as f:
pickle.dump(data, f)
# 从文件加载数据
def load_data(filename):
with open(filename, 'rb') as f:
return pickle.load(f)
# 在云端运行 Jupyter 内核时,如果内核终止,通常会丢失未保存的运行结果。
import pickle
# 将数据保存到 Pickle 文件
with open('accs.pkl', 'wb') as file:
pickle.dump(accs, file)#dump如果没有找到这个pkl文件,会自己创建一个
print("accs 列表已保存到 accs.pkl")
3、解决导入错误:无法从“scipy.linalg”导入名称“triu”
原因:gensim 和scipy版本对应问题,不对应根本运行不了,按照网上其他做法,就算把scipy降低版本到scipy1.10.1也依旧会报错:
ImportError: cannot import name 'triu' from 'scipy.linalg' (/root/miniconda3/lib/python3.10/site-packages/scipy/linalg/__init__.py)
解决办法,在jupyter notebook里输入
!pip install gensim==4.3.2
!pip install scipy==1.7.2
4、GPU为啥拉不起来?
一般只有开始训练模型或者跑模型结果的时候才会拉起GPU,不是运行任何代码都会调用到GPU,这个时候可以在性能监控里看到GPU跑起来了。