首页 文章

在训练期间修复神经网络中的子集权重

提问于
浏览
1

最近,我正在考虑创建一个定制的神经网络 . 基本结构与通常相同,而我想截断层之间的连接 . 例如,如果我构建一个有两个隐藏层的网络,我想删除一些权重并保留其他权重,如下图所示:Structure of customized neural networks对不起,我不能在这里嵌入图片,只能链接 .

这不是躲避以避免过度拟合 . 实际上,指定并固定了剩余的重量(连接) . 有意设计相应的结构 .

在python中有什么方法可以做到吗? Tensorflow,pytorch,theano或任何其他模块?

1 回答

  • 0

    是的,你可以在张量流中做到这一点 .

    你的tensorflow代码中会有一些像这样的层:

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

    你想要的是一些新的矩阵,我们称之为 k for kill . 它将杀死特定的神经连接 . 神经连接在 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_matrix是一个1和0的矩阵 . 为每个想要保留的神经连接插入1,为每个要杀死的神经连接插入0 .

相关问题