这两行是什么意思?
1. np.random.seed(1)
2. syn0 = 2*np.random.random((3,4))-1
我理解第一行是随机生成数字的起点,即使它们具有相同的起点,它们会产生相同的序列吗?
第二行是权重矩阵3x4的生成。 “1”与种子中的“1”有关吗?我实际上并不明白为什么有2 *以及为什么它们是random.random
我希望权重之和等于1,以便达到目的?
答案 0 :(得分:1)
由于np.random
是PRNG,因此可以对其进行播种,并手动设置其种子以获得可重现的结果。现在,它被播种为1,并且在将种子重置为1后,您将始终获得相同的结果。
In [4]: np.random.seed?
Docstring:
seed(seed=None)
Seed the generator.
This method is called when `RandomState` is initialized. It can be
called again to re-seed the generator. For details, see `RandomState`.
Parameters
----------
seed : int or array_like, optional
Seed for `RandomState`.
Must be convertible to 32 bit unsigned integers.
然后np.random.random()
构造一个随机值矩阵:
In [5]: np.random.random?
Docstring:
random_sample(size=None)
Return random floats in the half-open interval [0.0, 1.0).
其余的通常是numpy算术。对于矩阵A - 1
,A
表示从A
逐个元素地减去1。 2 * A
是正常的标量操作。