use*_*868 5 python python-3.x pytorch dropout
我有一个形状张量(3072,1000)
,代表神经网络中的权重。我想要:
注意:我的网络不是使用反向传播算法的通常的人工神经网络,而是大脑中神经元的生物物理模型,因此我使用特殊的权重更新规则。因此,我认为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)
您可以使用该dropout
函数来实现此目的:
import torch.nn.functional as F
my_tensor.weight = F.dropout(my_tensor.weight, p=0.6)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2406 次 |
最近记录: |