Расчет потерь в dcgan последующей деятельности - PullRequest
0 голосов
/ 25 сентября 2019

Это продолжение поста: Расчет потерь в dcgan , который получил выбранный ответ, но мне он не подходит.

Подводя итог: В учебник по тензорному потоку о dcgan они определили функцию потерь следующим образом:

def generator_loss(generated_output):
    return tf.losses.sigmoid_cross_entropy(tf.ones_like(generated_output), generated_output)

Вопрос в том, почему они используют "tf.ones_like (generate_output)".Ответ, данный Дэвидом Парксом на упомянутый предыдущий пост, был таков:

Выход дискриминаторов находится в диапазоне [0, 1]

Я думал, что этослучай, но затем я заметил, что дискриминатор, на самом деле, не возвращает значение между 0 и 1.

Определение дискриминатора заканчивается на:

model.add(tf.keras.layers.Dense(1))

, а не на:

model.add(tf.keras.layers.Dense(1))
model.add(tf.keras.layers.Activation("sigmoid"))

, как я и ожидал.

Вывод дискриминатора для 4 сгенерированных и 4 реальных изображений (после нескольких эпох) на самом деле выглядит так:

GENERATED:  tf.Tensor(
[[-1.5261561 ]
 [-2.6044064 ]
 [-0.55789095]
 [-1.0553275 ]], shape=(4, 1), dtype=float32)
REAL:  tf.Tensor(
[[ 2.048546 ]
 [ 2.900073 ]
 [-2.3295398]
 [-1.098418 ]], shape=(4, 1), dtype=float32)

Я думал, что эта конструкция дискриминатора может быть ошибкой, и тот факт, что он все еще работает, возможно, случайность.Поэтому я попытался добавить слой активации сигмоида к дискриминатору, но это серьезно ухудшило производительность.Его вывод выглядит примерно так после нескольких эпох:

GENERATED:  tf.Tensor(
[[1.5318394e-05]
 [5.3527951e-04]
 [3.1036139e-04]
 [6.9439411e-06]], shape=(4, 1), dtype=float32)
REAL:  tf.Tensor(
[[1.1146069e-05]
 [1.4841557e-05]
 [5.9306622e-06]
 [5.2452087e-06]], shape=(4, 1), dtype=float32)

Так что теперь я полностью потерян.Есть ли другое объяснение?Я пытаюсь переделать сценарий для создания других (цветных) изображений, но он не будет учиться (он только генерирует сумасшедший шум), и я подозреваю, что это может быть одной из причин.

...