torch7學習(一)——Tensor
第一篇部落格是從torch7提取出來最常用的知識。
主要講Tensor的用法及其一些函式。
**先說一嘴:**torch中一般有這個東西,就是
y = torch.func(x,…)等價於y = x:func(…),就是說如果用”torch”,那麼“src”是第一個引數。否則就”src:”
初始化
Tensor/rand/zeros/fill
z = torch.Tensor(3,4,2,3,5) --可以建立多維陣列。裡面是隨機的數。
s = torch.Tensor(2,3):fill(1) --用1填充
t = torch.rand(3,3)
m = torch.zeros(3 ,3)
其他的初始化方法
t = torch.rand(4,4):mul(3):floor():int()
t = torch.Tensor(3,4):zero() --注意這裡Tensor的每個元素賦值為0的zero沒有s
Tensor的內容以及資訊
- Dimension/size/nElement
z = torch.Tensor(3,4)
x = z:nDimension() -- 2
y = z:size() -- y的值為size2的一維陣列。3和4
t = z:nElement() -- 12
- 用’[ ]’來取數。而不是像matlab的用’( )’。
Tensor的儲存方式
陣列的第一個數儲存位置為storageOffset(), 從1開始。
x = torch.Tensor(7,7,7)
x[3][4][5]等價於x:storage()[x:storageOffset()+(3-1)*x:stride(1)+(4-1)*x:stride(2)
+(5-1)*x:stride(3)]
-- stride(1),stride(2)和stride(3)分別是49,7,1
Tensor的複製
x = torch.Tensor(4):fill(1)
y = torch.Tensor(2,2):copy(x) --也可以實現不同Tensor的複製。
Tensor的提取
select/narrow/sub
總說:select是直接提取某一維;narrow是取出某一維並進行裁剪; sub就是取出一塊,是對取出的所有維進行裁剪。
語法: select(dim, index); narrow(dim, index, num); sub(dim1s, dim1e, dim2s, dim2e,…)
x = torch.Tensor(3,4)
i = 0
x:apply(function()i = i+1 return i end)
--[[
x 為
1 2 3 4
5 6 7 8
9 10 11 12
]]
selected = x:select(1,2) --第一維的第二個。就是第二行。相當於x[2]
narrowed = x:narrow(2,1,2)
--[[
th> narrowed
1 2
5 6
9 10
]]
subbed = x:sub(1,3,2,3)
--[[ 一維到3為止,二維也到3為止。
th> subbed
2 3
6 7
10 11
]]
用”{ }”來提取
上面的用函式的方式可能還是有點兒麻煩。matlab有類似(:, : ,1:2)的寫法。那麼lua呢?
語法:
1. [ {dim1 , dim2, …} ]來獲取某些維度。類似select
2. [ { {dim1s, dim1e}, {dim2s, dim2e},… } ] 來進行類似narrow或是sub的裁剪。
x = torch.Tensor(5,6):zero()
x[{1,3}] = 1 --等價於matlab的 x(1,3) = 1
x[ {2, {2,4}} ] = 2 --等價於matlab的 x(2,2:4) = 2
x[ { {}, 4}] = -1 --等價於matlab的 x(:,4) = -1
Expand/RepeatTensor/Squeeze
- expand
x = torch.rand(10,2,1)
y = x:expand(10,2,3) --將三維的size變成了3
-- expand即為“擴充套件”,擴充套件某個size為1的那一維度
- repeatTensor:將Tensor看成一個元素,按照特定方式進行排列。
x = torch.rand(5)
y = x:repeatTensor(3,2) --size變成了3x10
- squeeze :將size為1的維度壓縮掉。
View/transpose/permute
view:將Tensor看成特定空間維數.
x = torch.zeros(2,2,3) x:view(3,4) --等價於x:view(3, -1) -- -1 表示將剩餘元素全部看成這一維度
- transpose:是permute的精簡版本。transpose(dim1, dim2)只能將兩個維度進行互換
x = torch.Tensor(3,4):zero()
y1 = x:t() --如果是2D資料等價於transpose(1,2)
y2 = x:transpose(1,2)
3.permute
x = torch.Tensor(3,4,2,5)
y = x:permute(2,3,1,4) -- 按照2,3,1,4維進行重排列。
相關推薦
torch7學習(一)——Tensor
第一篇部落格是從torch7提取出來最常用的知識。 主要講Tensor的用法及其一些函式。 **先說一嘴:**torch中一般有這個東西,就是 y = torch.func(x,…)等價於y = x:func(…),就是說如果用”torch”,那麼“s
Tensorflow學習(一)認識Tensor張量
在自己學習Tensorflow的過程充滿了艱辛,因為沒有明確的路去學習,只能通過查閱大量的文章和部落格去不斷的豐富自己的知識,接下來是我總結的認知。僅此以記錄。 什麼是Tensor 學習Tensorflow,首先要知道什麼是Tensorflow 從英文
Node個人學習(一)----模塊
需要 區別 class 當前 個人 一個 min export ava 1、自定義模塊與系統模塊的引入方式區別:----自定義模塊需要加“./”來聲明它不是一個系統模塊 const mod1=require("系統模塊.js"); const mod1=require(
MySQL學習(一)ODBC 安裝
oca local new cmd 密碼 服務 關閉 mysql 系統 寫前說明 初次接觸MySQL,都說MySQL各種好。我也來學習學習。之前只有SQLServer2008的經驗,其實也只是皮毛。因為SQLServer還是比較容易上手的。也不麻煩。但是自己
vue基礎學習(一)
time tle eight pla use logs new dial for 01-01 vue使用雛形 <div id="box"> {{msg}} </div> <sc
java學習(一) 環境搭建、hello world的demo
環境變量 網上 類庫 .com java開發 www cnblogs rgs .class 本程序媛搞前端的,上班偶有空閑,不妨來學習學習,不然怎麽包養小白臉,走上人生巔峰? 說實話,每個語言都相通,有了javascript的基礎,並且有了兩三年跟java打交道的經
【Cloud Foundry】Could Foundry學習(一)——Could Foundry淺談
art lock mod out isp ted 組成 .com pop 在閱讀的過程中有不論什麽問題。歡迎一起交流 郵箱:[email protected]/* */ QQ:1494713801 Cloud Foundry是VMware
Android中關於JNI 的學習(一)對於JNIEnv的一些認識
else size 初步 jint 使用 包括 pri jnienv 就會 一個簡單的樣例讓我們初步地了解JNI的作用,可是關於JNI中的一些概念還是須要了解清楚,才可以更好的去利用它來實現我們想要做的事情。 那麽C++和Java之間的是怎樣通過JNI來進行互相調用的呢
.Net MVC的學習(一)
後綴 fonts mvc 存在 eth 大致 例如 pre gb2 套種間作,也挺有意思的——近來學習感悟。DRP學習的同一時候,折騰了點曾經不曾學習可是卻非常多次耳聞過的東西——Asp.Net中的MVC架構模式。 一、是什麽? MVC,即(Model-
Python學習(一)
ubun 安裝目錄 tle setup extract reat 常用插件 增加 網址 Python學習(一) 一:開發工具安裝 1,pycharm下載:Linux版本 2,破解:在help-register下-service輸入: http://elpo
Web Service學習(一)
內存 res 特性 response 屬性表 高性能 fas str ima 1、WebMethod特性包含哪些屬性,都有什麽用? 1、BufferResponse屬性 該屬性表明是否啟用對Web Service方法響應的緩沖。當設置為true時,Web Service
Python基礎學習(一)
func exe function 學習 typeerror exit invalid min eas #Default Argument Values & in keyworddef ask_ok(prompt, retres=4, reminder=‘pleas
Django學習(一)---基本配置及創建項目、應用
cut 維護 onf response settings 通過 學習 clu render 安裝:在Django官網下載最新版Django然後通過pip安裝即可 一、創建項目 進入文件夾,打開cmd窗口,輸入django-admin startproject myblog(
機器學習(一)
無限 size mage 計算機 博客 對數 png 表示 獲得 對學習的定義 學習經驗E 完成任務T 績效指標P 對於某類任務T和性能度量P,如果一個計算機程序在完成T上以P來衡量完成的好壞,並隨著經驗E而自我完善,那麽我們稱這個計算機程序在從經驗E中學習
Linux服務器學習(一)
-1 修改 感覺 img size 地址 mage 第一次 spa 一、首先連接服務器 下載一個windows下連接linux的ssh工具,我這裏用的putty。一次填入HostName(主機名,可以是服務器域名也可以是對應的ip)、Port(端口號默認為22)、Co
CSS3總結學習(一):CSS3用戶界面
interface 繪制 如果 位置 nbsp 瀏覽器 none ble adding 在CSS3中,新的用戶界面屬性有很多,本文重點介紹resize,box-sizing,offset。 瀏覽器支持,如下圖,圖片源於W3school 1.CSS Resizing 在cs
Spring 源碼學習(一)
pla 註入 websocket web前端 tex 異常 messaging ping 完整 設計伊始 Spring 是為解決企業級應用開發的復雜性而設計,她可以做很多事。但歸根到底支撐Spring的僅僅是少許的基本理念,而所有地這些的基本理念都能可以追溯到一個
[linux][MongoDB] mongodb學習(一):MongoDB安裝、管理工具、
ole ont mon mkdir man 管理工具 tar end 認證 參考原文:http://www.cnblogs.com/kaituorensheng/p/5118226.html linux安裝完美實現! 1. mongoDB安裝、啟動、關閉 1.1
算法學習(一)(插入排序算法)
-1 color pri 最小 inpu range col pre arr 1.Maximum of array 說明:給定一組數組,進行排序,得到最大值和最小值。 1 input data: 2 1 3 5 7 9 11 ... 295 297 299 300 298
[轉]JMeter學習(一)工具簡單介紹
正在 包含 定義 寫入文件 線程組 element 層級 工作臺 roc 一、JMeter 介紹 Apache JMeter是100%純JAVA桌面應用程序,被設計為用於測試客戶端/服務端結構的軟件(例如web應用程序)。它可以用來測試靜態和動態資源的性能,例如: