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开发实例分享bt种子爬虫程序和种子解析
May 21 Python
浅谈Python单向链表的实现
Dec 24 Python
Python MySQL数据库连接池组件pymysqlpool详解
Jul 07 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
Python 实现网页自动截图的示例讲解
May 17 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
python3 求约数的实例
Dec 05 Python
pandas的相关系数与协方差实例
Dec 27 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
Python sublime安装及配置过程详解
Jun 29 Python
python爬虫请求库httpx和parsel解析库的使用测评
May 10 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
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
js post提交调用方法
2014/02/12 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
JS表的模拟方法
2015/02/05 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
python重试装饰器示例
2014/02/11 Python
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
教师实习自我鉴定
2013/12/11 职场文书
开工庆典邀请函范文
2014/01/16 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
保洁员岗位职责
2015/02/04 职场文书
员工升职自荐信
2015/03/27 职场文书
放假通知怎么写
2015/08/18 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis