天道酬勤,学无止境

权重

如何知道一个网络中每个权重的重要性

如图所示B可以看做是网络的权重 ,A是输入 , C是输出 , 要想知道网络的权重 , 只需将 , B中的其中一个权重设置为0 , 如果权重的改变没有对结果造成很大的影响 , 说明该权重没有影响 , 神经网络是矩阵 , 所以必须是完整的要想删除,只能一行一行或者一列一列删除 , 所以只有当你判断,完整行或者是整列的时候 , 才可以知道这个行或者列能不能被删除 , 一般的卷积网络 , 的行和列指的是 , 输入 和 输出 在网络前向传播的时候,将输入和输出作为可遍历对象 计算出B中某个权重为0的时候 和原始输出的差异x 若整个B中的某一列或者某一行,这个差值都很小 就可以直接来源:https://blog.51cto.com/u_15177056/2726078

2021-05-14 04:34:55    分类:博客    权重

提高逐个权重剪枝时候权重重要性计算速度的关键代码

from multiprocessing import Queueimport torch.multiprocessing as mpdef producer(que): for product in ('Orange', 'Apple', ''): print('put product: %s to queue' % product) que.put(product)if __name__ == '__main__': que = Queue(10) num_processes = 2 processes = [] for rank in range(num_processes): p = mp.Process(target=producer,args=(que,)) p.start() processes.append(p) for _ in ('Orange', 'Apple', '')*num_processes: print(que.get()) for p in processes: p.join() 来源:https://blog.51cto.com/u_15177056/2726076

2021-05-14 04:34:51    分类:博客    权重

神经网络设计与分析之如何知道权重的利用率

多次训练可以知道无论怎么训练最后得到的权重的值都是不一样的 但是分布的范围一样的这也就是说AB=CD,只要等式成立即可,这个可以从图中看出两个层无论多少次从0开始训练,都会得到最后这个图 也就是一个层的范围,和另一个层的范围永远都不会不变。只要网络结构固定和数据集固定,这lin1*lin2等于一个值(最后的函数)这也证明了前面的两个分析 观点是对的 和傅里叶说的一致性 总结的公式一致性同时还能说明只要数据集固定,每个层的权重分布的范围是固定的 通过公式也可以看出这一个点 x [ 激活函数(A1)B1+…+激活函数(An)Bn]=y 也就是说只要某一层的权重值包括(A,B,C 。。。)无论顺序如何都可以得到结果一样的y 但是一旦确定了位置就不能变,但是另一次从0开始,就可以变化。(这其实正式矩阵乘法的体现),最近看到一个文章中说卡车司机的小脑神经细胞大于地铁司机的小脑神经细胞,也就是说神经细胞的大小决定了,自主控制的能力(卡车司机自己控制,地铁司机自动控制) 从图中可以看出每个层的范围无论几次从0开始训练,每个层的范围都是一致的。所以说 神经网络的每个节点不能代表来源:https://blog.51cto.com/u_15177056/2725653

2021-05-13 21:43:34    分类:博客    神经网络设计   权重