Hi,
I’m trying to create a Dataloader for an Image Classification task from the Cifar10 Pytorch dataset:
import torchvision.datasets as datasets
from fastai.vision.all import *
train_dataset = datasets.CIFAR10(root = 'datasets/',train = True ,transform = transforms.ToTensor(), download=True)
train_loader = DataLoader(train_dataset, bs = 64, shuffle=True)
but when I try to train the model:
learn = vision_learner(train_loader , resnet34, metrics=error_rate, n_out = 10, loss_func=CrossEntropyLossFlat())`
learn.fine_tune(1)
I’m getting the following error:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_4280\3178258886.py in
----> 1 learn = vision_learner(train_loader, resnet34, metrics=error_rate, n_out = 10, loss_func=CrossEntropyLossFlat())
2 learn.fine_tune(1)
c:\Users\Guillermo\Anaconda3\envs\nst\lib\site-packages\fastai\vision\learner.py in vision_learner(dls, arch, normalize, n_out, pretrained, loss_func, opt_func, lr, splitter, cbs, metrics, path, model_dir, wd, wd_bn_bias, train_bn, moms, cut, init, custom_head, concat_pool, pool, lin_ftrs, ps, first_bn, bn_final, lin_first, y_range, **kwargs)
225 if normalize: _timm_norm(dls, cfg, pretrained, n_in)
226 else:
--> 227 if normalize: _add_norm(dls, meta, pretrained, n_in)
228 model = create_vision_model(arch, n_out, pretrained=pretrained, **model_args)
229
c:\Users\Guillermo\Anaconda3\envs\nst\lib\site-packages\fastai\vision\learner.py in _add_norm(dls, meta, pretrained, n_in)
194 if stats is None: return
195 if n_in != len(stats[0]): return
--> 196 if not dls.after_batch.fs.filter(risinstance(Normalize)):
197 dls.add_tfms([Normalize.from_stats(*stats)],'after_batch')
198
AttributeError: 'function' object has no attribute 'fs'
I’ve read the following post with a similar problem, but it does not work:
How would be the right way to load this cifar10 pytorch dataset into a dataloader to fit a learner?
Thank you!