Почему потери оцениваются после нескольких эпох в sampled_softmax_loss - PullRequest
1 голос
/ 10 октября 2019

Я использую Tensorflow для обучения модели пропуска грамм word2vec. Граф вычислений находится в следующем коде:

# training data
self.dataset = tf.data.experimental.make_csv_dataset(file_name, batch_size=self.batch_size, column_names=['input', 'output'], header=False, num_epochs=self.epochs)
self.datum = self.dataset.make_one_shot_iterator().get_next()
self.inputs, self.labels = self.datum['input'], self.datum['output']

# embedding layer
self.embedding_g = tf.Variable(tf.random_uniform((self.n_vocab, self.n_embedding), -1, 1))
self.embed = tf.nn.embedding_lookup(self.embedding_g, self.inputs)

# softmax layer
self.softmax_w_g = tf.Variable(tf.truncated_normal((self.n_context, self.n_embedding)))
self.softmax_b_g = tf.Variable(tf.zeros(self.n_context))

# Calculate the loss using negative sampling
self.labels = tf.reshape(self.labels, [-1, 1])
self.loss = tf.nn.sampled_softmax_loss(
                weights=self.softmax_w_g,
                biases=self.softmax_b_g,
                labels=self.labels,
                inputs=self.embed,
                num_sampled=self.n_sampled,
                num_classes=self.n_context)

self.cost = tf.reduce_mean(self.loss)
self.optimizer = tf.train.AdamOptimizer().minimize(self.cost)

Но после 25 эпох значения потерь начинают увеличиваться. Есть ли причина для этого? loss in each epochs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...