为什么我的自定义神经网络不起作用并且具有较高的MAE

时间:2019-03-26 12:52:34

标签: tensorflow neural-network deep-learning regression

这是使用DNN估算收入的回归问题。
该网络如下图所示: enter image description here

The network struct picture

右分支是一个完全连接的神经网络,其结果意味着有效。
左分支是每个样本的已知变量,表示在线时间。
目前,我只想学习网络的正确分支。网络代码如下:

def neural_net(x, hours):
    layer_1 = tf.nn.relu(tf.add(tf.matmul(x, weights_h1), biases_h1))
    layer_2 = tf.nn.relu(tf.add(tf.matmul(layer_1, weights_h2), biases_h2))
    efficient_out_layer = tf.nn.relu(tf.add(tf.matmul(layer_2, weights_out), biases_out))
    delta_efficient = tf.add(efficient_out_layer, 1)
    delta_online_hours = tf.add(hours, 1)
    out_layer = tf.multiply(delta_online_hours, delta_efficient)
    return out_layer    

但是湄太高了。 当我不使用左分支,而仅使用dnn估计结果时,mae较低。

我想知道我的网络出了什么问题,为什么左边的分支会把右边分支的训练有素的网络广为传播,所以谢谢。

1 个答案:

答案 0 :(得分:0)

如果无法弄清楚Canada USA Canada Canada Canada Mexico .......... 到底是什么意思,将x乘以正确的网络的输出是没有意义的。变量x可能是示例的功能。如果是这样,最好将其与其他功能一起输入到正确的网络中,而不是简单地将其乘以输出。