Skip to main content

Package renamed to torchdatasets!

  • Use map, apply, reduce or filter directly on Dataset objects
  • cache data in RAM/disk or via your own method (partial caching supported)
  • Full PyTorch's Dataset and IterableDataset support
  • General torchdatasets.maps like Flatten or Select
  • Extensible interface (your own cache methods, cache modifiers, maps etc.)
  • Useful torchdatasets.datasets classes designed for general tasks (e.g. file reading)
  • Support for torchvision datasets (e.g. ImageFolder, MNIST, CIFAR10) via td.datasets.WrapDataset
  • Minimal overhead (single call to super().__init__())
Version Docs Tests Coverage Style PyPI Python PyTorch Docker Roadmap
Version Documentation Tests Coverage codebeat PyPI Python PyTorch Docker Roadmap

:bulb: Examples

Check documentation here: https://szymonmaszke.github.io/torchdatasets

General example

  • Create image dataset, convert it to Tensors, cache and concatenate with smoothed labels:
import torchdatasets as td
import torchvision

class Images(td.Dataset): # Different inheritance
    def __init__(self, path: str):
        super().__init__() # This is the only change
        self.files = [file for file in pathlib.Path(path).glob("*")]

    def __getitem__(self, index):
        return Image.open(self.files[index])

    def __len__(self):
        return len(self.files)


images = Images("./data").map(torchvision.transforms.ToTensor()).cache()

You can concatenate above dataset with another (say labels) and iterate over them as per usual:

for data, label in images | labels:
    # Do whatever you want with your data
  • Cache first 1000 samples in memory, save the rest on disk in folder ./cache:
images = (
    ImageDataset.from_folder("./data").map(torchvision.transforms.ToTensor())
    # First 1000 samples in memory
    .cache(td.modifiers.UpToIndex(1000, td.cachers.Memory()))
    # Sample from 1000 to the end saved with Pickle on disk
    .cache(td.modifiers.FromIndex(1000, td.cachers.Pickle("./cache")))
    # You can define your own cachers, modifiers, see docs
)

To see what else you can do please check torchdatasets documentation

Integration with torchvision

Using torchdatasets you can easily split torchvision datasets and apply augmentation only to the training part of data without any troubles:

import torchvision

import torchdatasets as td

# Wrap torchvision dataset with WrapDataset
dataset = td.datasets.WrapDataset(torchvision.datasets.ImageFolder("./images"))

# Split dataset
train_dataset, validation_dataset, test_dataset = torch.utils.data.random_split(
    model_dataset,
    (int(0.6 * len(dataset)), int(0.2 * len(dataset)), int(0.2 * len(dataset))),
)

# Apply torchvision mappings ONLY to train dataset
train_dataset.map(
    td.maps.To(
        torchvision.transforms.Compose(
            [
                torchvision.transforms.RandomResizedCrop(224),
                torchvision.transforms.RandomHorizontalFlip(),
                torchvision.transforms.ToTensor(),
                torchvision.transforms.Normalize(
                    mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]
                ),
            ]
        )
    ),
    # Apply this transformation to zeroth sample
    # First sample is the label
    0,
)

Please notice you can use td.datasets.WrapDataset with any existing torch.utils.data.Dataset instance to give it additional caching and mapping powers!

:wrench: Installation

:snake: pip

Latest release:

pip install --user torchdatasets

Nightly:

pip install --user torchdatasets-nightly

:whale2: Docker

CPU standalone and various versions of GPU enabled images are available at dockerhub.

For CPU quickstart, issue:

docker pull szymonmaszke/torchdatasets:18.04

Nightly builds are also available, just prefix tag with nightly_. If you are going for GPU image make sure you have nvidia/docker installed and it's runtime set.

:question: Contributing

If you find any issue or you think some functionality may be useful to others and fits this library, please open new Issue or create Pull Request.

To get an overview of thins one can do to help this project, see Roadmap

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

torchdatasets-nightly-1704931400.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

torchdatasets_nightly-1704931400-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file torchdatasets-nightly-1704931400.tar.gz.

File metadata

File hashes

Hashes for torchdatasets-nightly-1704931400.tar.gz
Algorithm Hash digest
SHA256 e054dc7597c3d1fa66f8dae296c85e0ef768c6e65b682c440b23e4c87620587f
MD5 ba48303ae9516eaa26bbda730c98d243
BLAKE2b-256 54e34be3e89e1aa81095bc6c141eeba3f97d229e4b505243099b3aa1a2f46f04

See more details on using hashes here.

File details

Details for the file torchdatasets_nightly-1704931400-py3-none-any.whl.

File metadata

File hashes

Hashes for torchdatasets_nightly-1704931400-py3-none-any.whl
Algorithm Hash digest
SHA256 9d10014342177ca609221154ef2e04f7a405d118a52f659e0c5d15014e48b105
MD5 432c41ff4b6e96d409fe1f37bc2490ea
BLAKE2b-256 89aff32ead8118df75182f8fb70b23385af1af0126ed207255e5ee1a72ac55c7

See more details on using hashes here.

Release history Release notifications | RSS feed

1711929801

2 files

1711843450

2 files

1711756978

2 files

1711670588

2 files

1711584220

2 files

1711497776

2 files

1711411376

2 files

1711325015

2 files

1711238652

2 files

1711152169

2 files

1711065798

2 files

1710979381

2 files

1710892979

2 files

1710806596

2 files

1710720233

2 files

1710633807

2 files

1710547369

2 files

1710460995

2 files

1710374582

2 files

1710288189

2 files

1710201770

2 files

1710115395

2 files

1710029006

2 files

1709942577

2 files

1709856209

2 files

1709769761

2 files

1709683411

2 files

1709596967

2 files

1709510585

2 files

1709424199

2 files

1709337780

2 files

1709251416

2 files

1709164975

2 files

1709078568

2 files

1708992210

2 files

1708905796

2 files

1708819409

2 files

1708732962

2 files

1708646583

2 files

1708560184

2 files

1708473790

2 files

1708387369

2 files

1708300983

2 files

1708214602

2 files

1708128178

2 files

1708041787

2 files

1707955385

2 files

1707868982

2 files

1707782602

2 files

1707696182

2 files

1707609824

2 files

1707523385

2 files

1707436982

2 files

1707350574

2 files

1707264167

2 files

1707177783

2 files

1707091381

2 files

1707005009

2 files

1706918581

2 files

1706832179

2 files

1706745801

2 files

1706659384

2 files

1706572978

2 files

1706486582

2 files

1706400212

2 files

1706313776

2 files

1706227371

2 files

1706140990

2 files

1706054595

2 files

1705968199

2 files

1705881799

2 files

1705795404

2 files

1705708983

2 files

1705622591

2 files

1705536184

2 files

1705449784

2 files

1705363384

2 files

1705276988

2 files

1705190598

2 files

1705104183

2 files

1705017786

2 files

This release

1704931400 This release

2 files

1704844986

2 files

1704758602

2 files

1704672200

2 files

1704585796

2 files

1704499392

2 files

1704412998

2 files

1704326599

2 files

1704240193

2 files

1704153782

2 files

1704067425

2 files

1703981032

2 files

1703894589

2 files

1703808157

2 files

1703721775

2 files

1703635377

2 files

1703548976

2 files

1703462589

2 files

1703376191

2 files

1703289790

2 files

1703203379

2 files

1703116979

2 files

1703030551

2 files

1702944186

2 files

1702857796

2 files

1702771404

2 files

1702684995

2 files

1702598604

2 files

1702512197

2 files

1702425791

2 files

1702339393

2 files

1702252994

2 files

1702166605

2 files

1702080195

2 files

1701993798

2 files

1701907388

2 files

1701820990

2 files

1701734586

2 files

1701648193

2 files

1701561792

2 files

1701475389

2 files

1701389002

2 files

1701302595

2 files

1701216196

2 files

1701129789

2 files

1701043389

2 files

1700956994

2 files

1700870576

2 files

1700784182

2 files

1700697793

2 files

1700611394

2 files

1700525001

2 files

1700438595

2 files

1700352195

2 files

1700265789

2 files

1700179390

2 files

1700092987

2 files

1700006586

2 files

1699920180

2 files

1699833788

2 files

1699747415

2 files

1699661000

2 files

1699574591

2 files

1699488200

2 files

1699401789

2 files

1699315388

2 files

1699228986

2 files

1699142599

2 files

1699056185

2 files

1698969784

2 files

1698883390

2 files

1698796982

2 files

1698710595

2 files

1698624184

2 files

1698537785

2 files

1698451391

2 files

1698364992

2 files

1698278577

2 files

1698192189

2 files

1698105785

2 files

1698019392

2 files

1697933002

2 files

1697846593

2 files

1697760186

2 files

1697673787

2 files

1697587388

2 files

1697501000

2 files

1697414591

2 files

1697328196

2 files

1697241796

2 files

1697155392

2 files

1697068984

2 files

1696982583

2 files

1696896183

2 files

1696809795

2 files

1696723401

2 files

1696636983

2 files

1696550587

2 files

1696464272

2 files

1696377794

2 files

1696291386

2 files

1696204994

2 files

1696118598

2 files

1696032181

2 files

1695945785

2 files

1695859390

2 files

1695772997

2 files

1695686594

2 files

1695600182

2 files

1695513794

2 files

1695427382

2 files

1695340985

2 files

1695254597

2 files

1695168185

2 files

1695081784

2 files

1694995390

2 files

1694909008

2 files

1694822585

2 files

1694736193

2 files

1694649782

2 files

1694563385

2 files

1694476985

2 files

1694390586

2 files

1694304202

2 files

1694217790

2 files

1694131382

2 files

1694044984

2 files

1693958581

2 files

1693872195

2 files

1693785798

2 files

1693699395

2 files

1693612971

2 files

1693526605

2 files

1693440173

2 files

1693353771

2 files

1693267373

2 files

1693180995

2 files

1693094598

2 files

1693008150

2 files

1692921757

2 files

1692835361

2 files

1692748959

2 files

1692662568

2 files

1692576185

2 files

1692489790

2 files

1692403347

2 files

1692316950

2 files

1692230572

2 files

1692144176

2 files

1692057772

2 files

1691971389

2 files

1691884991

2 files

1691798557

2 files

1691712163

2 files

1691625767

2 files

1691539373

2 files

1691452981

2 files

1691366587

2 files

1691280199

2 files

1691193763

2 files

1691107387

2 files

1691020994

2 files

1690934589

2 files

1690848223

2 files

1690761793

2 files

1690675418

2 files

1690588967

2 files

1690502578

2 files

1690416196

2 files

1690329794

2 files

1690243407

2 files

1690157022

2 files

1690070621

2 files

1689984188

2 files

1689897798

2 files

1689811397

2 files

1689725008

2 files

1689638637

2 files

1689552228

2 files

1689465836

2 files

1689379423

2 files

1689293035

2 files

1689206639

2 files

1689120209

2 files

1689033837

2 files

1688947418

2 files

1688861022

2 files

1688774606

2 files

1688688221

2 files

1688601833

2 files

1688515458

2 files

1688429034

2 files

1688342617

2 files

1688256233

2 files

1688169846

2 files

1688083420

2 files

1687997036

2 files

1687910620

2 files

1687824232

2 files

1687737846

2 files

1687651447

2 files

1687565032

2 files

1687478633

2 files

1687392205

2 files

1687305796

2 files

1687219387

2 files

1687133005

2 files

1687046624

2 files

1686960219

2 files

1686873807

2 files

1686787414

2 files

1686701008

2 files

1686614640

2 files

1686528200

2 files

1686441819

2 files

1686355400

2 files

1686269010

2 files

1686182603

2 files

1686096203

2 files

1686009796

2 files

1685923398

2 files

1685837034

2 files

1685750601

2 files

1685664208

2 files

1685577825

2 files

1685491387

2 files

1685404999

2 files

1685318602

2 files

1685232197

2 files

1685145799

2 files

1685059411

2 files

1684973014

2 files

1684886595

2 files

1684800210

2 files

1684713836

2 files

1684627408

2 files

1684540990

2 files

1684454599

2 files

1684368198

2 files

1684281810

2 files

1684195406

2 files

1684109005

2 files

1684022592

2 files

1683936161

2 files

1683849796

2 files

1683763390

2 files

1683676995

2 files

1683590616

2 files

1683504227

2 files

1683417797

2 files

1683331372

2 files

1683244990

2 files

1683158580

2 files

1683072179

2 files

1682985798

2 files

1682899403

2 files

1682812997

2 files

1682726569

2 files

1682640191

2 files

1682553772

2 files

1682467392

2 files

1682380984

2 files

1682294609

2 files

1682208212

2 files

1682121796

2 files

1682035401

2 files

1681948988

2 files

1681862579

2 files

1681776194

2 files

1681689805

2 files

1681603414

2 files

1681516977

2 files

1681430578

2 files

1681344191

2 files

1681257804

2 files

1681171391

2 files

1681084989

2 files

1680998625

2 files

1680912175

2 files

1680825783

2 files

1680739388

2 files

1680652983

2 files

1680566596

2 files

1680480175

2 files

1680393802

2 files

1680307404

2 files

1680221013

2 files

1680134625

2 files

1680048264

2 files

1679961816

2 files

1679875418

2 files

1679789005

2 files

1679702597

2 files

1679616218

2 files

1679529816

2 files

1679443377

2 files

1679357027

2 files

1679270599

2 files

1679184225

2 files

1679097808

2 files

1679011419

2 files

1678925011

2 files

1678838593

2 files

1678752202

2 files

1678665806

2 files

1678579412

2 files

1678493000

2 files

1678406619

2 files

1678320216

2 files

1678233808

2 files

1678147419

2 files

1678061016

2 files

1677974617

2 files

1677888202

2 files

1677807897

2 files

1677715407

2 files

1677629017

2 files

1677542609

2 files

1677456211

2 files

1677369838

2 files

1677283416

2 files

1677197014

2 files

1677110601

2 files

1677024208

2 files

1676937807

2 files

1676851402

2 files

1676764998

2 files

1676678615

2 files

1676592194

2 files

1676505813

2 files

1676419412

2 files

1676332992

2 files

1676246607

2 files

1676160201

2 files

1676073796

2 files

1675987409

2 files

1675901006

2 files

1675814611

2 files

1675728180

2 files

1675641798

2 files

1675555405

2 files

1675468999

2 files

1675382591

2 files

1675296207

2 files

1675209813

2 files

1675123392

2 files

1675036989

2 files

1674950597

2 files

1674864196

2 files

1674777784

2 files

1674691398

2 files

1674606943

2 files

1674520624

2 files

1674434014

2 files

1674347903

2 files

1674261329

2 files

1674175020

2 files

1674088574

2 files

1674002208

2 files

1673915755

2 files

1673829315

2 files

1673743085

2 files

1673656490

2 files

1673570161

2 files

1673483829

2 files

1673397423

2 files

1673311044

2 files

1673224460

2 files

1673138214

2 files

1673051657

2 files

1672965365

2 files

1672878958

2 files

1672792453

2 files

1672706052

2 files

1672619735

2 files

1672533517

2 files

1672446779

2 files

1672360497

2 files

1672274097

2 files

1672187586

2 files

1672101252

2 files

1672014866

2 files

1671928581

2 files

1671841786

2 files

1671755562

2 files

1671669273

2 files

1671582695

2 files

1671496473

2 files

1671409857

2 files

1671323588

2 files

1671237112

2 files

1671150824

2 files

1671064661

2 files

1670978081

2 files

1670891892

2 files

1670805410

2 files

1670719114

2 files

1670632362

2 files

1670546132

2 files

1670459609

2 files

1670373326

2 files

1670286794

2 files

1670200433

2 files

1670114057

2 files

1670027559

2 files

1669941285

2 files

1669855278

2 files

1669768653

2 files

1669682279

2 files

1669595677

2 files

1669509572

2 files

1669422798

2 files

1669336643

2 files

1669250445

2 files

1669163708

2 files

1669077659

2 files

1668991254

2 files

1668904936

2 files

1668818466

2 files

1668732228

2 files

1668645546

2 files

1668559202

2 files

1668472785

2 files

1668386323

2 files

1668299935

2 files

1668213818

2 files

1668127469

2 files

1668040902

2 files

1667954491

2 files

1667868043

2 files

1667781616

2 files

1667695332

2 files

1667609073

2 files

1667522874

2 files

1667436223

2 files

1667350138

2 files

1667264116

2 files

1667177483

2 files

1667091082

2 files

1667003891

2 files

1666918095

2 files

1666831600

2 files

1666745040

2 files

1666659503

2 files

1666573238

2 files

1666486454

2 files

1666400196

2 files

1666313308

2 files

1666226995

2 files

1666140976

2 files

1666054482

2 files

1665968302

2 files

1665881711

2 files

1665795205

2 files

1665709241

2 files

1665622406

2 files

1665536477

2 files

1665449298

2 files

1665363275

2 files

1665276432

2 files

1665189941

2 files

1665104558

2 files

1665017508

2 files

1664931387

2 files

1664845015

2 files

1664758019

2 files

1664672120

2 files

1664586180

2 files

1664500124

2 files

1664413119

2 files

1664326431

2 files

1664239939

2 files

1664153311

2 files

1664066579

2 files

1663980556

2 files

1663894325

2 files

1663807505

2 files

1663721338

2 files

1663634717

2 files

1663548260

2 files

1663462022

2 files

1663375305

2 files

1663289484

2 files

1663202860

2 files

1663116220

2 files

1663029890

2 files

1662943349

2 files

1662856992

2 files

1662770719

2 files

1662684336

2 files

1662597786

2 files

1662511458

2 files

1662425155

2 files

1662338875

2 files

1662266651

2 files

1662079294

2 files

1661992738

2 files

1661907132

2 files

1661820635

2 files

1661733847

2 files

1661647448

2 files

1661560648

2 files

1661474584

2 files

1661388381

2 files

1661301782

2 files

1661215905

2 files

1661128916

2 files

1661042273

2 files

1660955879

2 files

1660869737

2 files

1660783382

2 files

1660696995

2 files

1660610791

2 files

1660524004

2 files

1660437660

2 files

1660350967

2 files

1660264784

2 files

1660178438

2 files

1660091935

2 files

1660005937

2 files

1659918992

2 files

1659833016

2 files

1659746312

2 files

1659660395

2 files

1659573812

2 files

1659487509

2 files

1659400921

2 files

1659314899

2 files

1659227950

2 files

1659141333

2 files

1659055239

2 files

1658968756

2 files

1658882565

2 files

1658796114

2 files

1658709632

2 files

1658623365

2 files

1658536752

2 files

1658450676

2 files

1658364082

2 files

1658277393

2 files

1658191573

2 files

1658104764

2 files

1658018463

2 files

1657932105

2 files

1657846089

2 files

1657759396

2 files

1657672712

2 files

1657586483

2 files

1657499877

2 files

1657413821

2 files

1657326792

2 files

1657240988

2 files

1657154550

2 files

1657068183

2 files

1656981501

2 files

1656895405

2 files

1656808757

2 files

1656722373

2 files

1656636019

2 files

1656549322

2 files

1656462999

2 files

1656376729

2 files

1656290525

2 files

1656204158

2 files

1656117502

2 files

1656031051

2 files

1655944414

2 files

1655858435

2 files

1655771903

2 files

1655685374

2 files

1655599065

2 files

1655512686

2 files

1655425939

2 files

1655339812

2 files

1655253575

2 files

1655167377

2 files

1655080798

2 files

1654994222

2 files

1654907789

2 files

1654821568

2 files

1654735099

2 files

1654648561

2 files

1654561780

2 files

1654475671

2 files

1654389671

2 files

1654303027

2 files

1654216271

2 files

1654130596

2 files

1654044088

2 files

1653957420

2 files

1653871308

2 files

1653784622

2 files

1653698261

2 files

1653611860

2 files

1653525464

2 files

1653439134

2 files

1653352801

2 files

1653266219

2 files

1653179798

2 files

1653093260

2 files

1653006923

2 files

1652920824

2 files

1652833867

2 files

1652747790

2 files

1652661400

2 files

1652575504

2 files

1652488920

2 files

1652402588

2 files

1652315790

2 files

1652229485

2 files

1652142996

2 files

1652056514

2 files

1651970028

2 files

1651883658

2 files

1651797198

2 files

1651710913

2 files

1651624565

2 files

1651538151

2 files

1651451723

2 files

1651365808

2 files

1651279154

2 files

1651192517

2 files

1651106725

2 files

1651019996

2 files

1650933432

2 files

1650846653

2 files

1650760328

2 files

1650673970

2 files

1650587818

2 files

1650501315

2 files

1650414882

2 files

1650328291

2 files

1650242274

2 files

1650155683

2 files

1650069142

2 files

1649982662

2 files

1649896737

2 files

1649810010

2 files

1649723391

2 files

1649637145

2 files

1649550665

2 files

1649464257

2 files

1649378039

2 files

1649291675

2 files

1649205182

2 files

1649118645

2 files

1649032258

2 files

1648946124

2 files

1648859414

2 files

1648773289

2 files

1648686638

2 files

1648600219

2 files

1648514124

2 files

1648427416

2 files

1648341271

2 files

1648254710

2 files

1648168141

2 files

1648081862

2 files

1647995650

2 files

1647909038

2 files

1647822575

2 files

1647736178

2 files

1647649698

2 files

1647563380

2 files

1647476878

2 files

1647390550

2 files

1647304128

2 files

1647217923

2 files

1647131268

2 files

1647044815

2 files

1646958728

2 files

1646872051

2 files

1646785727

2 files

1646699288

2 files

1646612890

2 files

1646526497

2 files

1646440163

2 files

1646353938

2 files

1646267416

2 files

1646180940

2 files

1646094525

2 files

1646008171

2 files

1645921750

2 files

1645835209

2 files

1645748868

2 files

1645662454

2 files

1645576245

2 files

1645489567

2 files

1645403197

2 files

1645317046

2 files

1645230507

2 files

1645144056

2 files

1645057341

2 files

1644970996

2 files

1644884639

2 files

1644798190

2 files

1644711930

2 files

1644625501

2 files

1644538997

2 files

1644452627

2 files

1644366285

2 files

1644279741

2 files

1644193330

2 files

1644107301

2 files

1644020310

2 files

1643934096

2 files

1643847746

2 files

1643761430

2 files

1643674945

2 files

1643588522

2 files

1643502153

2 files

1643415617

2 files

1643329301

2 files

1643242915

2 files

1643156594

2 files

1643070225

2 files

1642983695

2 files

1642897296

2 files

1642810824

2 files

1642724456

2 files

1642638342

2 files

1642551679

2 files

1642465481

2 files

1642379010

2 files

1642292684

2 files

1642206167

2 files

1642119794

2 files

1642033544

2 files

1641947044

2 files

1641860699

2 files

1641774208

2 files

1641687862

2 files

1641601407

2 files

1641515020

2 files

1641428599

2 files

1641342268

2 files

1641255779

2 files

1641169358

2 files

1641083021

2 files

1640996595

2 files

1640910202

2 files

1640823746

2 files

1640737315

2 files

1640650945

2 files

1640564572

2 files

1640478254

2 files

1640391694

2 files

1640305311

2 files

1640218962

2 files

1640132613

2 files

1640046211

2 files

1639959754

2 files

1639873424

2 files

1639786917

2 files

1639700554

2 files

1639614062

2 files

1639527707

2 files

1639441312

2 files

1639354888

2 files

1639268560

2 files

1639182000

2 files

1639095695

2 files

1639009270

2 files

1638922920

2 files

1638836517

2 files

1638750105

2 files

1638663766

2 files

1638577264

2 files

1638490852

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page