В тензорном потоке 2 выборки и назначения больше не поддерживаются. Доступ к пакетным результатам в tf 1.x в пользовательском обратном вызове keras возможен после ответа, предоставленного в https://stackoverflow.com/a/47081613/9949099 В tf.keras и tf 2.0 при активных попытках выборки не поддерживаются, поэтому решение, предоставленное для tf 1.xне работает. Есть ли способ получить y_true и y_pred внутри обратного вызова on_batch_end пользовательского обратного вызова tf.keras?
Я пытался изменить ответ, работая в tf.1, как показано ниже:
from tf.keras.callbacks import Callback
class CollectOutputAndTarget(Callback):
def __init__(self):
super(CollectOutputAndTarget, self).__init__()
self.targets = [] # collect y_true batches
self.outputs = [] # collect y_pred batches
def on_batch_end(self, batch, logs=None):
# evaluate the variables and save them into lists
# How to change the following 2 lines so that in tf.2 eager execution collect the batch results
self.targets.append(K.eval(self.model._targets[0]))
self.outputs.append(K.eval(self.model.outputs[0]))
Когда я запускаю код выше, код не работает, доступ к данным в self.model._targets [0]или self.model.outputs [0], по-видимому, невозможно