Сообщите о потере тренировки для определенной выборки c в наборе данных поезда, а не в среднем за тренировочный процесс (TensorFlow) - PullRequest
0 голосов
/ 11 марта 2020

Я тренирую модель LSTM, используя TensorFlow. Мы знаем, что в процессе обучения составляется отчет для loss и val_loss для каждой эпохи, которые являются средними потерями для поездных и тестовых наборов данных. Я намерен проследить за потерей определенного образца c в наборе данных поезда (конкретная дата c). Также следует отметить, что я перетасовываю данные поезда в функции fit.

1 Ответ

1 голос
/ 14 марта 2020

Вот код для отслеживания потерь для одного образца:

import tensorflow as tf 
import numpy as np 
import keras 

x = tf.Variable(initial_value=np.ndarray(shape=(10, 10), dtype=np.float32)) # your sample input 
y =np.random.randint(0, 9, size=(10, )) # your sample label
y_labels = keras.utils.to_categorical(y, 10)

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=x, logits=y_labels)) # loss operation for that particular sample 
tf.summary.scalar('loss', loss) #logging loss op in summary 

print('loss op', loss)
merge = tf.summary.merge_all()
saver = tf.train.Saver()

with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer())
    loss_val, merge_val = sess.run([loss, merge]) # no need to pass any feed_dict, loss value calculated is specific to that sample 
    print('loss val', loss_val)
    # merge val could be put in to tf summary writer 
...