pytorch中五種常用隨機矩陣構造方法:rand、randn、randn_like、randint、randperm

1 torch.rand:構造均勻分布張量

torch.rand是用于生成均勻隨機分布張量的函數,從區間[0,1)的均勻分布中隨機抽取一個隨機數生成一個張量,其調用方法如下所示:

torch.rand(sizes, out=None) ?? Tensor

參數:

  • sizes:用于定義輸出張量的形狀

示例代碼:

import torch# 生成一個每個元素服從0-1均勻分布的4行3列隨機張量
random_tensor = torch.rand(4, 3)
print('tensor:', random_tensor)
print('type:', random_tensor.type())
print('shape:', random_tensor.shape)

運行代碼顯示:

tensor: tensor([[0.4349, 0.8567, 0.7321],[0.4057, 0.0222, 0.3444],[0.9679, 0.0980, 0.8152],[0.1998, 0.7888, 0.5478]])
type: torch.FloatTensor
shape: torch.Size([4, 3])

2 torch.randn:構造標準正態分布張量

torch.randn()是用于生成正態隨機分布張量的函數,從標準正態分布中隨機抽取一個隨機數生成一個張量,其調用方法如下所示:

torch.randn(sizes, out=None) ?? Tensor

參數:

  • sizes:用于定義輸出張量的形狀

示例代碼:

import torch# 生成一個每個元素均為標準正態分布的4行3列隨機張量
random_tensor = torch.randn(4, 3)
print('tensor:', random_tensor)
print('type:', random_tensor.type())
print('shape:', random_tensor.shape)

運行代碼顯示:

tensor: tensor([[ 0.7776,  0.6305,  0.1961],[ 0.1831, -0.4187,  0.1245],[ 0.3092, -1.0463, -0.6656],[-1.0098,  1.3861, -0.2600]])
type: torch.FloatTensor
shape: torch.Size([4, 3])

3?torch.randn_like:構造與輸入形狀相同正態分布張量

torch.randn_like()用于生成一個與輸入張量大小相同的張量,其中填充了均值為 0 方差為 1 的正態分布的隨機值,其調用方法如下所示:

torch.randn_like(input_tensor, dtype=None, layout=None, device=None, requires_grad=False) ?? Tensor

參數:

  • input_tensor(必需)- 其大小將用于生成輸出張量的輸入張量。

  • dtype(可選)- 輸出張量所需的數據類型。默認為None,這意味著將使用輸入張量的數據類型。

  • layout(可選)- 輸出張量所需的內存布局。默認為None,這意味著將使用輸入張量的內存布局。

  • device(可選)- 輸出張量所需的設備。默認為None,這意味著將使用輸入張量的設備。

  • requires_grad(可選)- 輸出張量是否應該在反向傳播期間計算其梯度。默認為False。

示例代碼:

import torch# 生成一個每個元素均為標準正態分布的4行3列隨機張量
tensor_x = torch.randn(4, 3)
tensor_y = torch.randn_like(tensor_x)print('tensor_x:', tensor_x)
print('type:', tensor_x.type())
print('shape:', tensor_x.shape)print('tensor_y:', tensor_y)
print('type:', tensor_y.type())
print('shape:', tensor_y.shape)

運行代碼顯示:

tensor_x: tensor([[ 5.5292e-01,  6.5111e-01, -6.0329e-04],[ 1.0402e+00, -7.4630e-01,  7.5701e-01],[ 8.8160e-02, -1.2581e+00, -1.8089e-01],[-4.2769e-01, -8.5043e-01, -5.8388e-01]])
type: torch.FloatTensor
shape: torch.Size([4, 3])
tensor_y: tensor([[ 0.2308,  0.3297, -0.6633],[ 1.7389,  0.6372, -1.1069],[-0.2415, -0.8585,  0.3343],[-1.2581, -0.5001,  0.0317]])
type: torch.FloatTensor
shape: torch.Size([4, 3])

4 torch.randint:構造區間分布張量

torch.randint()是用于生成任意區間分布張量的函數,從標準正態分布中隨機抽取一個隨機數生成一個張量,其調用方法如下所示:

torch.randint(low=0, high, sizes, out=None) ?? Tensor

參數:

  • low~high:隨機數的區間范圍

  • sizes:用于定義輸出張量的形狀

示例代碼:

import torch# 生成一個每個元素均為[1-10]均勻分布的4行3列隨機張量
tensor_int = torch.randint(1, 10, (4, 3))
print('tensor_int:', tensor_int)
print('type:', tensor_int.type())
print('shape:', tensor_int.shape)

運行代碼顯示:

tensor_int: tensor([[1, 7, 1],[3, 8, 7],[5, 2, 1],[5, 3, 6]])
type: torch.LongTensor
shape: torch.Size([4, 3])

5?torch.randperm:根據生成的隨機序號對張量進行隨機排序

torch.randint()是用于對張量序號進行隨機排序的函數,根據生成的隨機序列進行隨機排序,其調用格式如下所示:

torch.randperm(n, out=None, dtype=torch.int64) ?? LongTensor

參數:

  • n:一個整數,可以理解為張量某個方向的維度

  • dtype:返回的數據類型(torch.int64

示例代碼:

import torch# 生成一個0~3的隨機整數排序
idx = torch.randperm(4)# 生成一個4行3列的張量
tensor_4 = torch.Tensor(4, 3)# 為了方便對比,首先輸出tensor_4的結果
print("原始張量\n", tensor_4)# 下面輸出隨機生成的行序號
print("\n生成的隨機序號\n", idx)# 下面的指令實現了在行的方向上,對tensor_4進行隨機排序,并輸出結果
print("\n隨機排序后的張量\n", tensor_4[idx])

運行代碼顯示:

原始張量tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])生成的隨機序號tensor([3, 0, 2, 1])隨機排序后的張量tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208528.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208528.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208528.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

12.8_黑馬數據結構與算法筆記Java

目錄 044 遞歸 e04 冒泡排序2 044 遞歸 e05 插入排序1 044 遞歸 e05 插入排序2 045 多路遞歸 斐波那契 046 多路遞歸 斐波那契 時間復雜度 047 多路遞歸 斐波那契 兔子問題 048 多路遞歸 斐波那契 青蛙跳臺階 049 遞歸 優化 記憶法 050 遞歸 爆棧問題 051 遞歸 尾調用…

Linux驅動開發一

一、Linux驅動開發與裸機開發的區別 1、開發思維區別 裸機驅動: (1)底層,跟寄存器打交道,有些MCU提供了庫 Linux驅動: (1)Linux下驅動開發直接操作寄存器不現實 (2…

【MATLAB源碼-第97期】基于matlab的能量谷優化算法(EVO)機器人柵格路徑規劃,輸出做短路徑圖和適應度曲線。

操作環境: MATLAB 2022a 1、算法描述 能量谷優化算法(Energy Valley Optimization, EVO)是一種啟發式優化算法,靈感來源于物理學中的“能量谷”概念。它試圖模擬能量在不同能量谷中的轉移過程,以尋找最優解。 在EVO…

Springboot+FastJson實現解析第三方http接口json數據為實體類(時間格式化轉換、字段包含中文)

場景 若依前后端分離版手把手教你本地搭建環境并運行項目: 若依前后端分離版手把手教你本地搭建環境并運行項目_前后端分離項目本地運行-CSDN博客 在上面搭建SpringBoot項目的基礎上,并且在項目中引入fastjson、hutool、lombok等所需依賴后。 系統需…

K8S學習指南(1)-docker的安裝

文章目錄 引言1. Windows 系統中安裝 Dockera. 確認系統要求b. 下載 Docker Desktopc. 安裝 Docker Desktopd. 配置 Docker Desktope. 驗證安裝 2. Ubuntu 系統中安裝 Dockera. 更新包列表b. 安裝依賴包c. 添加 Docker GPG 密鑰d. 添加 Docker APT 倉庫e. 安裝 Dockerf. 添加用…

unity 2d 入門 飛翔小鳥 小鳥跳躍 碰撞停止揮動翅膀動畫(十)

1、切換到動畫器 點擊make transition和exit關聯起來 2、設置參數 勾選掉Has Exit Time 3、腳本給動畫器傳參 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : MonoBehaviour {//獲取小鳥(剛體)p…

linux常用命令-pip命令詳解(超詳細)

文章目錄 前言一、pip命令介紹1. pip命令簡介2. pip命令的基本語法3. 常用的pip命令選項4. 常用的pip命令參數 二、pip命令示例用法1. 安裝包2. 卸載包3. 列出已安裝的包4. 搜索包5. 升級包 總結 前言 pip 是 Python 的包管理器,用于安裝和管理 Python 包。它提供了…

JVM常見垃圾回收器

串行垃圾回收器 Serial和Serial Old串行垃圾回收器,是指使用單線程進行垃圾回收,堆內存較小,適合個人電腦 Serial作用于新生代,采用復制算法 Serial Old作用于老年代,采用標記-整理算法 垃圾回收時,只有…

Windows 系統,TortoiseSVN 無法修改 Log 信息解決方法

使用SVN提交版本信息時,注釋內容寫的不全。通過右鍵TortoiseSVN的Show log看到提交的的注釋,右鍵看到Edit log message的選項,然而提交后卻給出錯誤提示: Repository has not been enabled to accept revision propchanges; ask …

linux如何刪除大文件的第一行(sed)

可以用sed命令實現&#xff1a; 刪除文檔的第一行 1. sed -i 1d <file>刪除文檔的最后一行 1. sed -i $d <file>在文檔指定行中增加一行 # 示例如下&#xff1a; echo "1"; echo "2"; echo "4"; echo "5"; # 想要在echo…

【PHP】php發送郵箱驗證碼格式美化,樣式美化

效果展示&#xff1a; 格式美化前 格式美化后 代碼 大多數框架都自帶有封裝好的發送email方法&#xff0c;就不多贅述&#xff0c;主要寫格式&#xff1a; <? php// 驗證碼過期時間 $expire 120; // 發件人郵箱 $from_email xx163.com; // 收件人 $to_email to163.com…

硬件產品經理常用的ChatGPT通用提示詞模板

產品策略&#xff1a;請幫助我制定一個硬件產品的產品策略。 市場調研&#xff1a;如何進行硬件產品的市場調研&#xff1f; 用戶需求&#xff1a;如何確定硬件產品的用戶需求&#xff1f; 產品設計&#xff1a;如何設計一個優秀的硬件產品&#xff1f; 用戶體驗&#xff1…

數據分析基礎之《matplotlib(5)—直方圖》

一、直方圖介紹 1、什么是直方圖 直方圖&#xff0c;形狀類似柱狀圖卻有著與柱狀圖完全不同的含義。直方圖牽涉統計學的概念&#xff0c;首先要對數據進行分組&#xff0c;然后統計每個分組內數據元的數量。在坐標系中&#xff0c;橫軸標出每個組的端點&#xff0c;縱軸表示頻…

無人機巡山護林,林業無人機智能助力綠色守護

隨著全球環保意識的不斷提高&#xff0c;無人機巡山護林已經成為解決森林巡檢難題的一種獨特而高效的方式。在我國&#xff0c;各地正積極探索無人機在森林防火、病蟲害監測以及生態調查等領域的創新應用。隨著無人機技術的不斷演進&#xff0c;其在推動森林保護和可持續發展方…

HTML實現每天單詞積累

注冊頁面 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>注冊</title><style>body {font-family: Arial, sans-serif;background-color: #f5f5f5;}form {max-width: 500px;margin: 50px auto;padding: 40px…

【Docker】進階之路:(九)Docker網絡

【Docker】從零開始&#xff1a;19.Docker網絡 Docker網絡模式簡介bridge網絡模式host網絡模式none網絡模式container網絡模式user-defined網絡模式1.創建自定義的bridge網絡2.使用自定義網絡 高級網絡配置docker network命令 為什么要了解容器的網絡模式? 首先&#xff0c;容…

spark 寫入 mysql 報錯

報錯信息如下&#xff1a; "C:\Program Files\Java\jdk1.8.0_291\bin\java.exe" "-javaagent:D:\Hadoopruanjian\IDEA\IntelliJ IDEA 2021.3.2\lib\idea_rt.jar60971:D:\Hadoopruanjian\IDEA\IntelliJ IDEA 2021.3.2\bin" -Dfile.encodingUTF-8 -classpat…

工業級路由器在風力發電場的遠程監控技術

工業級路由器在風力發電場的遠程監控技術方面具有重要的應用意義。風力發電場通常由分布在廣闊地區的風力發電機組組成&#xff0c;需要進行實時監測、數據采集和遠程管理。工業級路由器作為網絡通信設備&#xff0c;能夠提供穩定可靠的網絡連接和多種遠程管理功能&#xff0c;…

深入探討Go語言協程調度:GRM模型解析與優化策略

一、線程調度 1、早期單線程操作系統 一切的軟件都是跑在操作系統上&#xff0c;真正用來干活&#xff08;計算&#xff09;的是 CPU早期的操作系統每個程序就是一個進程&#xff0c;直到一個程序運行完&#xff0c;才能進行下一個進程&#xff0c;就是“單進程時代”一切的程…

ES6中新增的基本數據類型----symbol

前言 Symbol 基本數據類型 獨一無二得值 Symbol函數創建 接收字符串 對symbol值得描述 let s1 Symbol(描述) /*** symbol 基本數據類型 表示獨一無二的值 Symbol函數創建獨一無二得值 參數可以是唯一值得描述*/ let sy1 Symbol();//創建好一個獨一無二得值 let sy2 Symbo…