https://github.com/mlverse/tfevents
Write events for TensorBoard
https://github.com/mlverse/tfevents
Last synced: 12 months ago
JSON representation
Write events for TensorBoard
- Host: GitHub
- URL: https://github.com/mlverse/tfevents
- Owner: mlverse
- License: other
- Created: 2022-11-01T01:25:39.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-27T13:07:54.000Z (about 2 years ago)
- Last Synced: 2025-07-09T03:19:14.210Z (12 months ago)
- Language: C++
- Homepage: https://mlverse.github.io/tfevents/
- Size: 14.6 MB
- Stars: 10
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- License: LICENSE
Awesome Lists containing this project
README
---
output: github_document
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
temp <- tempfile("logdir")
dir.create(temp)
knitr::opts_knit$set(root.dir = temp)
```
# tfevents
[](https://github.com/mlverse/tfevents/actions/workflows/check.yaml)
[](https://app.codecov.io/gh/mlverse/tfevents?branch=main)
[](https://CRAN.R-project.org/package=tfevents)
[](https://cran.r-project.org/package=tfevents)
tfevents allows logging data from machine learning experiments to a file
format that can be later consumed by [TensorBoard](https://www.tensorflow.org/tensorboard) in order to generate visualizations.
## Installation
You can install tfevents from CRAN with:
``` r
install.packages("tfevents")
```
You can install the development version of tfevents from [GitHub](https://github.com/) with:
You need to have `cmake` on your path. See installation instructions in the [cmake install
webpage](https://cmake.org/resources/) - or:
If you use `brew` on MacOS you can run:
``` shell
brew install cmake
```
Or on linux install the `cmake` library, for example on Debian systems:
``` shell
sudo apt install cmake
```
``` r
# install.packages("devtools")
devtools::install_github("mlverse/tfevents")
```
## Example
The main entrypoint in tfevents API is the `log_event` function. It can be used
to log **summaries** like scalars, images, audio (Coming soon), histograms (Coming soon)
and arbitrary tensors (soon) to a log directory, which we like to call `logdir`.
You can later point TensorBoard to this `logdir` to visualize the results.
```{r example}
library(tfevents)
```
Summaries are always associated to a step in the TensorBoard API, and `log_event`
automatically increases the **`step`** everytime it's called, unless you provide
the `step` argument.
Let's start by logging some metrics:
```{r cars}
epochs <- 10
for (i in seq_len(epochs)) {
# training code would go here
log_event(
train = list(loss = runif(1), acc = runif(1)),
valid = list(loss = runif(1), acc = runif(1))
)
}
```
By default this will create a `logs` directory in your working directory and write
metrics to it - you can change the default `logdir` using context like `with_logdir`
or globally with `set_default_logdir()`.
Since we passed a nested list of metrics, `log_event` will create
subdirectories under `logs` to write metrics for each group.
```{r}
fs::dir_tree("logs")
```
You can later point TensorBoard to that logdir using TensorBoard's command line
interface or tensorflow's utility function `tensorboard()`
```{r}
tensorflow::tensorboard(normalizePath("logs"), port = 6060)
```
TensorBoard will display the results in a dashbboard, similar to one you can see
in the screenshot below:
```{r tensorboard, echo=FALSE, out.width="100%"}
webshot2::webshot(url = "http://127.0.0.1:6060/?darkMode=false")
```
You can learn more in the [tfevents website](#TODO).