声明:本系列博客是我在学习人工智能实践:TensorFlow笔记(曹健,北京大学,软件与微电子学院)所做的笔记。所以,其中的绝大部分内容引自这系列视频,博客中的代码也是视频配套所附带的代码,其中部分代码可能会因需要而改动。侵删。在本系列博客中,其中包含视频中的引用,也包括我自己对知识的理解,思考和总结。本系列博客的目的主要有两个,一个是可以作为我自己的学习笔记,时常复习巩固。第二个是可以为想学习TensorFlow 2 相关知识的朋友提供一些参考。
本博客主要转载于如下链接:
https://zhuanlan.zhihu.com/p/31575074 卷积
神经网络
的
复杂度
分析
http://www.360doc.com/content/17/0719/14/10408243_672570496.shtml vgg16参数量与
计算
量
首先分析vgg:
vgg16详细参数
将所有的memory加起来:大约就是24M,卷积的...
神经网络
的
复杂度
计算
矩阵乘法的时间
复杂度
Mij∗MjkM_{ij} * M_{jk}Mij∗Mjk矩阵乘法的时间
复杂度
就是O(i∗j∗k)\mathcal{O}(i*j*k)O(i∗j∗k)。
请注意,我们在这里假设最简单的乘法算法:还有一些其他算法具有更好的时间
复杂度
。
前馈传递算法
前馈传播算法如下。
首先,要从层iii到jjj,您需要
Sj=Wji∗ZiS_j = W_{ji}*Z_iSj=Wji∗Zi
然后你应用激活函数
Zj=f(Sj)Z_j = f(S_j)Zj=f(Sj)
拿一个样本(n1 * 1)进行前馈
计算
,那么就要进行两次矩阵运算,两次矩阵乘法(实际上是向量和矩阵相乘)分别要进行n1 * n2 和 n2 * n3次
计算
,
由于输入层和最终输出层结点数量(n1和n3)是确定的,所以可以视为常量,中间的隐藏层n2可以由自己设定。
所以对一个样本的前馈
计算
时间
a = tf.constant([1,2,3,1,1])
b = tf.constant([0,1,3,4,5])
c = tf.where(tf.greater(a,b),a,b) #若 a > b,返回a对应位置的元素,否则返回b对应位置的元素
print("c:",c)
UserWarning:Named tensors and all their associated APIs are an experimental feature...