---------------------------------------------------------------------------
AcceleratorError Traceback (most recent call last)
Cell In[2], line 6
2 files = get_image_files(path/"images")
4 def label_func(f): return f[0].isupper()
----> 6 dls = ImageDataLoaders.from_name_func(path, files, label_func, item_tfms=Resize(64))
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/vision/data.py:150, in ImageDataLoaders.from_name_func(cls, path, fnames, label_func, **kwargs)
148 raise ValueError("label_func couldn't be lambda function on Windows")
149 f = using_attr(label_func, 'name')
--> 150 return cls.from_path_func(path, fnames, f, **kwargs)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/vision/data.py:136, in ImageDataLoaders.from_path_func(cls, path, fnames, label_func, valid_pct, seed, item_tfms, batch_tfms, img_cls, **kwargs)
130 "Create from list of `fnames` in `path`s with `label_func`"
131 dblock = DataBlock(blocks=(ImageBlock(img_cls), CategoryBlock),
132 splitter=RandomSplitter(valid_pct, seed=seed),
133 get_y=label_func,
134 item_tfms=item_tfms,
135 batch_tfms=batch_tfms)
--> 136 return cls.from_dblock(dblock, fnames, path=path, **kwargs)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/data/core.py:280, in DataLoaders.from_dblock(cls, dblock, source, path, bs, val_bs, shuffle, device, **kwargs)
269 @classmethod
270 def from_dblock(cls,
271 dblock, # `DataBlock` object
(...) 278 **kwargs
279 ):
--> 280 return dblock.dataloaders(source, path=path, bs=bs, val_bs=val_bs, shuffle=shuffle, device=device, **kwargs)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/data/block.py:159, in DataBlock.dataloaders(self, source, path, verbose, **kwargs)
157 dsets = self.datasets(source, verbose=verbose)
158 kwargs = {**self.dls_kwargs, **kwargs, 'verbose': verbose}
--> 159 return dsets.dataloaders(path=path, after_item=self.item_tfms, after_batch=self.batch_tfms, **kwargs)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/data/core.py:333, in FilteredBase.dataloaders(self, bs, shuffle_train, shuffle, val_shuffle, n, path, dl_type, dl_kwargs, device, drop_last, val_bs, **kwargs)
331 dl = dl_type(self.subset(0), **merge(kwargs,def_kwargs, dl_kwargs[0]))
332 def_kwargs = {'bs':bs if val_bs is None else val_bs,'shuffle':val_shuffle,'n':None,'drop_last':False}
--> 333 dls = [dl] + [dl.new(self.subset(i), **merge(kwargs,def_kwargs,val_kwargs,dl_kwargs[i]))
334 for i in range(1, self.n_subsets)]
335 return self._dbunch_type(*dls, path=path, device=device)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/data/core.py:104, in TfmdDL.new(self, dataset, cls, **kwargs)
102 if not hasattr(self, '_n_inp') or not hasattr(self, '_types'):
103 try:
--> 104 self._one_pass()
105 res._n_inp,res._types = self._n_inp,self._types
106 except Exception as e:
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/data/core.py:86, in TfmdDL._one_pass(self)
84 def _one_pass(self):
85 b = self.do_batch([self.do_item(None)])
---> 86 if self.device is not None: b = to_device(b, self.device)
87 its = self.after_batch(b)
88 self._n_inp = 1 if not isinstance(its, (list,tuple)) or len(its)==1 else len(its)-1
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/torch_core.py:287, in to_device(b, device, non_blocking)
285 if isinstance(o,Tensor): return o.to(device, non_blocking=non_blocking)
286 return o
--> 287 return apply(_inner, b)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/torch_core.py:224, in apply(func, x, *args, **kwargs)
222 def apply(func, x, *args, **kwargs):
223 "Apply `func` recursively to `x`, passing on args"
--> 224 if is_listy(x): return type(x)([apply(func, o, *args, **kwargs) for o in x])
225 if isinstance(x,(dict,MutableMapping)): return {k: apply(func, v, *args, **kwargs) for k,v in x.items()}
226 res = func(x, *args, **kwargs)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/torch_core.py:226, in apply(func, x, *args, **kwargs)
224 if is_listy(x): return type(x)([apply(func, o, *args, **kwargs) for o in x])
225 if isinstance(x,(dict,MutableMapping)): return {k: apply(func, v, *args, **kwargs) for k,v in x.items()}
--> 226 res = func(x, *args, **kwargs)
227 return res if x is None else retain_type(res, x)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/torch_core.py:285, in to_device.<locals>._inner(o)
283 def _inner(o):
284 # ToDo: add TensorDict when released
--> 285 if isinstance(o,Tensor): return o.to(device, non_blocking=non_blocking)
286 return o
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/fastai/torch_core.py:384, in TensorBase.__torch_function__(cls, func, types, args, kwargs)
382 if cls.debug and func.__name__ not in ('__str__','__repr__'): print(func, types, args, kwargs)
383 if _torch_handled(args, cls._opt, func): types = (torch.Tensor,)
--> 384 res = super().__torch_function__(func, types, args, ifnone(kwargs, {}))
385 dict_objs = _find_args(args) if args else _find_args(list(kwargs.values()))
386 if issubclass(type(res),TensorBase) and dict_objs: res.set_meta(dict_objs[0],as_copy=True)
File ~/miniconda3/envs/dev/lib/python3.12/site-packages/torch/_tensor.py:1654, in Tensor.__torch_function__(cls, func, types, args, kwargs)
1651 return NotImplemented
1653 with _C.DisableTorchFunctionSubclass():
-> 1654 ret = func(*args, **kwargs)
1655 if func in get_default_nowrap_functions():
1656 return ret
AcceleratorError: CUDA error: out of memory
Search for `cudaErrorMemoryAllocation' in https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html for more information.
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.