PyTorch 1.5 not working with fastai
nickcorona opened this issue · 7 comments
I get this stack trace when trying to run this command from the first lesson's juptyer notebook.
data = ImageDataBunch.from_name_re(path_img, fnames, pat, ds_tfms=get_transforms(), size=224, bs=bs
).normalize(imagenet_stats)
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\data_block.py in _check_kwargs(ds, tfms, **kwargs)
593 x = ds[0]
--> 594 try: x.apply_tfms(tfms, **kwargs)
595 except Exception as e:
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\image.py in apply_tfms(self, tfms, do_resolve, xtra, size, resize_method, mult, padding_mode, mode, remove_out)
122 x = tfm(x, size=_get_crop_target(size,mult=mult), padding_mode=padding_mode)
--> 123 else: x = tfm(x)
124 return x.refresh()
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\image.py in __call__(self, x, *args, **kwargs)
523 "Randomly execute our tfm on `x`."
--> 524 return self.tfm(x, *args, **{**self.resolved, **kwargs}) if self.do_run else x
525
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\image.py in __call__(self, p, is_random, use_on_y, *args, **kwargs)
469 "Calc now if `args` passed; else create a transform called prob `p` if `random`."
--> 470 if args: return self.calc(*args, **kwargs)
471 else: return RandTransform(self, kwargs=kwargs, is_random=is_random, use_on_y=use_on_y, p=p)
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\image.py in calc(self, x, *args, **kwargs)
474 "Apply to image `x`, wrapping it if necessary."
--> 475 if self._wrap: return getattr(x, self._wrap)(self.func, *args, **kwargs)
476 else: return self.func(x, *args, **kwargs)
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\image.py in affine(self, func, *args, **kwargs)
182 m = tensor(func(*args, **kwargs)).to(self.device)
--> 183 self.affine_mat = self.affine_mat @ m
184 return self
RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #3 'mat2' in call to _th_addmm_out
During handling of the above exception, another exception occurred:
Exception Traceback (most recent call last)
in
----> 1 data = ImageDataBunch.from_name_re(path_img, fnames, pat, ds_tfms=get_transforms(), size=224, bs=bs
2 ).normalize(imagenet_stats)
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\data.py in from_name_re(cls, path, fnames, pat, valid_pct, **kwargs)
156 assert res,f'Failed to find "{pat}" in "{fn}"'
157 return res.group(1)
--> 158 return cls.from_name_func(path, fnames, _get_label, valid_pct=valid_pct, **kwargs)
159
160 @staticmethod
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\data.py in from_name_func(cls, path, fnames, label_func, valid_pct, seed, **kwargs)
145 "Create from list of `fnames` in `path` with `label_func`."
146 src = ImageList(fnames, path=path).split_by_rand_pct(valid_pct, seed)
--> 147 return cls.create_from_ll(src.label_from_func(label_func), **kwargs)
148
149 @classmethod
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\vision\data.py in create_from_ll(cls, lls, bs, val_bs, ds_tfms, num_workers, dl_tfms, device, test, collate_fn, size, no_check, resize_method, mult, padding_mode, mode, tfm_y)
94 mode:str='bilinear', tfm_y:bool=False)->'ImageDataBunch':
95 "Create an `ImageDataBunch` from `LabelLists` `lls` with potential `ds_tfms`."
---> 96 lls = lls.transform(tfms=ds_tfms, size=size, resize_method=resize_method, mult=mult, padding_mode=padding_mode,
97 mode=mode, tfm_y=tfm_y)
98 if test is not None: lls.add_test_folder(test)
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\data_block.py in transform(self, tfms, **kwargs)
503 if not tfms: tfms=(None,None)
504 assert is_listy(tfms) and len(tfms) == 2, "Please pass a list of two lists of transforms (train and valid)."
--> 505 self.train.transform(tfms[0], **kwargs)
506 self.valid.transform(tfms[1], **kwargs)
507 if self.test: self.test.transform(tfms[1], **kwargs)
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\data_block.py in transform(self, tfms, tfm_y, **kwargs)
722 def transform(self, tfms:TfmList, tfm_y:bool=None, **kwargs):
723 "Set the `tfms` and `tfm_y` value to be applied to the inputs and targets."
--> 724 _check_kwargs(self.x, tfms, **kwargs)
725 if tfm_y is None: tfm_y = self.tfm_y
726 tfms_y = None if tfms is None else list(filter(lambda t: getattr(t, 'use_on_y', True), listify(tfms)))
~\AppData\Local\Programs\Python\Python38\lib\site-packages\fastai\data_block.py in _check_kwargs(ds, tfms, **kwargs)
594 try: x.apply_tfms(tfms, **kwargs)
595 except Exception as e:
--> 596 raise Exception(f"It's not possible to apply those transforms to your dataset:\n {e}")
597
598 class LabelList(Dataset):
Exception: It's not possible to apply those transforms to your dataset:
Expected object of scalar type Float but got scalar type Double for argument #3 'mat2' in call to _th_addmm_out
samme issue here...
I have encountered a similar problem.
Removing the ds_tfms=get_transforms()
argument solves it for me.
Results may vary, since then data augmentation is not performed (I think).
I have encountered a similar problem.
Removing theds_tfms=get_transforms()
argument solves it for me.
Results may vary, since then data augmentation is not performed (I think).
Thats it, if you remove that, it works but then it doesn't do any transformation to the images (size, bright, flip...). The results will be worst.
But get_transform() without arguments, does random transformations, so i don get it.
Check out my answer. See if it works for you. comment on pytorch issue about get_transform()
Check out my answer. See if it works for you. comment on pytorch issue about get_transform()
this worked for me on Google Colab.
See my response there.
#511 (comment)
Visit my post on fastai forums for the solution it worked for me