欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch隨機采樣操作SubsetRandomSampler()

 更新時間:2020年07月07日 11:41:25   作者:tsz danger  
這篇文章主要介紹了pytorch隨機采樣操作SubsetRandomSampler(),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

這篇文章記錄一個采樣器都隨機地從原始的數(shù)據(jù)集中抽樣數(shù)據(jù)。抽樣數(shù)據(jù)采用permutation。 生成任意一個下標重排,從而利用下標來提取dataset中的數(shù)據(jù)的方法

需要的庫

import torch

使用方法

這里以MNIST舉例

train_dataset = dsets.MNIST(root='./data', #文件存放路徑
              train=True,  #提取訓練集
              transform=transforms.ToTensor(), #將圖像轉化為Tensor
              download=True)

sample_size = len(train_dataset)
sampler1 = torch.utils.data.sampler.SubsetRandomSampler(
  np.random.choice(range(len(train_dataset)), sample_size))

代碼詳解

np.random.choice()

#numpy.random.choice(a, size=None, replace=True, p=None)
#從a(只要是ndarray都可以,但必須是一維的)中隨機抽取數(shù)字,并組成指定大小(size)的數(shù)組
#replace:True表示可以取相同數(shù)字,F(xiàn)alse表示不可以取相同數(shù)字
#數(shù)組p:與數(shù)組a相對應,表示取數(shù)組a中每個元素的概率,默認為選取每個元素的概率相同。

那么這里就相當于抽取了一個全排列

torch.utils.data.sampler.SubsetRandomSampler

# 會根據(jù)后面給的列表從數(shù)據(jù)集中按照下標取元素
# class torch.utils.data.SubsetRandomSampler(indices):無放回地按照給定的索引列表采樣樣本元素。

所以就可以了。

補充知識:Pytorch學習之torch----隨機抽樣、序列化、并行化

1. torch.manual_seed(seed)

說明:設置生成隨機數(shù)的種子,返回一個torch._C.Generator對象。使用隨機數(shù)種子之后,生成的隨機數(shù)是相同的。

參數(shù):

seed(int or long) -- 種子

>>> import torch
>>> torch.manual_seed(1)
<torch._C.Generator object at 0x0000019684586350>
>>> a = torch.rand(2, 3)
>>> a
tensor([[0.7576, 0.2793, 0.4031],
    [0.7347, 0.0293, 0.7999]])
>>> torch.manual_seed(1)
<torch._C.Generator object at 0x0000019684586350>
>>> b = torch.rand(2, 3)
>>> b
tensor([[0.7576, 0.2793, 0.4031],
    [0.7347, 0.0293, 0.7999]])
>>> a == b
tensor([[1, 1, 1],
    [1, 1, 1]], dtype=torch.uint8)

2. torch.initial_seed()

說明:返回生成隨機數(shù)的原始種子值

>>> torch.manual_seed(4)
<torch._C.Generator object at 0x0000019684586350>
>>> torch.initial_seed()
4

3. torch.get_rng_state()

說明:返回隨機生成器狀態(tài)(ByteTensor)

>>> torch.initial_seed()
4
>>> torch.get_rng_state()
tensor([4, 0, 0, ..., 0, 0, 0], dtype=torch.uint8)

4. torch.set_rng_state()

說明:設定隨機生成器狀態(tài)

參數(shù):

new_state(ByteTensor) -- 期望的狀態(tài)

5. torch.default_generator

說明:默認的隨機生成器。等于<torch._C.Generator object>

6. torch.bernoulli(input, out=None)

說明:從伯努利分布中抽取二元隨機數(shù)(0或1)。輸入張量包含用于抽取二元值的概率。因此,輸入中的所有值都必須在[0,1]區(qū)間內。輸出張量的第i個元素值,將會以輸入張量的第i個概率值等于1。返回值將會是與輸入相同大小的張量,每個值為0或者1.

參數(shù):

input(Tensor) -- 輸入為伯努利分布的概率值

out(Tensor,可選) -- 輸出張量

>>> a = torch.Tensor(3, 3).uniform_(0, 1)
>>> a
tensor([[0.5596, 0.5591, 0.0915],
    [0.2100, 0.0072, 0.0390],
    [0.9929, 0.9131, 0.6186]])
>>> torch.bernoulli(a)
tensor([[0., 1., 0.],
    [0., 0., 0.],
    [1., 1., 1.]])

7. torch.multinomial(input, num_samples, replacement=False, out=None)

說明:返回一個張量,每行包含從input相應行中定義的多項分布中抽取的num_samples個樣本。要求輸入input每行的值不需要總和為1,但是必須非負且總和不能為0。當抽取樣本時,依次從左到右排列(第一個樣本對應第一列)。如果輸入input是一個向量,輸出out也是一個相同長度num_samples的向量。如果輸入input是m行的矩陣,輸出out是形如m x n的矩陣。并且如果參數(shù)replacement為True,則樣本抽取可以重復。否則,一個樣本在每行不能被重復。

參數(shù):

input(Tensor) -- 包含概率的張量

num_samples(int) -- 抽取的樣本數(shù)

replacement(bool) -- 布爾值,決定是否能重復抽取

out(Tensor) -- 結果張量

>>> weights = torch.Tensor([0, 10, 3, 0])
>>> weights
tensor([ 0., 10., 3., 0.])
>>> torch.multinomial(weights, 4, replacement=True)
tensor([1, 1, 1, 1])

8. torch.normal(means, std, out=None)

說明:返回一個張量,包含從給定參數(shù)means,std的離散正態(tài)分布中抽取隨機數(shù)。均值means是一個張量,包含每個輸出元素相關的正態(tài)分布的均值。std是一個張量。包含每個輸出元素相關的正態(tài)分布的標準差。均值和標準差的形狀不須匹配,但每個張量的元素個數(shù)必須想聽。

參數(shù):

means(Tensor) -- 均值

std(Tensor) -- 標準差

out(Tensor) -- 輸出張量

>>> n_data = torch.ones(5, 2)
>>> n_data
tensor([[1., 1.],
    [1., 1.],
    [1., 1.],
    [1., 1.],
    [1., 1.]])
>>> x0 = torch.normal(2 * n_data, 1)
>>> x0
tensor([[1.6544, 0.9805],
    [2.1114, 2.7113],
    [1.0646, 1.9675],
    [2.7652, 3.2138],
    [1.1204, 2.0293]])

9. torch.save(obj, f, pickle_module=<module 'pickle' from '/home/lzjs/...)

說明:保存一個對象到一個硬盤文件上。

參數(shù):

obj -- 保存對象

f -- 類文件對象或一個保存文件名的字符串

pickle_module -- 用于pickling源數(shù)據(jù)和對象的模塊

pickle_protocol -- 指定pickle protocal可以覆蓋默認參數(shù)

10. torch.load(f, map_location=None, pickle_module=<module 'pickle' from '/home/lzjs/...)

說明:從磁盤文件中讀取一個通過torch.save()保存的對象。torch.load()可通過參數(shù)map_location動態(tài)地進行內存重映射,使其能從不動設備中讀取文件。一般調用時,需兩個參數(shù):storage和location tag。返回不同地址中的storage,或者返回None。如果這個參數(shù)是字典的話,意味著從文件的地址標記到當前系統(tǒng)的地址標記的映射。

參數(shù):

f -- l類文件對象或一個保存文件名的字符串

map_location -- 一個函數(shù)或字典規(guī)定如何remap存儲位置

pickle_module -- 用于unpickling元數(shù)據(jù)和對象的模塊

torch.load('tensors.pt')
# 加載所有的張量到CPU
torch.load('tensor.pt', map_location=lambda storage, loc:storage)
# 加載張量到GPU
torch.load('tensors.pt', map_location={'cuda:1':'cuda:0'})

11. torch.get_num_threads()

說明:獲得用于并行化CPU操作的OpenMP線程數(shù)

12. torch.set_num_threads()

說明:設定用于并行化CPU操作的OpenMP線程數(shù)

以上這篇pytorch隨機采樣操作SubsetRandomSampler()就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python?functools凍結參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化

    Python?functools凍結參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化

    這篇文章主要為大家介紹了Python?functools凍結參數(shù)小技巧實現(xiàn)代碼簡潔優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • numpy中數(shù)組的堆疊方法

    numpy中數(shù)組的堆疊方法

    本文主要介紹了numpy中數(shù)組的堆疊方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • python函數(shù)裝飾器構造和參數(shù)傳遞

    python函數(shù)裝飾器構造和參數(shù)傳遞

    這篇文章主要介紹了python函數(shù)裝飾器構造和參數(shù)傳遞,下面通過一個小案例來簡單的理解什么是裝飾器,需要的小伙伴可以參考一下
    2022-03-03
  • 關于Python常用模塊時間模塊time

    關于Python常用模塊時間模塊time

    這篇文章主要介紹了關于Python常用模塊時間模塊time,這個模塊是Python自帶的,我們不需要去下載,直接導入就可以使用,需要的朋友可以參考下
    2023-04-04
  • Matlab常用的輸出命令disp與fprintf解讀

    Matlab常用的輸出命令disp與fprintf解讀

    這篇文章主要介紹了Matlab常用的輸出命令disp與fprintf解讀,具有很好的參考價值,希望對大家有所幫助。
    2022-12-12
  • 使用Python進行數(shù)據(jù)可視化實現(xiàn)引人注目的視覺效果

    使用Python進行數(shù)據(jù)可視化實現(xiàn)引人注目的視覺效果

    這篇文章主要介紹了使用Python進行數(shù)據(jù)可視化實現(xiàn)引人注目的視覺效果,您將了解基本的數(shù)據(jù)可視化概念,以及如何創(chuàng)建各種引人注目的圖表和圖形,從而更好地理解和呈現(xiàn)數(shù)據(jù)
    2023-04-04
  • 如何在Python函數(shù)執(zhí)行前后增加額外的行為

    如何在Python函數(shù)執(zhí)行前后增加額外的行為

    有的時候會需要在函數(shù)前后添點額外的功能(比如過濾、計時等)時,以前總是首先想到裝飾器。最近學習了Python的上下文管理器,所以本文就給大家介紹了如何在Python函數(shù)執(zhí)行前后增加額外的行為,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • python中屏蔽輸出示例詳解

    python中屏蔽輸出示例詳解

    python中屏蔽輸出包含屏蔽標準輸出(比如打印出來的內容)、屏蔽標準錯誤(錯誤信息)還有屏蔽logging信息等,這篇文章主要介紹了python中屏蔽輸出,需要的朋友可以參考下
    2024-05-05
  • PyQt5按下按鍵選擇文件夾并顯示的實現(xiàn)

    PyQt5按下按鍵選擇文件夾并顯示的實現(xiàn)

    這篇文章主要介紹了PyQt5按下按鍵選擇文件夾并顯示的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python 如何優(yōu)雅的將數(shù)字轉化為時間格式的方法

    Python 如何優(yōu)雅的將數(shù)字轉化為時間格式的方法

    這篇文章主要介紹了Python 如何優(yōu)雅的將數(shù)字轉化為時間格式的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09

最新評論