Tricks (四十一)—— 一 list 两用

来源:互联网 发布:u盘格式化数据受保护 编辑:程序博客网 时间:2024/04/20 00:57

考虑一个 3-5-1 的神经网络拓扑结构,让你给出整个网络结构可能达到的权值的数目,或者层间权值矩阵的 shape,手工计算即是:(3+1)*5+(5+1)*1=26, 0-1: W_{5*4}, 1-2: W_{1*6}。此时我们需遍历的就不再单单是单点的 list 元素,

一种解决方案:

topo = [3, 5, 1]num_weights = sum([topo[i+1]*(1+topo[i]) for i in range(len(topo)-1)])import numpy as npW = [np.random.randn(topo[i+1], topo[i]+1) for i in range(len(topo)-1)]

一 list 两用,一种相对优雅的方式是:

num_weights = [j*(i+1) for i, j in zip(topo[:-1], topo[1:])]W = [np.random.randn(j, i+1) for i, j in zip(topo[:-1], topo[1:])]
0 0
原创粉丝点击