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计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
python3.4实现邮件发送功能
May 28 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
Python装饰器原理与基本用法分析
Jan 07 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
Python改变对象的字符串显示的方法
Aug 01 Python
python实现高效的遗传算法
Apr 07 Python
Python FuzzyWuzzy实现模糊匹配
Apr 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
php继承的一个应用
2011/09/06 PHP
php使用websocket示例详解
2014/03/12 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
轻松学习Javascript闭包函数
2015/12/15 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
vue实现购物车小案例
2019/09/27 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
python中Switch/Case实现的示例代码
2017/11/09 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
python实现图片彩色转化为素描
2019/01/15 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
学生党员思想汇报
2013/12/28 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
北京奥运会主题口号
2014/06/13 职场文书
安全标兵事迹材料
2014/08/17 职场文书
就业协议书样本
2014/08/20 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
开工典礼致辞
2015/07/29 职场文书
教师网络培训心得体会
2016/01/09 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
Python编写nmap扫描工具
2021/07/21 Python
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技