91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

FloatTensor與Variable怎么在Pytorch中使用

發布時間:2021-03-31 17:25:12 來源:億速云 閱讀:233 作者:Leah 欄目:開發技術

FloatTensor與Variable怎么在Pytorch中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

pytorch中基本的變量類型當屬FloatTensor(以下都用floattensor),而Variable(以下都用variable)是floattensor的封裝,除了包含floattensor還包含有梯度信息

pytorch中的dochi給出一些對于floattensor的基本的操作,比如四則運算以及平方等(鏈接),這些操作對于floattensor是十分的不友好,有時候需要寫一個正則化的項需要寫很長的一串,比如兩個floattensor之間的相加需要用torch.add()來實現

for step in range(config.total_step):

    
    # Extract multiple(5) conv feature vectors
    target_features = vgg(target)  # 每一次輸入到網絡中的是同樣一張圖片,反傳優化的目標是輸入的target
    content_features = vgg(Variable(content))
    style_features = vgg(Variable(style))

    style_loss = 0
    content_loss = 0
    for f1, f2, f3 in zip(target_features, content_features, style_features):
      # Compute content loss (target and content image)
      content_loss += torch.mean((f1 - f2)**2) # square 可以進行直接加-操作?可以,并且mean對所有的元素進行均值化造作

      # Reshape conv features
      _, c, h, w = f1.size() # channel height width
      f1 = f1.view(c, h * w) # reshape a vector
      f3 = f3.view(c, h * w) # reshape a vector

      # Compute gram matrix 
      f1 = torch.mm(f1, f1.t())
      f3 = torch.mm(f3, f3.t())

      # Compute style loss (target and style image)
      style_loss += torch.mean((f1 - f3)**2) / (c * h * w)  # 總共元素的數目?

其中f1與f2,f3的變量類型是Variable,作者對其直接用四則運算符進行加減,并且用python內置的**進行平方操作,然后

# -*-coding: utf-8 -*-
import torch
from torch.autograd import Variable

# dtype = torch.FloatTensor
dtype = torch.cuda.FloatTensor # Uncomment this to run on GPU

# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Randomly initialize weights
w1 = torch.randn(D_in, H).type(dtype) # 兩個權重矩陣
w2 = torch.randn(D_in, H).type(dtype)
# operate with +-*/ and **
w3 = w1-2*w2
w4 = w3**2
w5 = w4/w1


# operate the Variable with +-*/ and **
w6 = Variable(torch.randn(N, D_in).type(dtype))
w7 = Variable(torch.randn(N, D_in).type(dtype))
w8 = w6 + w7
w9 = w6*w7
w10 = w9**2
print(1)

基本上調試的結果與預期相符

FloatTensor與Variable怎么在Pytorch中使用

看完上述內容,你們掌握FloatTensor與Variable怎么在Pytorch中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

徐闻县| 弥渡县| 柘城县| 临桂县| 菏泽市| 珠海市| 新乐市| 临安市| 贵溪市| 临澧县| 镇坪县| 靖江市| 湖北省| 苍梧县| 石门县| 监利县| 昌邑市| 大姚县| 简阳市| 昆明市| 湛江市| 贵溪市| 五峰| 垫江县| 福州市| 胶州市| 乾安县| 山丹县| 遂平县| 元朗区| 衡阳县| 葵青区| 泰安市| 和平区| 烟台市| 庆阳市| 亳州市| 肇庆市| 萨迦县| 渭南市| 社会|