在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,因此将无法进行学习。 你能告诉我为什么吗? 谢谢。