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中range()函数和list的比较
Apr 19 Python
python3之模块psutil系统性能信息使用
May 30 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
打包PyQt5应用时的注意事项
Feb 14 Python
python如何把字符串类型list转换成list
Feb 18 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
python rsa-oaep加密的示例代码
Sep 23 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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新手上路(十四)
2006/10/09 PHP
php中几种常见安全设置详解
2010/04/06 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
js继承实现方法详解
2016/12/16 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
python实现黑客字幕雨效果
2018/06/21 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
Python新手学习装饰器
2020/06/04 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
面试求职的个人自我评价
2013/11/16 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
成绩单家长评语大全
2014/04/16 职场文书
组织生活会发言材料
2014/12/15 职场文书
个人欠条范本
2015/07/03 职场文书
谢师宴家长致辞
2015/07/27 职场文书
小学班主任心得体会
2016/01/07 职场文书
python中filter,map,reduce的作用
2022/06/10 Python