|
6 | 6 |
|
7 | 7 |
|
8 | 8 | library(keras) |
9 | | -use_implementation("tensorflow") |
10 | | -use_session_with_seed(7777, disable_gpu = FALSE, disable_parallel_cpu = FALSE) |
11 | 9 | library(tensorflow) |
12 | | -tfe_enable_eager_execution(device_policy = "silent") |
13 | | - |
14 | 10 | library(tfdatasets) |
15 | 11 |
|
16 | | - |
17 | 12 | mnist <- dataset_mnist() |
18 | 13 | c(train_images, train_labels) %<-% mnist$train |
19 | 14 |
|
@@ -132,25 +127,20 @@ discriminator <- |
132 | 127 | generator <- generator() |
133 | 128 | discriminator <- discriminator() |
134 | 129 |
|
135 | | -generator$call = tf$contrib$eager$defun(generator$call) |
136 | | -discriminator$call = tf$contrib$eager$defun(discriminator$call) |
| 130 | +cross_entropy = tf$keras$losses$BinaryCrossentropy(from_logits = TRUE) |
137 | 131 |
|
138 | 132 | discriminator_loss <- function(real_output, generated_output) { |
139 | | - real_loss <- |
140 | | - tf$losses$sigmoid_cross_entropy(multi_class_labels = k_ones_like(real_output), |
141 | | - logits = real_output) |
142 | | - generated_loss <- |
143 | | - tf$losses$sigmoid_cross_entropy(multi_class_labels = k_zeros_like(generated_output), |
144 | | - logits = generated_output) |
| 133 | + real_loss <- cross_entropy(k_ones_like(real_output), real_output) |
| 134 | + generated_loss <- cross_entropy(k_zeros_like(generated_output), generated_output) |
145 | 135 | real_loss + generated_loss |
146 | 136 | } |
147 | 137 |
|
148 | 138 | generator_loss <- function(generated_output) { |
149 | | - tf$losses$sigmoid_cross_entropy(tf$ones_like(generated_output), generated_output) |
| 139 | + cross_entropy(tf$ones_like(generated_output), generated_output) |
150 | 140 | } |
151 | 141 |
|
152 | | -discriminator_optimizer <- tf$train$AdamOptimizer(1e-4) |
153 | | -generator_optimizer <- tf$train$AdamOptimizer(1e-4) |
| 142 | +discriminator_optimizer <- tf$optimizers$Adam(1e-4) |
| 143 | +generator_optimizer <- tf$optimizers$Adam(1e-4) |
154 | 144 |
|
155 | 145 | num_epochs <- 150 |
156 | 146 | noise_dim <- 100 |
|
0 commit comments