Python的jupyterlab和Generator一点闲杂记录:关于不能是用远程imshow和torch

举报
irrational 发表于 2022/08/02 23:51:43 2022/08/02
【摘要】 文章目录 问题现象原因分析 1、opencv的cv2.imshow在jupyter这样的client/server环境下存在问题。 而matplotlib不存在这个问题。解决方法 ...

问题现象

当在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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。