Python的jupyterlab和Generator一点闲杂记录:关于不能是用远程imshow和torch
问题现象
当在Notebook中使用opencv.imshow后,会造成Notebook崩溃。
原因分析
1、opencv的cv2.imshow在jupyter这样的client/server环境下存在问题。 而matplotlib不存在这个问题。
解决方法
参考如下示例进行图片显示。注意opencv加载的是BGR格式, 而matplotlib显示的是RGB格式。
Python语言:
from matplotlib import pyplot as plt
import cv2
img = cv2.imread('图片路径')
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.title('my picture')
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
2、torch.Generator 随机数生成器
torch.Generator 随机数生成器
PyTorch 通过 torch.Generator
类来操作随机数
我们通常不会手动实例化 torch.Generator
, 当需要随机数时, PyTorch 会自动创建一个默认的 torch.Generator
实例
import torch
# 设置随机数种子
torch.manual_seed(0)
# 查看随机数种子 结果为 0
torch.initial_seed()
# 获取默认的 Generator 实例
g_1 = torch.default_generator
# 通过实例调用 结果也为 0
g_1.initial_seed()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
通过 torch.xxx 和 Generator 实例均可调用 manual_seed() 以及 initial_seed(), 前者相当于使用默认的 Generator 实例去调用相应方法
通常使用的函数 torch.manual_seed()
会作用到默认的 Generator 实例上
函数 torch.manual_seed()
会返回默认的 Generator 实例
g_2 = torch.manual_seed(0)
# 结果为 True
g_1 is g_2
- 1
- 2
- 3
- 4
在使用需要随机数的函数时, 如果没有指定 Generator 实例, 则会使用默认的 Generator 实例, 可以通过关键字参数 generator 指定随机数生成器
# 使用默认的随机数生成器
torch.manual_seed(1)
# 结果 tensor([0, 4, 2, 3, 1])
torch.randperm(5)
# 手动创建随机数生成器
G = torch.Generator()
G.manual_seed(1)
# 结果也为 tensor([0, 4, 2, 3, 1])
torch.randperm(5, generator=G)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
Generator 实例会区分 CPU 与 GPU 两种设备, 默认为 CPU 类型
# 结果为 device(type='cpu')
G.device
- 1
- 2
mindspore中没有提供此功能
文章来源: blog.csdn.net,作者:irrationality,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_54227557/article/details/126090338
- 点赞
- 收藏
- 关注作者
评论(0)