繁体   English   中英

如何在输入层和指定的第一个隐藏层之间具有固定对应关系的情况下实现神经网络模型?

[英]How to implement a neural network model, with fixed correspondence between the input layer and the first hidden layer specified?

我想实现一个前馈神经网络,它与通常的神经网络的唯一区别在于,我将手动控制输入特征和第一个隐藏层神经元之间的对应关系。 例如,在输入层中,我具有特征f1,f2,...,f100,在第一隐藏层中,我具有h1,h2,...,h10。 我希望将前10个特征f1-f10馈入h1,并将f11-f20馈入h2,依此类推。

在图形上,不同于通常的深度学习技术辍学(即通过为特定层随机忽略隐藏节点来防止过度拟合)的方法,这里我要的是静态(固定)忽略输入和隐藏之间的某些隐藏边缘

我正在使用Tensorflow实施它,但没有找到指定此要求的方法。 我也研究了pytourch和theano等其他平台,但仍然没有答案。 任何使用Python实现的想法都将不胜感激!

请阅读以下代码段:

#!/usr/bin/env python3

import tensorflow as tf

features = tf.constant([1, 2, 3, 4])

hidden_1 = tf.constant([1, 1])
hidden_2 = tf.constant([2, 2])

res1 = hidden_1 * tf.slice(features, [0], [2])
res2 = hidden_2 * tf.slice(features, [2], [2])

final = tf.concat([res1, res2], axis=0)

sess = tf.InteractiveSession()
print(sess.run(final))

假设要素是您的输入要素 ,使用tf.slice将其拆分为单独的切片,并且每个切片在该点处都是单独的图形(在此示例中,它们与hidden_​​1和hidden_​​2相乘),最后将它们与tf.concat

结果为[1、2、6、8],因为[1,2]乘以[1,1],而[2,3]乘以[2,2]。

下面是生成的图: 在此处输入图片说明

我最终通过将与第一层相对应的权重矩阵的某些块强制为恒定零来实现此要求。 也就是说,我不只是定义w1 = tf.Variables(tf.random_normal([100,10])) ,而是定义了10个10 x 1权重向量,并将它们与零连接起来,以形成块对角矩阵作为最终w1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM