训练过程中神经网络权值子集的确定

2024-05-08 12:06:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在考虑创建一个定制的神经网络。基本结构与通常相同,但我想截断层之间的连接。例如,如果我构建了一个具有两个隐藏层的网络,我希望删除一些权重并保留其他权重,如下所示:

enter image description here

这不是传统的{}(以避免过度装配),因为应指定并固定剩余重量(连接)

python中有什么方法可以做到这一点吗?Tensorflow、pytorch、theano或任何其他模块


Tags: 模块方法网络tensorflow神经网络pytorchtheano传统
1条回答
网友
1楼 · 发布于 2024-05-08 12:06:46

是的,你可以在tensorflow中这样做

在tensorflow代码中会有这样的层:

m = tf.Variable( [width,height] , dtype=tf.float32  ))
b = tf.Variable( [height] , dtype=tf.float32  ))
h = tf.sigmoid( tf.matmul( x,m ) + b )

你想要的是一些新的矩阵,让我们称之为kill的k。它将杀死特定的神经连接。神经连接在m中定义。这将是您的新配置

k = tf.Constant( kill_matrix , dtype=tf.float32 )
m = tf.Variable( [width,height] , dtype=tf.float32  )
b = tf.Variable( [height] , dtype=tf.float32  )
h = tf.sigmoid( tf.matmul( x, tf.multiply(m,k) ) + b )

你的kill_矩阵是由1和0组成的矩阵。为每个你想保持的神经连接插入1,为每个你想杀死的神经连接插入0

相关问题 更多 >