Learn R Programming

ggmlR (version 0.6.1)

ggml_evaluate.ggml_functional_model: Evaluate a Trained Model

Description

Evaluate a Trained Model

Usage

# S3 method for ggml_functional_model
ggml_evaluate(model, x, y, batch_size = 32L, ...)

ggml_evaluate(model, ...)

# S3 method for ggml_sequential_model ggml_evaluate( model, x, y, batch_size = 32, sample_weight = NULL, class_weight = NULL, ... )

Value

Named list with loss and accuracy.

Arguments

model

A trained ggml_sequential_model

x

Test data

y

Test labels (one-hot encoded)

batch_size

Batch size for evaluation

...

Additional arguments (ignored).

sample_weight

Numeric vector of per-sample weights (length = nrow(x)).

class_weight

Named vector of weights per class, e.g. c("0"=1, "1"=10). Cannot be used with sample_weight.

Examples

Run this code
# \donttest{
n <- 128
x <- matrix(runif(n * 4), nrow = n, ncol = 4)
y <- matrix(0, nrow = n, ncol = 2)
for (i in seq_len(n)) { y[i, if (sum(x[i,]) > 2) 1L else 2L] <- 1 }

model <- ggml_model_sequential() |>
  ggml_layer_dense(8, activation = "relu") |>
  ggml_layer_dense(2, activation = "softmax")
model$input_shape <- 4L
model <- ggml_compile(model, optimizer = "adam",
                      loss = "categorical_crossentropy")
model <- ggml_fit(model, x, y, epochs = 5, batch_size = 32, verbose = 0)

# Basic evaluation
result <- ggml_evaluate(model, x, y, batch_size = 32)

# With sample_weight
sw <- runif(n, 0.5, 1.5)
result <- ggml_evaluate(model, x, y, batch_size = 32, sample_weight = sw)

# With class_weight
result <- ggml_evaluate(model, x, y, batch_size = 32,
                        class_weight = c("0" = 1, "1" = 2))
# }

Run the code above in your browser using DataLab