小编Oma*_*idi的帖子

cv2.imshow() 在 PyCharm (MacOS) 中无法正常工作

环境:

  • 解释器:Python 3.9.0
  • 操作系统:macOS Big Sur

这个简单的代码运行良好,没有错误;但是,没有生成图像,也没有显示任何内容,我被迫手动停止代码并中断它退出,否则它似乎会永远运行?这段完全相同的代码在我的 Windows 笔记本电脑上运行良好。有什么线索吗?代码:

import cv2

CV_cat = cv2.imread('Cat.jpg')
cv2.imshow('displaymywindows', CV_cat)
cv2.waitKey(1500)
Run Code Online (Sandbox Code Playgroud)

python opencv python-3.x

10
推荐指数
1
解决办法
1万
查看次数

如何理解在 PyTorch 中创建叶张量?

来自 PyTorch文档

b = torch.rand(10, requires_grad=True).cuda()
b.is_leaf
False
# b was created by the operation that cast a cpu Tensor into a cuda Tensor

e = torch.rand(10).cuda().requires_grad_()
e.is_leaf
True
# e requires gradients and has no operations creating it

f = torch.rand(10, requires_grad=True, device="cuda")
f.is_leaf
True
# f requires grad, has no operation creating it
Run Code Online (Sandbox Code Playgroud)

但是,当ef叶张量也都是从 CPU 张量转换为 Cuda 张量(一种运算)时,为什么它们是 Cuda 张量?

是因为Tensor在就地操作之前e就被投进了Cuda吗?requires_grad_()

因为f是通过赋值device="cuda"而不是通过方法来转换的.cuda()

python documentation pytorch

10
推荐指数
1
解决办法
8155
查看次数

如何将数组与数组列表进行比较?

假设我有一个包含一堆numpyndarrays(甚至torch张量)的列表:

a, b, c = np.random.rand(3, 3), np.random.rand(3, 3), np.random.rand(3, 3)
collection = [a, b, c]
Run Code Online (Sandbox Code Playgroud)

现在,如果我要检查数组b是否在collection(假设我不知道数组中存在什么collection),然后尝试:b in collection吐出以下错误:

ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()

这同样适用于包含数组的元组。

解决此问题的一种方法是进行列表理解:

True in [(b == x).all() for x in collection]
Run Code Online (Sandbox Code Playgroud)

但是,这需要一个for循环,我想知道是否有更“有效”的方法来实现这一点?

python arrays numpy list python-3.x

5
推荐指数
1
解决办法
94
查看次数

标签 统计

python ×3

python-3.x ×2

arrays ×1

documentation ×1

list ×1

numpy ×1

opencv ×1

pytorch ×1