R Observatory
Search
install.packages("torchvision")
CRAN 30-day downloads, method
2,743+40.1% up on the 30 days before, the better direction
Test coverage, method
0%of lines run by tests

Provides access to datasets, models and preprocessing facilities for deep learning with images. Integrates seamlessly with the 'torch' package and its API borrows heavily from the 'PyTorch' vision package.

Maintainer
Tomasz Kalinowski
Latest release
13 Oct 2026
First release
29 Oct 2020

Compare with another package

More details
Releases
12
Needs compilation
No
Needs R
>= 3.5
Config/roxygen2/version
8.1.1
LazyData
true
Collections (1) Method, Collections
  • mlverse, in the mlverse organization on GitHub
Subjects (1) Method, Subjects
Cite

Package

Run in R for the authors' preferred citation:

citation("torchvision")
APA
Kalinowski, T., ANAMASGARD, Posit Software, PBC, Dutta, S., Falbel, D., Fischer, S., Koshti, A., Regouby, C., Richard, D., & Singh, C. (2026). torchvision: Models, Datasets and Transformations for Images (Version 0.10.0) [Computer software]. https://doi.org/10.32614/CRAN.package.torchvision
About

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA
Balamuta, J. J. (2026). R Observatory: Metrics for torchvision version 0.10.0 [Data set]. HJJB, LLC. Data release v2026-10-28. https://doi.org/10.5281/zenodo.21843040
About

From data release v2026-10-28, which the citation names so these numbers can be found later.

All 13 check platforms pass.

  • r-devel-linux-x86_64-debian-clang

    The unreleased R on Linux, x86_64, debian-clang

    OK

    Version checked
    0.10.0
    Time taken
    159 s
  • r-devel-linux-x86_64-debian-gcc

    The unreleased R on Linux, x86_64, debian-gcc

    OK

    Version checked
    0.10.0
    Time taken
    112 s
  • r-devel-linux-x86_64-fedora-clang

    The unreleased R on Linux, x86_64, fedora-clang

    OK

    Version checked
    0.10.0
    Time taken
    113 s
  • r-devel-linux-x86_64-fedora-gcc

    The unreleased R on Linux, x86_64, fedora-gcc

    OK

    Version checked
    0.10.0
    Time taken
    107 s
  • r-devel-windows-x86_64

    The unreleased R on Windows, x86_64

    OK

    Version checked
    0.10.0
    Time taken
    199 s
  • r-oldrel-macos-arm64

    The previous release of R on macOS, arm64

    OK

    Version checked
    0.10.0
    Time taken
    59 s
  • r-oldrel-macos-x86_64

    The previous release of R on macOS, x86_64

    OK

    Version checked
    0.10.0
    Time taken
    140 s
  • r-oldrel-windows-x86_64

    The previous release of R on Windows, x86_64

    OK

    Version checked
    0.10.0
    Time taken
    240 s
  • r-patched-linux-x86_64

    The patched release of R on Linux, x86_64

    OK

    Version checked
    0.10.0
    Time taken
    155 s
  • r-release-linux-x86_64

    The current release of R on Linux, x86_64

    OK

    Version checked
    0.10.0
    Time taken
    150 s
  • r-release-macos-arm64

    The current release of R on macOS, arm64

    OK

    Version checked
    0.10.0
    Time taken
    42 s
  • r-release-macos-x86_64

    The current release of R on macOS, x86_64

    OK

    Version checked
    0.10.0
    Time taken
    143 s
  • r-release-windows-x86_64

    The current release of R on Windows, x86_64

    OK

    Version checked
    0.10.0
    Time taken
    194 s
  • 13 OK

Over time

No change since 4 Aug 2026

As a list (3)
ChangedWorst statusOKNotesWarningsErrors
4 Aug 2026OK13000
1 Aug 2026Note12100
10 Mar 2026OK14000

Since March 2026

Check results on CRAN

Total downloads in the last 30 days
2,780+40% up on the 30 days before, the better directionIt is the sum of 3 channels: CRAN, r2u and autoCRAN.

CRAN rank

2,197 of 26,530

CRAN

2,743 downloads in the last 30 days

Rank
2,197 of 26,530
Change
+40.1% up on the 30 days before, the better direction

It is in the total. Take it out

r2u

33 downloads in the last 30 days

Rank
3,803 of 30,526
Change
+200% up on the 30 days before, the better direction

It is in the total. Take it out

autoCRAN

4 downloads in the last 30 days

Rank
13,992 of 29,212
Change
−76.5% down on the 30 days before, the worse direction

It is in the total. Take it out

Over time

Compare downloads

Needs
15
Dependent packages
2
Suggested by
5
Needs (15)
Installing it adds
31 packages, 12.2 MB of source
Of those, need compilation
17
Optional extras (10)
Dependent packages (2)
PackageTitleDownloads in 30 days
citoBuilding and Training Neural Networks2,532
torchdatasetsReady to Use Extra Datasets for Torch418
Functions
480
Public exports
215
Lines of R code
22,803
Median complexity
1
Functions (480)
Size and composition

Lines by kind (45,236)

KindLinesShare
R code22,80350%
Tests12,13927%
Documentation9,44021%
Guides8542%

Lines by language

LanguageLinesShare
R34,94177%
Rd9,44021%
Vignettes8542%
Other10%

Languages are counted from file extensions.

Files
322
R functions
480
Object systems
S3: 180 methods
Deprecated functions
1
Complexity
Median
1
Mean
2.43
Highest
25
Median lines per function
8
About complexity

Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only.

Call graph figures
R functions
480
Calls
646
Unconnected
53
Groups
7
Growth (12 releases)
Total lines by release
6,127 on 29 Oct 202045,236 on 13 Oct 2026
Release changes

The tests ran and coverage was measured.

Lines run by tests
0%
Expressions run by tests
0%
Test cases
726
Exports named in tests
93.5%
Coverage by file (46)
Coverage run
Lines counted
4,575
Lines the tests ran
0
Tests passed
Yes
Measured with
covr 3.6.5 on R 4.6.1
Test suite
Has tests
Yes
Test frameworks
testthat, tinytest
Test cases
726
Lines of tests
12,139
Test lines per line of code
0.53
Exports documented
100%
Arguments documented
100%
Return value documented
57.6%
Help pages with examples
50.4%
Examples run in checks
4.3%
Guides (3)
Other documentation
README
Yes, 56 words
Release notes file
Yes
Help pages
139
Lines of documentation
9,440
DatasetSizeColumns
collection_catalogDataset Collection Catalog43 × 17collection, dataset, description, task, num_classes, num_images and 11 more

Funded by Posit Software, PBC

Earlier names (1)
  • RStudio

mlverse / torchvision on github.com

Stars
77no change on 30 days ago
Forks
32
Open issues
10
Last commit
26 Oct 2026
Activity
Commits
596
Open pull requests
2
Tagged releases
12
Latest tagged release
v0.10.0, 14 Oct 2026
In development
Default branch at 0.10.0.9000, ahead of CRAN 0.10.0 (checked 2026-10-25)
Issues closed in
27 days (median)
Pull requests closed in
2 days (median)
Pull requests merged
86%
Created
24 Jul 2020
Licence file reads as
–
Development practices (9)
KindFound
Continuous integrationGitHub Actions, R CMD check workflow
The R CMD check workflow runs on Linux, macOS and Windows
Docs sourcepkgdown
GitHub Pages site last deployed 2026-10-14
The repository has a site deploy workflow
Reproducibility and dev environmentdata-raw/
CRAN release processcran-comments.md
Lint, format, editorAir, RStudio project

Method, repository practices

Across mlverse

Claude Codeat least 1 crediting itClaude CodeFirst seen on or before 10 Aug 2026at least 1 crediting it
Claude Opus 51MClaude Opus 51M context window10 Aug 20261 commit

Tools

ToolFirst seenCommits crediting it
Claude Code10 Aug 2026 or earlier1 at least

Models

ModelContext windowCommitsFirst commitLast commitCredit lines of
Claude Opus 51M110 Aug 202610 Aug 2026Claude Code

Across mlverse

R releases
  • On CRAN
  • Release
VersionReleasedREvents
0.10.0 current13 Oct 20264.6.1
0.9.022 Apr 20264.5.3Maintainer: Tomasz Kalinowski
0.8.06 Nov 20254.5.2
0.7.018 Jul 20254.5.1
0.6.014 Jun 20244.4.1
0.5.114 Apr 20234.2.3
0.5.015 Mar 20234.2.3
0.4.128 Jan 20224.1.2
Earlier versions (4)
VersionReleasedR
0.4.017 Aug 20214.1.1
0.3.04 May 20214.0.5
0.2.05 Jan 20214.0.3
0.1.029 Oct 20204.0.3
Release notes (0.10.0)

Breaking changes

  • model_maskrcnn_*() now return image-sized mask probabilities in masks, shape (N, H, W) (@sebffischer, #412). Code that used the per-box (N, 28, 28) probabilities should read output$detections[[1]]$mask_probs instead of output$detections[[1]]$masks. For image overlays, use output$detections[[1]]$masks > 0.5.
  • State dictionaries saved with torchvision 0.9.0 need migration for model_vit_*(), model_facenet_inception_resnet_v1(), model_convnext_*_upernet(), model_fasterrcnn_resnet50_fpn_v2() and model_maskrcnn_resnet50_fpn_v2(): parameters were added, removed or renamed, so these checkpoints cannot be loaded unchanged with strict = TRUE (#405, #406, #410, #412). RF-DETR checkpoints from earlier development versions may also need migration after changes to decoder depths and resolutions (#413). There is no automatic migration for user-saved checkpoints. Keep the package version that created them, or explicitly migrate and validate the weights. model_maxvit() retains its state-dict keys and shapes, but its corrected forward computation can change predictions (#405). Support for the hosted pretrained weights does not imply compatibility with user-saved checkpoints.
  • When supplied, draw_bounding_boxes() labels and colors must have length 1 or match the number of original boxes. Partial recycling is no longer supported (#415).

New models

  • Added RF-DETR model family: model_rfdetr_*, with * being nano(), small(), medium(), base(), base_2(), base_o365() and large() for real-time object detection with DINOv2 backbone and deformable-attention decoder (@DerrickUnleashed, #327).
  • Added LW-DETR model family: model_lw_detr_*, with * being tiny(), small(), medium() and large() for real-time object detection with ViT backbone and deformable-attention decoder (@srishtiii28, #328).

New datasets

  • Added cityscapes_dataset() relying on manual download due to usage license (#279, @ANAMASGARD).

New features

  • Added target_transform_resize to manage bounding_box resizing in parallel to transform_resize for images (#337).
  • Added target_transform_rotate() for converting bounding boxes from xyxy to xyxyr format with a rotation angle (@DerrickUnleashed, #338). Both operate on detection item targets (the y part of a dataset item) for composable target transform pipelines.
  • Added a new draw_bounding_boxes S3 method for image_with_rotated_box that renders rotated boxes as polygons (@DerrickUnleashed, #338).
  • Added item_transform_hflip() for horizontally flipping dataset items, with support for detection and segmentation item types and datasets (@DerrickUnleashed, #366).
  • Added item_transform_vflip() for vertically flipping dataset items, with support for detection and segmentation item types and datasets (@DerrickUnleashed, #369).
  • Added SAHI (Slicing Aided Hyper Inference) support via a three-function pipeline: prepare_sahi_split() precomputes overlapping crop windows, then transform_sahi_crop() slices images and target_transform_sahi_crop() adjusts detection targets per crop. (@DerrickUnleashed, #324)
  • Added item_transform_affine() and target_transform_affine() for applying an affine transformation to a dataset item and its detection target, with support for detection and segmentation items and datasets (#367).
  • Added item_transform_center_crop() for cropping images from the center to a specified size for dataset items, with support for detection and segmentation item types and datasets (@DerrickUnleashed, #370).
  • Added item_transform_random_horizontal_flip() and item_transform_random_vertical_flip() for random geometric augmentation of dataset items with probability p, with support for detection and segmentation item types and datasets (@DerrickUnleashed, #381).
  • Added item_transform_resize() for resizing dataset items, with support for detection and segmentation item types and datasets (@srishtiii28, #362).
  • item_transform_rotate() now supports segmentation items and datasets, rotating the masks alongside the image (@srishtiii28, #379).
  • Added item_transform_crop() for cropping dataset items at a specified location and size, with support for detection and segmentation item types and datasets (@DerrickUnleashed, #371).
  • Added item_transform_pad() for padding dataset items on all sides, with support for detection, segmentation and rotated-box item types and datasets (@DerrickUnleashed, #373).
  • Added item_transform_perspective() for applying a perspective transform to dataset items, with support for detection and segmentation item types and datasets, and implemented transform_perspective() for tensor images (@DerrickUnleashed, #377).
  • Added item_transform_random_resize_crop() for cropping dataset items to a random area and aspect ratio before resizing them to a given size, with support for detection, segmentation and rotated-box item types and datasets (@srishtiii28, #386).
  • Added item_transform_random_crop() for cropping dataset items at a random location with optional padding, with support for detection and segmentation item types and datasets (@DerrickUnleashed, #387).
  • Added item_transform_random_erasing() for randomly erasing a rectangular region of dataset items with probability p, with support for detection, segmentation and rotated-box item types and datasets (#389).
  • Added item_transform_random_affine() for applying an affine transformation drawn from the given ranges to dataset items, with support for detection, segmentation and rotated-box item types and datasets (@srishtiii28, #390).
  • Added item_transform_random_perspective() for applying a random perspective transformation to dataset items with probability p, with support for detection, segmentation and rotated-box item types and datasets (@DerrickUnleashed, #393).
  • Detection datasets (coco_detection_dataset(), pascal_detection_dataset() and the rf100_*_collection()s) now inherit the object_detection_dataset class and their item target y the object_detection_target class. Segmentation datasets (coco_segmentation_dataset(), pascal_segmentation_dataset(), cityscapes_dataset(), oxfordiiitpet_segmentation_dataset() and rf100_peixos_segmentation_dataset()) now inherit the segmentation_dataset class and their item target y the segmentation_target class. Target transforms now dispatch on those classes: target_transform_resize(), target_transform_rotate(), target_transform_affine() and target_transform_sahi_crop() take an object_detection_target, and target_transform_coco_masks() and target_transform_trimap_masks() a segmentation_target. Bare-list targets remain supported and retain their list class (@srishtiii28, #391).
  • Added a "Visualization utilities" article covering vision_make_grid(), draw_bounding_boxes(), draw_segmentation_masks() and draw_keypoints() on the output of model_rfdetr_base() and model_fcn_resnet50() (@srishtiii28, #400).
  • Added a "torchvision classes" vignette sketching what each class holds: the image_with_bounding_box, image_with_rotated_box and image_with_segmentation_mask items, their object_detection_target and segmentation_target, the sahi_split returned by prepare_sahi_split(), and which transform and drawing functions dispatch on each (@srishtiii28, #396).

Bug fixes and improvements

  • draw_bounding_boxes() now keeps labels and colors aligned with their boxes when lazy = TRUE filters out degenerate boxes (#415).
  • Fixed box alignment in padded center crops and random crops, and corrected five- and ten-crop geometry (#414).
  • model_vit_*() predictions now depend on the input image: attention runs over the patches of each image, the positional embedding is registered so it is loaded from the pretrained weights, and layer norm uses eps = 1e-6 (@sebffischer, #405).
  • model_maxvit() is re-ported from PyTorch and now reproduces its predictions with the pretrained weights (@sebffischer, #405).
  • draw_bounding_boxes() now accepts degenerate bounding boxes by default with the lazy = TRUE parameter (#400).
  • vision_make_grid() now accepts multiple 3D tensors with mixed uint8 and float dtype, while preserving positional scale, num_rows, padding and pad_value arguments (#398). Use per_row for the number of images per row; named num_rows remains supported as a deprecated alias.
  • transform_random_affine() now accepts a bare number for shear. It used to widen degrees instead of shear, which left the shear range incomplete and made the sampling fail (#390).
  • item_transform_rotate() no longer truncates the rotation angle to a whole number of degrees when the target stores its boxes as an integer tensor, as pascal_detection_dataset() does (#360).
  • transform_random_resized_crop() no longer loses the last row and column of the image, and no longer pads with a black edge when it falls back to a central crop (#386).
  • transform_crop() now pads the result with zeros when the crop leaves the image, so that the output always has the requested size. It previously returned only the part of the image the crop covered, which could even be empty.
  • transform_center_crop() now pads correctly when the requested size is not square. Height and width were used in the wrong order in the padding branch, so e.g. cropping a (16, 20) image to c(24, 30) returned a (22, 0) image.
  • transform_rgb_to_grayscale() now returns an image with one channel instead of dropping the channel dimension, i.e. (3, H, W) becomes (1, H, W) and not (H, W). This also fixes transform_grayscale() for batched input.
  • hsv2rgb() computed the fractional part of the hue sector and the t component incorrectly, so converting an image to HSV and back did not return the original image. This affected transform_adjust_hue() and transform_color_jitter(hue = ...).
  • transform_adjust_hue() now handles negative hue_factors, which produced a black image before, and rejects images that do not have 1 or 3 channels instead of silently dropping the additional ones.
  • nms() now uses torchvisionlib::ops_nms() when torchvisionlib is installed, speeding up inference for model_fasterrcnn_*() and model_maskrcnn_*() (#321, #322).
  • Lists and vectors are now preallocated to their target size instead of being grown one element at a time (@srishtiii28, #335).
  • model_convnext_small_22k1k() now defaults to num_classes = 1000. It is pretrained on Imagenet 22k and fine-tuned on Imagenet 1k, so its published weights have a 1000-class head, and the previous default of 21841 made pretrained = TRUE fail to load the state dict. (@sebffischer, #376)
  • model_inception_v3(pretrained = TRUE, aux_logits = FALSE) now actually removes the auxiliary classifier. Previously aux_logits = FALSE was silently ignored for pretrained models, so the network returned a list of both heads instead of a single tensor in training mode. (@sebffischer, #375)
  • model_rfdetr_*() now match the reference rf-detr implementation numerically, accept padding masks, and use the official configurations of the small, medium and base variants (@sebffischer, #413).
  • model_fasterrcnn_*() and model_maskrcnn_*() inference now reproduces torchvision numerically, supports batches, and loads pretrained weights strictly (@sebffischer, #412).
  • model_inception_v3() and model_resnet*() without pretrained weights now initialise all layers as in PyTorch, and zero_init_residual = TRUE takes effect (@sebffischer, #411).
  • The progress argument of the model constructors is now honoured (@sebffischer, #411).
  • model_convnext_*_upernet() now apply the per-stage layer norms of the pretrained backbone and default to num_classes = 150 when pretrained = TRUE (@sebffischer, #410).
  • model_convnext_*_detection() default to num_classes = 90 and pass score_thresh, nms_thresh and detections_per_img to the detection head (@sebffischer, #410).
  • model_convnext_*() blocks now apply stochastic depth in training mode (@sebffischer, #410).
  • model_efficientnet_*() and model_efficientnet_v2_*() now match torchvision (SiLU squeeze-excitation, batch norm settings), apply stochastic depth in training, and accept dropout without shifting other arguments (@sebffischer, #409).
  • model_mobilenet_v3_*() use torchvision's batch norm settings, gain a norm_layer argument and stay in training mode when pretrained = FALSE; model_mobilenet_v2() handles stages with n = 0 (@sebffischer, #409).