问题:
在运行代码masks = torch.as_tensor(masks, dtype=torch.uint8)
出现了TypeError: can’t convert np.ndarray of type numpy.bool_.,而这个是因为不能将bool类型的转化,表明了np.bool和tensor之间是不能直接转化的。
解决方案:
而实际上这个解决方案已经包含在了后面的信息中,
TypeError: can’t convert np.ndarray of type numpy.bool_. The only supported types are: double, float, float16, int64, int32, and uint8.
这个即表示了仅仅只有后面这些类型的可以转换。
因此我上面写的代码中,masks是一个bool值,因此为了转化为tensor的uint8类型,我选择在array中先转化为uint8 ,于是写下了如下的代码
masks = masks.astype(np.uint8)
masks = torch.as_tensor(masks,dytpe=torch.uint8)
而第一行代码即先在np.array中先转换为uint8,满足要求后再转化为tensor
总结
虽然这个问题解决了,但是还是不清楚哪个版本可以运行,哪些版本不能运行,我的版本应该是torch1.0.1版本的,出现了该错误。等找到原因后再来更新。