Pytorch基本变量类型FloatTensor与Variable用法


Posted in Python onJanuary 08, 2020

pytorch中基本的变量类型当属FloatTensor(以下都用floattensor),而Variable(以下都用variable)是floattensor的封装,除了包含floattensor还包含有梯度信息

pytorch中的dochi给出一些对于floattensor的基本的操作,比如四则运算以及平方等(链接),这些操作对于floattensor是十分的不友好,有时候需要写一个正则化的项需要写很长的一串,比如两个floattensor之间的相加需要用torch.add()来实现

然而正确的打开方式并不是这样

韩国一位大神写了一个pytorch的turorial,其中包含style transfer的一个代码实现

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)

基本上调试的结果与预期相符

Pytorch基本变量类型FloatTensor与Variable用法

所以,对于floattensor以及variable进行普通的+-×/以及**没毛病

以上这篇Pytorch基本变量类型FloatTensor与Variable用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简介Python中用于处理字符串的center()方法
May 18 Python
python回调函数中使用多线程的方法
Dec 25 Python
python脚本监控Tomcat服务器的方法
Jul 06 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
Dec 09 Python
python 装饰器功能与用法案例详解
Mar 06 Python
基于python实现模拟数据结构模型
Jun 12 Python
python 自动化偷懒的四个实用操作
Apr 11 Python
python基于tkinter制作下班倒计时工具
Apr 28 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 #Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 #Python
pycharm激活码有效到2020年11月底
Sep 18 #Python
pymysql的简单封装代码实例
Jan 08 #Python
pytorch使用 to 进行类型转换方式
Jan 08 #Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 #Python
Pytorch to(device)用法
Jan 08 #Python
You might like
Smarty模板快速入门
2007/01/04 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
接收键盘指令的脚本
2006/06/26 Javascript
通过修改referer下载文件的方法
2008/05/11 Javascript
js substr、substring和slice使用说明小记
2011/09/15 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
竞选团支书演讲稿
2014/04/28 职场文书
社会实践活动总结报告
2014/04/29 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python
tree shaking对打包体积优化及作用
2022/07/07 Java/Android