我已经使用tensorflow克隆了U-net的存储库。
labels = np.zeros((ny, nx, self.n_class), dtype=np.float32)
labels[..., 1] = label
labels[..., 0] = ~label
我在第3行收到错误说:
TypeError :ufunc' 反转'不支持输入类型,并且根据投射规则无法安全地将输入强制转换为任何支持的类型' 安全'''
如何调试?
答案 0 :(得分:1)
invert
函数只能应用于np.bool数组。
根据U-net repo调用层次结构是这样的:
np.bool
np.bool
。E.g:
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)
答案 1 :(得分:0)
听起来这可能与Theano
问题跟踪器here中的问题相同。
错误来自于numpy,而且是因为你混合了符号(Theano)和数字(scipy)代码。这不起作用。
如果你想在theano中使用一个scipy函数,你必须把它作为一个op包装起来(也许用@as_op http://deeplearning.net/software/theano/library/compile/ops.html#theano.compile.ops.as_op)。