【问题标题】:ValueError: non-scalar numpy.ndarray cannot be used for fill - CuPyValueError:非标量 numpy.ndarray 不能用于填充 - CuPy
【发布时间】:2021-10-08 13:01:44
【问题描述】:

当我尝试将库 CuPyosgeo 一起使用时,我遇到了这个错误:

ValueError: non-scalar numpy.ndarray cannot be used for fill

我正在尝试填充这个数组:

im = cupy.zeros([ds.RasterYSize, ds.RasterXSize, ds.RasterCount], dtype=np.float32)

    for x in range(1, ds.RasterCount + 1):
        band = ds.GetRasterBand(x)
        im[:, :, x - 1] = band.ReadAsArray() #error here

有什么解决办法吗?

【问题讨论】:

    标签: python multidimensional-array gdal valueerror cupy


    【解决方案1】:

    由于 CuPy 库适用于 GPU,因此您无法访问 CPU 的内存。您已将 im 创建为一个 cupy 数组。 Osgeo 使用的是 Numpy,而不是 Cupy,因此您需要将 numpy 使用此命令生成的数组传递给 GPU 内存:

    im[:, :, x - 1] = cupy.asarray(band.ReadAsArray())
    

    查看官方文档:https://docs.cupy.dev/en/stable/reference/generated/cupy.asarray.html

    还要检查这个: https://docs.cupy.dev/en/stable/reference/generated/cupy.asnumpy.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      相关资源
      最近更新 更多