Tensorflow TypeError:输入类型不支持ufunc“反转”,

Tensorflow TypeError:输入类型不支持ufunc“反转”,,tensorflow,python-3.5,unet,Tensorflow,Python 3.5,Unet,我已经用tensorflow克隆了U-net的存储库 labels = np.zeros((ny, nx, self.n_class), dtype=np.float32) labels[..., 1] = label labels[..., 0] = ~label 我在第三行得到一个错误,说: TypeError:输入类型不支持ufunc“invert”,并且无法根据强制转换规则安全地将输入强制为任何受支持的类型 如何调试此问题?听起来这可能与

我已经用tensorflow克隆了U-net的存储库

        labels = np.zeros((ny, nx, self.n_class), dtype=np.float32)
        labels[..., 1] = label
        labels[..., 0] = ~label
我在第三行得到一个错误,说:

TypeError:输入类型不支持ufunc“invert”,并且无法根据强制转换规则安全地将输入强制为任何受支持的类型


如何调试此问题?

听起来这可能与Theano issues tracker中的问题相同

错误来自numpy,并且是因为您混合了符号和数字scipy代码。这是行不通的

如果你想在theano中使用一个scipy函数,你必须把它包装成一个op,也许可以用@as_op

反转函数只能应用于np.bool数组

根据U-net回购调用层次结构,如下所示:

_加载数据和标签:准备所有数据 _下一个_数据:加载数据为np.float32,重要加载标签为np.bool _加载_文件:请检查生成的数组是否为np.bool。 例如:


实际上,在这个被剪掉的片段中没有tensorflow代码,看起来一切都还很简单。你能把错误的整个堆栈跟踪都贴出来吗?
def _load_file(self, path, dtype=np.float32):
    img = Image.open(path)
    img = np.array(img, dtype=np.float32)
    img = cv2.copyMakeBorder(img, top=self.border, bottom=self.border, left=self.border, right=self.border, borderType=cv2.BORDER_CONSTANT, value=[0, 0, 0])
    return np.array(img, dtype)