當在Notebook中使用opencv.imshow後,會造成Notebook崩潰。
參考如下示例進行圖片顯示。注意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()
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()
通過 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
在使用需要隨機數的函數時, 如果沒有指定 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)
Generator 實例會區分 CPU 與 GPU 兩種設備, 默認為 CPU 類型
# 結果為 device(type='cpu')
G.device
mindspore中沒有提供此功能