{
  "_id": "6ad0b683b0a1b4b4099d735d",
  "Package": "RGAN",
  "Title": "Generative Adversarial Nets (GAN) in R",
  "Version": "0.2.2",
  "Authors@R": "person(given = \"Marcel\",\nfamily = \"Neunhoeffer\",\nrole = c(\"aut\", \"cre\"),\nemail = \"marcel.neunhoeffer@gmail.com\",\ncomment = c(ORCID = \"0000-0002-9137-5785\"))",
  "Description": "An easy way to get started with Generative Adversarial\nNets (GAN) in R. The GAN algorithm was initially described by\nGoodfellow et al. 2014\n<https://proceedings.neurips.cc/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf>.\nA GAN can be used to learn the joint distribution of complex\ndata by comparison. A GAN consists of two neural networks a\nGenerator and a Discriminator, where the two neural networks\nplay an adversarial minimax game. Built-in GAN models make the\ntraining of GANs in R possible in one line and make it easy to\nexperiment with different design choices (e.g. different\nnetwork architectures, value functions, optimizers). The\nbuilt-in GAN models work with tabular data (e.g. to produce\nsynthetic data) and image data. Methods to post-process the\noutput of GAN models to enhance the quality of samples are\navailable.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/mneunhoe/RGAN",
  "BugReports": "https://github.com/mneunhoe/RGAN/issues",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Repository": "https://mneunhoe.r-universe.dev",
  "Date/Publication": "2026-09-15 13:27:53 UTC",
  "RemoteUrl": "https://github.com/mneunhoe/rgan",
  "RemoteRef": "HEAD",
  "RemoteSha": "fe64f21fd23b52de03b718277de8136adcaf2616",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-15 11:14:40 UTC",
    "User": "root"
  },
  "Author": "Marcel Neunhoeffer [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-9137-5785>)",
  "Maintainer": "Marcel Neunhoeffer <marcel.neunhoeffer@gmail.com>",
  "_user": "mneunhoe",
  "_type": "src",
  "_file": "RGAN_0.2.2.tar.gz",
  "_fileid": "https://r2.ropensci.org/be2c138a1db3d2731e938fa7f7e171283262896141de147056788ff033762f7e",
  "_filesize": 450762,
  "_sha256": "be2c138a1db3d2731e938fa7f7e171283262896141de147056788ff033762f7e",
  "_expires": "2027-01-23T11:18:25.000Z",
  "_created": "2026-10-15T11:14:40.000Z",
  "_published": "2026-10-15T11:18:27.848Z",
  "_buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208",
  "_status": "failure",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 116391854583,
      "time": 184,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "11967907803"
    },
    {
      "job": 116391854513,
      "time": 151,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "11968342648"
    },
    {
      "job": 116391854433,
      "time": 167,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "11967802833"
    },
    {
      "job": 116391854545,
      "time": 163,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "11967828011"
    },
    {
      "job": 116390362340,
      "time": 221,
      "config": "source",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "11967567949"
    },
    {
      "job": 116391854481,
      "time": 95,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11967538269"
    },
    {
      "job": 116391854741,
      "time": 153,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "11967238774"
    },
    {
      "job": 116391854432,
      "time": 127,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "11967737991"
    },
    {
      "job": 116391854443,
      "time": 163,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "11967932757"
    }
  ],
  "_upstream": "https://github.com/mneunhoe/rgan",
  "_commit": {
    "id": "fe64f21fd23b52de03b718277de8136adcaf2616",
    "author": "Marcel Neunhoeffer <mneunhoe@mail.uni-mannheim.de>",
    "committer": "Marcel Neunhoeffer <mneunhoe@mail.uni-mannheim.de>",
    "message": "Fix the RDP accountant and the mechanism/accountant mismatch\n\nTwo independent defects, both affecting any 0.2.0 or 0.2.1 run.\n\nThe mechanism released a quantity the privacy analysis does not cover.\ndp_discriminator_step() divided the noisy gradient sum by the realised\nPoisson batch size. The Sampled Gaussian Mechanism bound covers the noisy\nsum, and dividing it by a constant is free post-processing, but the realised\nbatch size is a data-dependent count -- under add/remove-one adjacency a\ndataset with one more record can yield one more sampled record -- and it set\nboth the location and the scale of what was released. The divisor is now the\nexpected batch size, sampling_rate * n_samples, which is what Opacus and\nTensorFlow Privacy use. An empty Poisson draw also returned early without\ntaking an optimizer step, making \"no step\" an observable event of probability\n(1 - q)^n; the mechanism now releases noise and steps, via the new\ndp_noise_only_step().\n\nThe accountant understated epsilon by up to four orders of magnitude in the\nregime DP-SGD normally runs in: for a sampling rate below 0.01 the previous\nhand-written two-branch formula returned q^2 * alpha / (2 sigma^2), and the\nbound jumped by a factor of 10,000 across the branch boundary at q = 0.01.\nThe RDP of the Sampled Gaussian Mechanism is now the bound of Mironov,\nTalwar and Zhang (2019), evaluated in log space by the internal rdp_sgm().\nget_epsilon() uses the Canonne, Kamath and Steinke (2020) conversion, the\norder grid is fine between 1 and 11 and configurable through `orders`, and\nfractional orders use a series expansion (log_moment_sgm_frac()) that stops\non a bound for its whole remaining tail rather than on the size of the last\nterm. compute_max_steps() inherits the corrected accountant, so training now\nstops at the right step. calibrate_noise_multiplier() is one-sided: the\nmultiplier it returns always satisfies epsilon <= target_epsilon, and it\nerrors rather than silently returning max_noise when the target ca",
    "time": 1789478873
  },
  "_maintainer": {
    "name": "Marcel Neunhoeffer",
    "email": "marcel.neunhoeffer@gmail.com",
    "orcid": "0000-0002-9137-5785"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "R6",
      "role": "Imports"
    },
    {
      "package": "torch",
      "role": "Imports"
    },
    {
      "package": "viridis",
      "role": "Imports"
    },
    {
      "package": "opendp",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "mneunhoe",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-02",
      "n": 40
    },
    {
      "week": "2026-38",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.2.0",
      "date": "2026-01-09"
    },
    {
      "name": "v0.2.1",
      "date": "2026-09-15"
    },
    {
      "name": "v0.2.2",
      "date": "2026-09-15"
    }
  ],
  "_stars": 19,
  "_userbio": {
    "uuid": 21174641,
    "type": "user",
    "name": "Marcel Neunhoeffer",
    "followers": 35
  },
  "_downloads": {
    "count": 230,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/RGAN"
  },
  "_devurl": "https://github.com/mneunhoe/rgan",
  "_searchresults": 15,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/RGAN.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/mneunhoe/rgan",
  "_realowner": "mneunhoe",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2022-03-29"
    }
  ],
  "_exports": [
    "apply_post_gan_boosting",
    "compute_discriminator_scores",
    "data_transformer",
    "DCGAN_Discriminator",
    "DCGAN_Generator",
    "Discriminator",
    "dp_gan_trainer",
    "expert_sample_synthetic_data",
    "gan_trainer",
    "GAN_update_plot",
    "GAN_update_plot_image",
    "gan_update_step",
    "GAN_value_fct",
    "Generator",
    "gradient_penalty",
    "gumbel_softmax",
    "KLWGAN_value_fct",
    "load_gan",
    "plot_losses",
    "post_gan_boosting",
    "sample_synthetic_data",
    "sample_toydata",
    "save_gan",
    "TabularGenerator",
    "torch_rand_ab",
    "WGAN_value_fct",
    "WGAN_weight_clipper"
  ],
  "_help": [
    {
      "page": "apply_post_gan_boosting",
      "title": "Apply Post-GAN Boosting to a Trained GAN",
      "topics": [
        "apply_post_gan_boosting"
      ]
    },
    {
      "page": "compute_discriminator_scores",
      "title": "Compute Discriminator Scores from Checkpointed Discriminators",
      "topics": [
        "compute_discriminator_scores"
      ]
    },
    {
      "page": "data_transformer",
      "title": "Data Transformer",
      "topics": [
        "data_transformer"
      ]
    },
    {
      "page": "DCGAN_Discriminator",
      "title": "DCGAN Discriminator",
      "topics": [
        "DCGAN_Discriminator"
      ]
    },
    {
      "page": "DCGAN_Generator",
      "title": "DCGAN Generator",
      "topics": [
        "DCGAN_Generator"
      ]
    },
    {
      "page": "Discriminator",
      "title": "Discriminator",
      "topics": [
        "Discriminator"
      ]
    },
    {
      "page": "dp_gan_trainer",
      "title": "dp_gan_trainer",
      "topics": [
        "dp_gan_trainer"
      ]
    },
    {
      "page": "expert_sample_synthetic_data",
      "title": "Sample Synthetic Data with explicit noise input",
      "topics": [
        "expert_sample_synthetic_data"
      ]
    },
    {
      "page": "gan_trainer",
      "title": "gan_trainer",
      "topics": [
        "gan_trainer"
      ]
    },
    {
      "page": "GAN_update_plot",
      "title": "GAN_update_plot",
      "topics": [
        "GAN_update_plot"
      ]
    },
    {
      "page": "GAN_update_plot_image",
      "title": "GAN_update_plot_image",
      "topics": [
        "GAN_update_plot_image"
      ]
    },
    {
      "page": "GAN_update_step",
      "title": "gan_update_step",
      "topics": [
        "gan_update_step"
      ]
    },
    {
      "page": "GAN_value_fct",
      "title": "GAN Value Function",
      "topics": [
        "GAN_value_fct"
      ]
    },
    {
      "page": "Generator",
      "title": "Generator",
      "topics": [
        "Generator"
      ]
    },
    {
      "page": "gradient_penalty",
      "title": "Gradient Penalty for WGAN-GP",
      "topics": [
        "gradient_penalty"
      ]
    },
    {
      "page": "gumbel_softmax",
      "title": "Gumbel-Softmax Sampling",
      "topics": [
        "gumbel_softmax"
      ]
    },
    {
      "page": "kl_fake",
      "title": "KL WGAN loss on fake examples",
      "topics": [
        "kl_fake"
      ]
    },
    {
      "page": "kl_gen",
      "title": "KL WGAN loss for Generator training",
      "topics": [
        "kl_gen"
      ]
    },
    {
      "page": "kl_real",
      "title": "KL WGAN loss on real examples",
      "topics": [
        "kl_real"
      ]
    },
    {
      "page": "KLWGAN_value_fct",
      "title": "KLWGAN Value Function",
      "topics": [
        "KLWGAN_value_fct"
      ]
    },
    {
      "page": "load_gan",
      "title": "Load a Trained GAN",
      "topics": [
        "load_gan"
      ]
    },
    {
      "page": "plot_losses",
      "title": "Plot GAN Training Losses",
      "topics": [
        "plot_losses"
      ]
    },
    {
      "page": "post_gan_boosting",
      "title": "Post-GAN Boosting",
      "topics": [
        "post_gan_boosting"
      ]
    },
    {
      "page": "print.trained_RGAN",
      "title": "Print Method for Trained RGAN Objects",
      "topics": [
        "print.trained_RGAN"
      ]
    },
    {
      "page": "sample_synthetic_data",
      "title": "Sample Synthetic Data from a trained RGAN",
      "topics": [
        "sample_synthetic_data"
      ]
    },
    {
      "page": "sample_toydata",
      "title": "Sample Toydata",
      "topics": [
        "sample_toydata"
      ]
    },
    {
      "page": "save_gan",
      "title": "Save a Trained GAN",
      "topics": [
        "save_gan"
      ]
    },
    {
      "page": "TabularGenerator",
      "title": "Tabular Generator with Gumbel-Softmax",
      "topics": [
        "TabularGenerator"
      ]
    },
    {
      "page": "torch_rand_ab",
      "title": "Uniform Random numbers between values a and b",
      "topics": [
        "torch_rand_ab"
      ]
    },
    {
      "page": "WGAN_value_fct",
      "title": "WGAN Value Function",
      "topics": [
        "WGAN_value_fct"
      ]
    },
    {
      "page": "WGAN_weight_clipper",
      "title": "WGAN Weight Clipper",
      "topics": [
        "WGAN_weight_clipper"
      ]
    }
  ],
  "_readme": "https://github.com/mneunhoe/rgan/raw/HEAD/README.md",
  "_rundeps": [
    "bit",
    "bit64",
    "callr",
    "cli",
    "coro",
    "cpp11",
    "desc",
    "farver",
    "ggplot2",
    "glue",
    "gridExtra",
    "gtable",
    "isoband",
    "jsonlite",
    "labeling",
    "lifecycle",
    "magrittr",
    "otel",
    "processx",
    "ps",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "S7",
    "safetensors",
    "scales",
    "torch",
    "vctrs",
    "viridis",
    "viridisLite",
    "withr"
  ],
  "_score": 4.45484486000851,
  "_indexed": true,
  "_nocasepkg": "rgan",
  "_universes": [
    "mneunhoe"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.2",
      "date": "2026-10-15T11:17:15.000Z",
      "distro": "resolute",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/4d51e5e43028a40217bd350186b2664dfcc18ee8e412acc4469057c3052023b7",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.2",
      "date": "2026-10-15T11:16:55.000Z",
      "distro": "resolute",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/f11aa965055fe239e2e8a948a8d4b2ac30f050e9bfac8a9c7c7a28aa305c8d72",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.2",
      "date": "2026-10-15T11:17:17.000Z",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/75aef93787edda076a9cd89069df1d5849ae937cb1cbd014c2ec9e720654d300",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.2",
      "date": "2026-10-15T11:17:02.000Z",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/ed224527cd4ba662c1d67166ad940666d8c35e50b8379cfefcfda8f1a4ac9aee",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.2",
      "date": "2026-10-15T11:16:36.000Z",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/0cb0562587b290d27767c834f45864e7a40879829e72bea7165b4fff1e1e891b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.2",
      "date": "2026-10-15T11:15:58.000Z",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/e85cc027c8788f0fdfbcde0f867b92724f57b50bd1134b1281d23bc0c4c74956",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.2",
      "date": "2026-10-15T11:15:54.000Z",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/ef60946337ec52559749854c097e0a273f387e6f570da20d97510562cf36001d",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.2",
      "date": "2026-10-15T11:16:05.000Z",
      "commit": "fe64f21fd23b52de03b718277de8136adcaf2616",
      "fileid": "https://r2.ropensci.org/6473acc00fe029f9d379ef32d8112d42581b7807380abe7fefb1649137e0144c",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/mneunhoe/actions/runs/38725475208"
    }
  ]
}