Rok*_*ner 3 python arrays for-loop numpy neural-network
我一直在学习人工神经网络,但我正在阅读的书中有Python的例子.问题是我从未用Python编写过这些代码行太难以理解:
sizes = [3,2,4]
self.weights = [np.random.randn(y, x)
for x, y in zip(sizes[:-1], sizes[1:])]
Run Code Online (Sandbox Code Playgroud)
我读了一些关于它的东西,发现该randn()函数返回一个数组,其中y元素和x维度填充了0到1之间的随机数.zip()将两个数组连接成一个.sizes[:-1]返回最后一个元素并sizes[1:]返回没有第一个元素的数组.
但是有了这些,我仍然无法向自己解释这会产生什么.
sizes[:-1]将返回子列表[3,2](即除最后一个之外的所有元素).
sizes[1:]将返回子列表[2,4](即除第一个之外的所有元素).
zip([a,b], [c,d])给[(a,c), (b,d)].
所以压缩上面的两个列表给你 [(3,2), (2,4)]
权重的构建是列表理解.因此这段代码相当于
weights = []
for x,y in [(3,2), (2,4)]:
weights.append(np.random.randn(y, x))
Run Code Online (Sandbox Code Playgroud)
所以最终的结果将是相同的
[ np.random.randn(2,3),
np.random.randn(4,2) ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |