def _assemble_graph(self):
self._create_placeholders()
tf.set_random_seed(self._random_seed + 1)
A_var = tf.Variable(
initial_value=tf.random_uniform(
shape=[self._emb_dim, self._vocab_dim],
minval=-1, maxval=1, seed=(self._random_seed + 2)
)
)
B_var = tf.Variable(
initial_value=tf.random_uniform(
shape=[self._emb_dim, self._vocab_dim],
minval=-1, maxval=1, seed=(self._random_seed + 3)
)
)
self.global_step = tf.Variable(0, dtype=tf.int32, trainable=False, name='global_step')
cont_mult = tf.transpose(tf.matmul(A_var, tf.transpose(self.context_batch)))
resp_mult = tf.matmul(B_var, tf.transpose(self.response_batch))
neg_resp_mult = tf.matmul(B_var, tf.transpose(self.neg_response_batch))
pos_raw_f = tf.diag_part(tf.matmul(cont_mult, resp_mult))
neg_raw_f = tf.diag_part(tf.matmul(cont_mult, neg_resp_mult))
self.f_pos = pos_raw_f
self.f_neg = neg_raw_f
self.loss = tf.reduce_sum(tf.nn.relu(self.f_neg - self.f_pos + self._margin))
评论列表
文章目录