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来进行计算将会成为我们之后进行计算的首选方法。
  • 相关阅读:
    mysql优化思路
    mysql列类型选择
    mysql 多列索引的生效规则
    Myisam索引和Innodb索引的区别
    mysql创建远程用户并授权
    mysql 索引长度和区分度
    php 内存共享shmop源码阅读
    短链接系统的算法原理
    PHP die与exit的区别
    MySQL建立外键(Foreign Key)
  • 原文地址:https://www.cnblogs.com/geeksongs/p/11145776.html
Copyright © 2011-2022 走看看