每个输入神经元具有一个向量的Tensorflow自动编码器

时间:2017-04-06 10:37:06

标签: tensorflow neural-network deep-learning autoencoder anomaly-detection

我是张量流和深度神经网络的新手。 我目前正尝试使用自动编码器对轨迹进行异常检测,并且我的模型存在问题。

我无法获得正确的体重矩阵/不确定如何做到这一点。

这是我的模特:

  • 我的编码器的每个输入神经元接收具有4个特征的向量(该向量对应于作为我的轨迹的一部分的观察)。
  • 输入神经元的数量对应于观察次数(即289)。
  • 我总共有336个轨迹与我的批次
  • 相对应

因此我的输入数据形状类似于(336,289,4)

  • 我有两个隐藏的层;在每一个上我们将先前神经元的数量除以2,因此对于 h1 ,我们有 144个神经元 h2 72个神经元

对于我的体重,我有:

weights = {
    'encoder_h1': tf.Variable(tf.random_normal([336, n_hidden_1, 289])),
    'encoder_h2': tf.Variable(tf.random_normal([336, n_hidden_2, n_hidden_1])),
    'decoder_h1': tf.Variable(tf.random_normal([336, n_hidden_1, n_hidden_2])),
    'decoder_h2': tf.Variable(tf.random_normal([336, n_input, n_hidden_1 ])),
}

我的激活功能是一个像sigmoid

tf.nn.sigmoid(tf.add(tf.matmul(weights['encoder_h1'],x),
                                   biases['encoder_b1'])

但是我担心这会通过轨迹给出一个矩阵矩阵,或者我想要的是我所有轨迹的权重矩阵,它应该是一个二维张量,但我不知道如何进行。

我尝试过很多东西,例如从我的重量形状中移除336部分但是tensorflow说它不可能在3d和2d张量上做matmul。

你知道怎么做吗?

提前感谢您的帮助

0 个答案:

没有答案