zoukankan      html  css  js  c++  java
  • 神经网络与深度学习笔记(四):向量化以提高计算速度

    我们在计算模型w的转置乘上x的时候,往往需要把w和x分别进行向量化然后运算,因为这样会使我们的计算机得到结果的时间更快,而且这种方法不管是在CPU还是在GPU上都是成立的,首先我们来看看代码:

    import numpy as np
    import time
    a=np.random.rand(1000000)
    b=np.random.rand(1000000)
    toc=time.time()
    c=np.dot(a,b)
    tic=time.time()
    print("向量化之后计算的时间为:"+str(1000*(tic-toc))+"ms")
    c=0
    tic=time.time()
    for i in range(1000000):
        c+=a[i]*b[i]
    toc=time.time()
    print("不做向量化计算之后的时间为:"+str(1000*(toc-tic))+"ms")

    第一种方法方法运用了向量化来计算,也就是numpy当中的dot函数来计算,第二种方法则是利用了我们传统的for循环来进行计算,我们对每一个方法所的时间都做了记录,输出的结果如下:

    向量化之后计算的时间为:1.0008811950683594ms
    不做向量化计算之后的时间为:449.3072032928467ms

    因此我们可以看到向量化之后的计算速度比之前使用常规方法快了大概四百倍,因此使用numpy来进行计算将会成为我们之后进行计算的首选方法。
  • 相关阅读:
    Linux命令行常用符号
    IP地址详解
    黑帽子白帽子问题
    点香测算时间
    Linux系统中的压缩和打包
    Python冒泡排序
    Python选择排序
    linux 文件三大特殊权限(SUID SGID SBIT)
    预处理器之头文件嵌套包含最大层数
    一不小心就对未分配的内存进行访问和修改
  • 原文地址:https://www.cnblogs.com/geeksongs/p/11145776.html
Copyright © 2011-2022 走看看