看代码的作用,是把矩阵的对角线以上部分元素随机设为0或1。
这似乎没有什么好办法,因为想要用向量化的方法就很难直接使用稀疏存储方式(随机数的生成就不好处理),而不用稀疏存储方式,内存又不够用。
事实上,就你现在的代码而言,我也很怀疑内存是否够用,因为,对一格100000x100000的矩阵,按双精度存储的矩阵所需内存为100000^28/1024^3=745G,而按照你给的概率,矩阵上三角部分的元素有50%的概率为非零,存储这部分元素所需的内存为(N^2-N)/2/28/1024^3=186G,虽然采用稀疏方式,所需内存也不可能少于这个数(换言之,这个矩阵根本就不能算稀疏的)。
所以,这个问题不是速度慢不慢的问题,而是核心在于内存是否够用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)