Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy Pytorch Dataloader-TypeError:未找到与ufunc true_divide的指定签名和强制转换匹配的循环_Numpy_Matplotlib_Pytorch_Dataloader - Fatal编程技术网

Numpy Pytorch Dataloader-TypeError:未找到与ufunc true_divide的指定签名和强制转换匹配的循环

Numpy Pytorch Dataloader-TypeError:未找到与ufunc true_divide的指定签名和强制转换匹配的循环,numpy,matplotlib,pytorch,dataloader,Numpy,Matplotlib,Pytorch,Dataloader,我抛出了这个错误,不幸的是,我找不到任何建议可以解决我的问题。 错误来自我的pytorch数据加载器,当我手动运行它的内容时,没有问题 以下是错误: --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-30-f7

我抛出了这个错误,不幸的是,我找不到任何建议可以解决我的问题。 错误来自我的pytorch数据加载器,当我手动运行它的内容时,没有问题

以下是错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-30-f7e6029a4c31> in <module>
----> 1 x = runmodel(epochs=20)

<ipython-input-29-3bb7c79f0006> in runmodel(epochs)
     14         print("Epoch = "+str(epoch))
     15         with torch.set_grad_enabled(True):
---> 16             epoch_train_loss = training(model=model)
     17             print("Train Loss: ",epoch_train_loss)
     18             track_epoch_train_loss.append(epoch_train_loss)

<ipython-input-28-626c82187ad7> in training(model)
      3     current_loss = 0
      4     current_correct = 0
----> 5     for t, (train, y_train) in enumerate(training_generator):
      6         model.train()
      7         train = train.to(device=device, dtype=dtype)

~/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py in __next__(self)
    343 
    344     def __next__(self):
--> 345         data = self._next_data()
    346         self._num_yielded += 1
    347         if self._dataset_kind == _DatasetKind.Iterable and \

~/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py in _next_data(self)
    383     def _next_data(self):
    384         index = self._next_index()  # may raise StopIteration
--> 385         data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
    386         if self._pin_memory:
    387             data = _utils.pin_memory.pin_memory(data)

~/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py in fetch(self, possibly_batched_index)
     42     def fetch(self, possibly_batched_index):
     43         if self.auto_collation:
---> 44             data = [self.dataset[idx] for idx in possibly_batched_index]
     45         else:
     46             data = self.dataset[possibly_batched_index]

~/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py in <listcomp>(.0)
     42     def fetch(self, possibly_batched_index):
     43         if self.auto_collation:
---> 44             data = [self.dataset[idx] for idx in possibly_batched_index]
     45         else:
     46             data = self.dataset[possibly_batched_index]

<ipython-input-8-4711e033b45e> in __getitem__(self, index)
     12 
     13         ID = self.ids[index]
---> 14         X = np.array(plt.imread('train/' + ID + '.png' ),dtype = np.float32)
     15         X = np.repeat(X[:, :, np.newaxis], 3, axis=2)
     16         X = np.transpose(X)

~/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py in imread(fname, format)
   2228 @_copy_docstring_and_deprecators(matplotlib.image.imread)
   2229 def imread(fname, format=None):
-> 2230     return matplotlib.image.imread(fname, format)
   2231 
   2232 

~/anaconda3/lib/python3.7/site-packages/matplotlib/image.py in imread(fname, format)
   1486     with img_open(fname) as image:
   1487         return (_pil_png_to_float_array(image)
-> 1488                 if isinstance(image, PIL.PngImagePlugin.PngImageFile) else
   1489                 pil_to_array(image))
   1490 

~/anaconda3/lib/python3.7/site-packages/matplotlib/image.py in _pil_png_to_float_array(pil_png)
   1653         return np.divide(pil_png, 2**4 - 1, dtype=np.float32)
   1654     if rawmode == "L":  # Grayscale.
-> 1655         return np.divide(pil_png, 2**8 - 1, dtype=np.float32)
   1656     if rawmode == "I;16B":  # Grayscale.
   1657         return np.divide(pil_png, 2**16 - 1, dtype=np.float32)

TypeError: No loop matching the specified signature and casting
was found for ufunc true_divide
我已经尝试确保数据类型是float,升级和降级numpy/matplotlib。 提前感谢任何人提供的任何帮助

class Dataset(Dataset):
    def __init__(self, ids):
        'Initialization'
        self.ids = ids

    def __len__(self):
        'Denotes the total number of samples'
        return len(self.ids)

    def __getitem__(self, index):
        'Generates one sample of data'
    
        ID = self.ids[index]
        X = np.array(plt.imread('train/' + ID + '.png' ),dtype = np.float32)
        X = np.repeat(X[:, :, np.newaxis], 3, axis=2)
        X = np.transpose(X)
    
        y = np.array(plt.imread('masks/' + ID + '.png'), dtype = np.float32)


        return X, y