当前位置: 首页 > news >正文

软文营销网站浙江百度代理公司

软文营销网站,浙江百度代理公司,可以做mv 的视频网站,山西建设工程信息网站转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 问题提出 有些地方说,稀疏图比密集图的计算效率更高,真的吗? 原因猜想 这里的效率高,应该是有前提的:当使用稀疏矩阵的存储格式(如CSR)时,计…

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

问题提出

        有些地方说,稀疏图比密集图的计算效率更高,真的吗?

原因猜想

        这里的效率高,应该是有前提的:当使用稀疏矩阵的存储格式(如CSR)时,计算效率更高。如果是普通的完整矩阵格式,实际上效率一样。

        稀疏矩阵的存储格式(如 COO、CSR 或 CSC)直接影响乘法的效率, 一些格式在某些类型的运算中更高效,因为它们可以更快地访问和处理非零元素。因此,当使用了稀疏矩阵存储格式时,如果矩阵非常稀疏(即大多数元素为零),那么使用稀疏矩阵进行矩阵乘法通常会更高效,因为可以跳过大量的零元素乘法操作。

代码验证

import numpy as np
from scipy.sparse import csr_matrix
import time
import matplotlib.pyplot as plt
from tqdm import tqdmdef measure_time(matrix_size=1000, density=0.1):# 创建密集矩阵dense_matrix = np.random.rand(matrix_size, matrix_size)# 创建普通的稀疏矩阵sparse_matrix = dense_matrix < densitysparse_matrix = sparse_matrix.astype(np.float64)# 将普通的稀疏矩阵转换为CSR格式csr_matrix_sparse = csr_matrix(sparse_matrix)# warmupfor _ in range(5):np.dot(sparse_matrix, sparse_matrix)# 对普通的稀疏矩阵进行矩阵乘法,并计时start_time = time.time()_ = np.dot(sparse_matrix, sparse_matrix)sparse_time = time.time() - start_time# warmupfor _ in range(5):np.dot(dense_matrix, dense_matrix)# 对密集矩阵进行矩阵乘法,并计时start_time = time.time()_ = np.dot(dense_matrix, dense_matrix)dense_time = time.time() - start_time# warmupfor _ in range(5):csr_matrix_sparse.dot(csr_matrix_sparse)# 对CSR格式的稀疏矩阵进行矩阵乘法,并计时start_time = time.time()_ = csr_matrix_sparse.dot(csr_matrix_sparse)csr_time = time.time() - start_timereturn sparse_time, dense_time, csr_time# 矩阵大小范围
sizes = np.arange(10, 1001, 10)
# 记录每种大小下的耗时
times_sparse = []
times_dense = []
times_csr = []
for size in tqdm(sizes):sparse_time, dense_time, csr_time = measure_time(matrix_size=size)times_sparse.append(sparse_time)times_dense.append(dense_time)times_csr.append(csr_time)
# 绘制结果
plt.figure(figsize=(10, 6))
plt.plot(sizes, times_sparse, label='sparse')
plt.plot(sizes, times_dense, label='dense')
plt.plot(sizes, times_csr, label='csr')
plt.xlabel('matrix size')
plt.ylabel('time (s)')
plt.title('matrix_size vs time')
plt.legend()
plt.show()# 稀疏度范围
density = np.arange(0, 1, 0.01)
# 记录每种大小下的耗时
times_sparse = []
times_dense = []
times_csr = []
for den in tqdm(density):sparse_time, dense_time, csr_time = measure_time(density=den)times_sparse.append(sparse_time)times_dense.append(dense_time)times_csr.append(csr_time)
# 绘制结果
plt.figure(figsize=(10, 6))
plt.plot(density, times_sparse, label='sparse')
plt.plot(density, times_dense, label='dense')
plt.plot(density, times_csr, label='csr')
plt.xlabel('density')
plt.ylabel('time (s)')
plt.title('density vs time')
plt.legend()
plt.show()

        从上图可以看出,随着矩阵大小的增大,三种形式的计算效率都在降低,但两种普通的完整矩阵形式的乘法,其效率的变化趋势是一致的。考虑到时间统计有波动,因此可以看成他俩实际上是一样的时间。

        注意,上图中CSR的计算效率低于其他两者,是因为密集度为0.1。当密集度设置为0.01时,CSR的计算效率就会更高了。

        从这个图可以看到,随着密集度的增加,CSR的效率逐渐变低,但普通的完整矩阵形式的乘法,其效率并没有发生变化。

http://www.ds6.com.cn/news/117808.html

相关文章:

  • 即墨哪里有做网站的上海小红书seo
  • 青浦建设机械网站市场调研报告的基本框架
  • 湖北高端网站建设阿里云云服务平台
  • 如何备份网站网络营销活动推广方式
  • 影视动画专业要学什么汕头seo推广外包
  • 设计网站公司可去亿企邦衡阳有实力seo优化
  • 做个人网站需要多少钱昆明网站seo服务
  • 陕西网站制作商互联网营销推广公司
  • 网站 廉政建设 板块绍兴seo网站推广
  • 电子商务网站开发设计报告书跨境电商培训机构哪个靠谱
  • 网站多少钱一年武汉网站推广公司排名
  • 自己做网站打不开是怎么回事排名优化网站
  • 峰峰专业做网站网站推广论坛
  • 密云区住房和城乡建设委员会网站6河南网站优化排名
  • 静态网站设计模板百度推广账户优化方案
  • 潍坊专业网站建设价格低百度百度一下你就知道主页
  • 环境设计专业必看网站百度怎么发免费广告
  • 永川网站建设百度联盟怎么加入
  • 怎样设计一个网站平台企业营销策划包括哪些内容
  • 酒店网站建设策划书每日军事新闻
  • 做同城信息类网站如何赚钱比较开放的浏览器
  • 做网站设计制作的seo网站结构优化
  • 东莞响应式网站制作爱站网长尾关键词挖掘工具下载
  • 做网站必须要注册公司么公司网站免费建站
  • shopify建站教程苏州旺道seo
  • 南宁 做网站桂林市天气预报
  • 如何做像淘宝一样的网站网页制作的软件
  • 虚拟机下载seo优化一般优化哪些方面
  • 什么大的网站是帝国cms做的济南疫情最新情况
  • 旅游网站设计与建设论文深圳seo公司助力网络营销飞跃