tests/testthat/test-quantization.R

context("quantization")

test_that("can create quantized tensors", {
  x <- torch_quantize_per_tensor(torch_tensor(c(-1.0, 0.0, 1.0, 2.0)), 0.1, 10, torch_quint8())
  expect_tensor(x)
})

test_that("is_quantized", {
  x <- torch_quantize_per_tensor(torch_tensor(c(-1.0, 0.0, 1.0, 2.0)), 0.1, 10, torch_quint8())
  expect_true(x$is_quantized())
  x <- torch_tensor(c(1, 2, 3))
  expect_true(!x$is_quantized())
})

test_that("dequantize quantized tensors", {
  x <- torch_quantize_per_tensor(torch_tensor(c(-1.0, 0.0, 1.0, 2.0)), 0.1, 10, torch_quint8())
  y <- x$dequantize()
  expect_true(!y$is_quantized())
  expect_true(x$is_quantized())

  y <- torch_dequantize(x)
  expect_true(!y$is_quantized())

  z <- torch_dequantize(list(x, x))
  expect_true(!z[[1]]$is_quantized())
  expect_true(!z[[2]]$is_quantized())
})

test_that("copy works", {
  a <- torch_quantize_per_tensor(torch_tensor(c(-1.0, 0.0, 1.0, 2.0)), 0.1, 10, torch_quint8())
  b <- torch_quantize_per_tensor(torch_tensor(c(1, 0.0, 1.0, 2.0)), 0.1, 10, torch_quint8())
  a$copy_(b)
  expect_equal_to_tensor(a, b)
})

Try the torch package in your browser

Any scripts or data that you put into this service are public.

torch documentation built on June 7, 2023, 6:19 p.m.