少妇脱了内裤让我添,久久久久亚洲精品无码网址蜜桃,性色av免费观看,久久人妻av无码中文专区

分享

torch7學習(一)——Tensor

 南煌晗曦 2017-11-14


Torch7學習(二) —— Torch與Matlab的語法對比
Torch7學習(三)——學習神經網絡包的用法(1)
Torch7學習(四)——學習神經網絡包的用法(2)
Torch7學習(五)——學習神經網路包的用法(3)
Torch7學習(六)——學習神經網絡包的用法(4)——利用optim進行訓練
Torch7學習(七)——從neural-style代碼中看自定義重載函數的訓練方式

第一篇博客是從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
  • 1
  • 2
  • 3
  • 4

其他的初始化方法

t = torch.rand(4,4):mul(3):floor():int()t = torch.Tensor(3,4):zero() --注意這里Tensor的每個元素賦值為0的zero沒有s
  • 1
  • 2

Tensor的內容以及信息

  1. Dimension/size/nElement
z = torch.Tensor(3,4)x = z:nDimension() -- 2y = z:size() -- y的值為size2的一維數組。3和4t = z:nElement() -- 12
  • 1
  • 2
  • 3
  • 4
  1. 用’[ ]’來取數。而不是像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
  • 1
  • 2
  • 3
  • 4

Tensor的復制

x = torch.Tensor(4):fill(1)y = torch.Tensor(2,2):copy(x) --也可以實現不同Tensor的復制。
  • 1
  • 2

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]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

用”{ }”來提取

上面的用函數的方式可能還是有點兒麻煩。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) = 1x[ {2, {2,4}} ] = 2 --等價于matlab的 x(2,2:4) = 2x[ { {}, 4}] = -1 --等價于matlab的 x(:,4) = -1
  • 1
  • 2
  • 3
  • 4

Expand/RepeatTensor/Squeeze

  1. expand
x = torch.rand(10,2,1)y = x:expand(10,2,3) --將三維的size變成了3-- expand即為“擴展”,擴展某個size為1的那一維度
  • 1
  • 2
  • 3
  1. repeatTensor:將Tensor看成一個元素,按照特定方式進行排列。
x = torch.rand(5)y = x:repeatTensor(3,2) --size變成了3x10
  • 1
  • 2
  1. squeeze :將size為1的維度壓縮掉。

View/transpose/permute

  1. view:將Tensor看成特定空間維數.

    x = torch.zeros(2,2,3)x:view(3,4) --等價于x:view(3, -1)-- -1 表示將剩余元素全部看成這一維度
    • 1
    • 2
    • 3
  2. transpose:是permute的精簡版本。transpose(dim1, dim2)只能將兩個維度進行互換
x = torch.Tensor(3,4):zero()y1 = x:t() --如果是2D數據等價于transpose(1,2)y2 = x:transpose(1,2)
  • 1
  • 2
  • 3

3.permute

x = torch.Tensor(3,4,2,5)y = x:permute(2,3,1,4) -- 按照2,3,1,4維進行重排列。
  • 1
  • 2

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發表

    請遵守用戶 評論公約

    類似文章 更多

    主站蜘蛛池模板: 欧美人与动牲交a欧美精品| 久久久久国色αv免费观看| 国产免费一区二区视频| 国内精品九九久久精品| 十八岁污网站在线观看| 亚洲欧美中文日韩在线v日本| 欧美噜噜久久久xxx| 久久天天躁狠狠躁夜夜av| 国内精品久久久久影院中文字幕| 成熟丰满熟妇xxxxx丰满| 青青草原精品资源站久久| 337p大尺度啪啪人体午夜| 女人又爽?又黄?免费俄罗斯| 九九九免费观看视频| 亚洲国内自拍愉拍| 国产午夜成人久久无码一区二区| 免费a级毛片无码免费视| 57pao成人国产永久免费视频| 精品国产一区二区av麻豆不卡| 天天综合亚洲色在线精品| 无套内射无矿码免费看黄| 动漫高h纯肉无码视频在线观看| 藏春阁福利视频| 欧美成人午夜精品久久久| 国产一区日韩二区欧美三区| 99久久精品无码一区二区毛片| 亚洲成a人v欧美综合天堂| 国产亚洲日韩妖曝欧美| 亚洲欧洲精品成人久久av18| 亚洲色自偷自拍另类小说| 女人下面毛多水多视频| 97久久精品亚洲中文字幕无码| 久久久无码中文字幕久...| 性一交一乱一透一a级| 天堂а√在线最新版中文在线| 亚洲女初尝黑人巨| 一本久道综合在线无码人妻| 国产男女爽爽爽免费视频| 久久综合亚洲色hezyo社区| 日本入室强伦姧bd在线观看| 亚洲国产成人高清在线观看|