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 获取文件列表(或是目录例表)
Mar 25 Python
基于Python的身份证号码自动生成程序
Aug 15 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
Jul 03 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python爬取王者荣耀全皮肤的简单实现代码
Jan 31 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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检测网页是否被百度收录的函数代码
2013/10/09 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
Python 爬虫的工具列表大全
2016/01/31 Python
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python爬豆瓣电影实例
2018/02/23 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
简单了解python协程的相关知识
2019/08/31 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
python基于openpyxl生成excel文件
2020/12/23 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
销售人员个人求职信
2013/09/26 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
给男朋友的道歉信
2014/01/12 职场文书
公证书标准格式
2014/04/10 职场文书
药品开票员岗位职责
2015/04/15 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers