gpt4 book ai didi

Python初学者,了解一些代码

转载 作者:太空狗 更新时间:2023-10-29 20:53:39 25 4
gpt4 key购买 nike

这是我试图理解的神经网络神经元的 Python 表示

class Network(object):

def __init__(self, sizes):
self.num_layers = len(sizes)
self.sizes = sizes
self.biases = [np.random.randn(y, 1) for y in sizes[1:]]
self.weights = [np.random.randn(y, x)
for x, y in zip(sizes[:-1], sizes[1:])]

这是我目前的理解:

  • self.num_layers = len(sizes): 返回 sizes 中的项目数
  • self.sizes = sizes:将自身实例大小分配给函数参数大小
  • self.biases = sizes:根据标准正态分布生成元素数组(由np.random.randn(y, 1)表示)

什么是下行计算?

self.weights = [np.random.randn(y, x)
for x, y in zip(sizes[:-1], sizes[1:])]

我是 Python 新手。这段代码是否可以在 Python shell 中使用,以便我可以通过分别调用每一行来更好地理解?

最佳答案

zip() function将每个可迭代的元素配对; zip('foo', 'bar') 例如,将生成 [('f', 'b'), ('o', 'a'), ('o' , 'r')];两个字符串中的每个元素都配对成三个新元组。

zip(sizes[:-1], sizes[1:]) 然后,在 sizes 序列中创建元素对,next 元素,因为您将除最后一个 (sizes[:-1]) 之外的所有元素与除第一个 (sizes[1:]) 之外的所有元素配对。这会将第一个和第二个元素配对在一起,然后是第二个和第三个,依此类推,一直到最后两个元素。

使用 list comprehension 为每一对生成一个随机样本.因此,对于每个 x, y 对,都会生成一个新的二维 numpy 矩阵,其中随机值分布在 y 行和 x 列上。

请注意,biases 值仅使用 sizes[1:] 来生成 y-by-1 矩阵对于每个这样的尺寸。

这些概念的快速演示:

>>> zip('foo', 'bar')
[('f', 'b'), ('o', 'a'), ('o', 'r')]
>>> zip('foo', 'bar', 'baz') # you can add more sequences
[('f', 'b', 'b'), ('o', 'a', 'a'), ('o', 'r', 'z')]
>>> sizes = [5, 12, 18, 23, 42]
>>> zip(sizes[:-1], sizes[1:]) # a sliding window of pairs
[(5, 12), (12, 18), (18, 23), (23, 42)]
# 0, 1 .. 1, 2 .. 2, 3 .. 3, 4 element indices into sizes
>>>

关于Python初学者,了解一些代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com