gpt4 book ai didi

python - 如何改变随机数生成器在列表中移动时的概率?

转载 作者:行者123 更新时间:2023-12-04 01:11:26 24 4
gpt4 key购买 nike

我正在从事一个业余项目,该项目涉及使用 PyTorch 随机生成神经网络。问题是如果输入层和输出层变化太大,随机生成隐藏层的大小是低效的。所以我必须在隐藏层到达输出层时“缩放”它们的大小,同时保持它的随机性部分。

假设我有两个数字(1 和 20),我想使用随机数生成器生成一个列表,该生成器会从 1 到 20 之间的数字范围内进行选择。但我也想改变数字出现的概率选择 as 它添加到该列表。

所以如果它已经添加了 15 个数字,那么第 16 个数字是数字 16 的概率比它是数字​​ 1 的概率要大得多-说话 - 但如果代码将第一个数字添加到列表中,那么它是 1 的概率要大得多。

myList = generateRandList(1, 20)

print(myList)

[2, 2, 3, 4, 6, 3, 7, 6, 9, 10, 12, 11, 13, 12, 15, 16, 18, 16, 19, 20]

我正在使用 numpy.random.choice() 并且它确实改变了从列表中选择数字的概率,但不是随着它的移动通过列表。

最佳答案

您想使用 triangular distribution其中模式是最高边界,这将是一个线性分布,其中 N 具有最高概率,0 具有最低概率:

import random
[int(random.triangular(1,n,n)) for n in range(1, 20)]

按照 T 先生的建议使用 numpy:

import numpy as np
gen = np.random.default_rng()
np.fromiter((int(gen.triangular(1, n, n)) for n in range(2,20)), dtype=np.uint64)

Numpy 执行的检查更加密集,我不得不对下限进行一些修改。

关于python - 如何改变随机数生成器在列表中移动时的概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64733485/

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