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脚本实现网卡流量监控
Feb 14 Python
归纳整理Python中的控制流语句的知识点
Apr 14 Python
在Docker上开始部署Python应用的教程
Apr 17 Python
Python制作钉钉加密/解密工具
Dec 07 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
flask中过滤器的使用详解
Aug 01 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
python threading和multiprocessing模块基本用法实例分析
Jul 25 Python
解决python有时候import不了当前的包问题
Aug 28 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
Python requests设置代理的方法步骤
Feb 23 Python
Python anaconda安装库命令详解
Oct 16 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP 高级课程笔记 面向对象
2009/06/21 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
php实现天干地支计算器示例
2014/03/14 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
javascript每日必学之运算符
2016/02/16 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
internal修饰符起什么作用
2013/12/16 面试题
索桥的故事教学反思
2014/02/06 职场文书
善意的谎言事例
2014/02/15 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
本科生求职信
2014/06/17 职场文书
教师考核评语大全
2014/12/31 职场文书
员工辞退通知书
2015/04/17 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记