在DQN中,预测值为负

时间:2018-12-06 10:44:51

标签: reinforcement-learning

在DQN学习代码中,预测值具有负值,并且无法执行学习。 输入大小= 2500,输出大小= 2500 网络结构是这样的。 loss_bias是一个矩阵。这是一个队伍,其中1可以走,而0则可以不走。

UNIQUE constraint failed: documents_csv_file8.id

学习每10集发生一次。

 def _build_network(self, h_size=10, l_rate=0.3):
    with tf.variable_scope(self.net_name):

        self._X = tf.placeholder(
            tf.float32, [None, self.input_size], name="input_x")

        W1 = tf.get_variable("W1", shape=[self.input_size, h_size],
                             initializer=tf.contrib.layers.xavier_initializer())

        layer1 = tf.nn.relu(tf.matmul(self._X, W1))

        W2 = tf.get_variable("W2", shape=[h_size, self.output_size],
                             initializer=tf.contrib.layers.xavier_initializer())

        self._Qpred = tf.matmul(layer1, W2)

    self._Y = tf.placeholder(shape=[None, self.output_size], dtype=tf.float32)

    loss_bias = self.adj_mat
    loss_bias = np.reshape(loss_bias, [1, self.input_size])

    loss_data = self._Y - self._Qpred

    loss_data = loss_data * loss_bias

    self._loss = tf.reduce_mean(tf.square(loss_data))

    self._train = tf.train.AdamOptimizer(
        learning_rate=l_rate).minimize(self._loss)

如果在设置后执行此操作,则预测值将为负,而动作值将为0,因此将无法进行学习。 你能告诉我为什么吗? 谢谢。

0 个答案:

没有答案