Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PyTorch 1.5 not working with fastai #507

Open
nickcorona opened this issue Apr 26, 2020 · 7 comments
Open

PyTorch 1.5 not working with fastai #507

nickcorona opened this issue Apr 26, 2020 · 7 comments

Comments

@nickcorona
Copy link

nickcorona commented Apr 26, 2020

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
@abdnafees
Copy link

Encountering the same issue here

What have I tried so far:

  1. Downgrading PyTorch to 1.4.0 and 1.2.0

What do I expect:

  1. Follow lesson1 with Jeremy and complete by today, have been stuck since past two days.

Screenshot from 2020-04-28 22-28-07

@guixermo
Copy link

samme issue here...

@brenoafb
Copy link

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).

@guixermo
Copy link

guixermo commented Apr 29, 2020

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).

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.

@ghost
Copy link

ghost commented May 1, 2020

Check out my answer. See if it works for you. comment on pytorch issue about get_transform()

@guixermo
Copy link

guixermo commented May 1, 2020

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)

@abdnafees
Copy link

Visit my post on fastai forums for the solution it worked for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants