小编use*_*868的帖子

随机将张量中的一些元素设置为零(计算时间短)

我有一个形状张量(3072,1000),代表神经网络中的权重。我想要:

  1. 随机将其 60% 的元素设置为零。
  2. 更新权重后,保持 60% 的元素等于 0,但同样是随机的,即与之前的元素不同。

注意:我的网络不是使用反向传播算法的通常的人工神经网络,而是大脑中神经元的生物物理模型,因此我使用特殊的权重更新规则。因此,我认为pytorch中的现成函数(如果有的话)可能没有帮助。

我尝试了以下代码,它可以工作,但需要很长时间,因为每次更新权重张量后,我都必须运行该代码以再次将权重张量设置为 60% 零

row_indices = np.random.choice(np.size(mytensor.weight, 0),
                       replace=False,size=int(np.size(mytensor.weight, 0)* 0.6))
column_indices = np.random.choice(np. size(mytensor.weight, 1),
                       replace=False, size=int(np. size(mytensor.weight, 1) * 0.6))
for r in row_indices:
    for c in column_indices:
        (mytensor.weight)[r][c] = 0
Run Code Online (Sandbox Code Playgroud)

python python-3.x pytorch dropout

5
推荐指数
1
解决办法
2406
查看次数

如何计算cifar10数据的平均值和标准差

Pytorch 使用以下值作为 cifar10 数据的平均值和标准差:transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))

我需要理解计算背后的概念,因为这些数据是 3 通道图像,我不明白什么是相加的,什么是除什么的等等。另外,如果有人可以分享计算平均值和标准差的代码,将非常感激。

pytorch torchvision

4
推荐指数
2
解决办法
8234
查看次数

标签 统计

pytorch ×2

dropout ×1

python ×1

python-3.x ×1

torchvision ×1