返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈tensorflow与pytorch的相互转换
  • 482
分享到

浅谈tensorflow与pytorch的相互转换

2024-04-02 19:04:59 482人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1.变量预定义2.创建变量并初始化3.语句执行4.tensor5.其他函数本文以一段代码为例,简单介绍一下Tensorflow与PyTorch的相互转换(主要是tensorflo

本文以一段代码为例,简单介绍一下TensorflowPyTorch的相互转换(主要是tensorflow转pytorch),可能介绍的没有那么详细,仅供参考。

由于本人只熟悉pytorch,而对tensorflow一知半解,而代码经常遇到tensorflow,而我希望使用pytorch,因此简单介绍一下tensorflow转pytorch,可能存在诸多错误,希望轻喷~

1.变量预定义

在TensorFlow的世界里,变量的定义和初始化是分开的。
tensorflow中一般都是在开头预定义变量,声明其数据类型、形状等,在执行的时候再赋具体的值,如下图所示,而pytorch用到时才会定义,定义和变量初始化是合在一起的。

在这里插入图片描述

2.创建变量并初始化

tensorflow中利用tf.Variable创建变量并进行初始化,而pytorch中使用torch.tensor创建变量并进行初始化,如下图所示。

在这里插入图片描述

3.语句执行

在TensorFlow的世界里,变量的定义和初始化是分开的,所有关于图变量的赋值和计算都要通过tf.Session的run来进行。

sess.run([G_solver, G_loss_temp, MSE_loss],
             feed_dict = {X: X_mb, M: M_mb, H: H_mb})

而在pytorch中,并不需要通过run进行,赋值完了直接计算即可。

4.tensor

pytorch运算时要创建完的numpy数组转为tensor,如下:

if use_gpu is True:
	X_mb = torch.tensor(X_mb, device="cuda")
	M_mb = torch.tensor(M_mb, device="cuda")
	H_mb = torch.tensor(H_mb, device="cuda")
else:
	X_mb = torch.tensor(X_mb)
	M_mb = torch.tensor(M_mb)
	H_mb = torch.tensor(H_mb)

最后运行完还要将tensor数据类型转换回numpy数组:

if use_gpu is True:
	imputed_data=imputed_data.cpu().detach().numpy()
else:
	imputed_data=imputed_data.detach().numpy()

而tensorflow中不需要这种操作。

5.其他函数

在tensorflow中包含诸多函数是pytorch中没有的,但是都可以在其他库中找到类似,具体如下表所示。

tensorflow中函数pytorch中代替(所在库)参数区别
tf.sqrtnp.sqrt(numpy)完全相同
tf.random_nORMalnp.random.normal(numpy)tf.random_normal(shape = size, stddev = xavier_stddev)
np.random.normal(size = size, scale = xavier_stddev)
tf.concattorch.cat(torch)inputs = tf.concat(values = [x, m], axis = 1)
inputs = torch.cat(dim=1, tensors=[x, m])
tf.nn.reluF.relu(torch.nn.functional)完全相同
tf.nn.sigmoidtorch.sigmoid(torch)完全相同
tf.matmultorch.matmul(torch)完全相同
tf.reduce_meantorch.mean(torch)完全相同
tf.logtorch.log(torch)完全相同
tf.zerosnp.zeros完全相同
tf.train.AdamOptimizertorch.optim.Adam(torch)optimizer_D = tf.train.AdamOptimizer().minimize(D_loss, var_list=theta_D)
optimizer_D = torch.optim.Adam(params=theta_D)

到此这篇关于浅谈tensorflow与pytorch的相互转换的文章就介绍到这了,更多相关tensorflow与pytorch的相互转换内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈tensorflow与pytorch的相互转换

本文链接: https://lsjlt.com/news/126031.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈tensorflow与pytorch的相互转换
    目录1.变量预定义2.创建变量并初始化3.语句执行4.tensor5.其他函数本文以一段代码为例,简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflo...
    99+
    2024-04-02
  • tensor与numpy的相互转换
    tensor与numpy的相互转换 1. numpy转tensor命令1:torch.tensor()命令2:torch.as_tensor()命令3:torch.from_numpy()区别...
    99+
    2023-09-05
    pytorch
  • 【PyTorch如何实现CPU、GPU相互转换?】
    拒绝CPU,PyTorch如何切换GPU计算? 问题的提出1.CPU_to_GPU——定义device对象2.CPU_to_GPU——.cuda()方法3.GPU_to_CPU——.cpuEn...
    99+
    2023-09-11
    pytorch 深度学习 python 人工智能
  • Canvas与Image怎么互相转换
    今天小编给大家分享一下Canvas与Image怎么互相转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起...
    99+
    2024-04-02
  • NDArray与numpy.ndarray互相转换方式
    目录NDArray与numpy.ndarray互相转换NumPy与ndarray简介NumPy简介数组ndarrayNDArray与numpy.ndarray互相转换 import ...
    99+
    2024-04-02
  • PHP数组与JSON互相转换
    PHP数组与JSON互相转换,数组转json:json_encode();json转数组:json_decode(); 使用json_encode转json时会发现中文字符会出现乱码 只需要在json_encode();函数中加入JS...
    99+
    2023-09-10
    json php 数组 Powered by 金山文档
  • NDArray与numpy.ndarray怎么互相转换
    本篇内容主要讲解“NDArray与numpy.ndarray怎么互相转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NDArray与numpy.ndarray怎么互相转换”吧!NDArray与...
    99+
    2023-06-30
  • Python 图片与pdf相互转换
    使用到第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作。 PDF 转为图片 需新建文件夹 pdf2png import fitz import glob def rightinput(desc): ...
    99+
    2023-01-31
    图片 Python pdf
  • Android中String与int相互转换
    目录一、如何将字串 String 转换成整数 int?这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?二、 如何将整数 int 转换成字串 String...
    99+
    2024-04-02
  • ByteArrayOutputStream与InputStream互相转换方式
    目录ByteArrayOutputStream与InputStream互相转换InputStream 转为 ByteArrayOutputStreamByteArrayOutputS...
    99+
    2024-04-02
  • Map与JavaBean相互转换的工具类
    下面就来分享工具类的内容: 使用范围:JavaBean类对象的属性不能是数组、List、Set、Map public class MapBeanUtil {         pu...
    99+
    2024-04-02
  • List与数组之间的相互转换
    文章目录 一、前言二、List列表与对象数组(一)对象List转对象数组1、toArray()方法2、Stream流的toArray()方法3、for循环 (二)、对象数组转对象Lis...
    99+
    2023-09-04
    java
  • JavaBeanMap实现Bean与Map的相互转换
    目录bean转Mapmap转BeanbeanMap实现以及高性能的原因net.sf.cglib.beans.BeanMap用法 bean转Map @Data public class...
    99+
    2022-11-21
    BeanMap Bean与Map的相互转换 BeanMap Bean与Map转换
  • Python - 列表与字典相互转换
    字符串转列表s = 'abc'a = list(s)['a','b','c']列表转为字符串''.join(a)字符串转换为元组s='abc't = tuple(s)元组转换为字符串''.join(t)列表转换为元组l = ['a','b'...
    99+
    2023-01-31
    字典 列表 Python
  • python中str与int类型的相互转换
    python中str与int类型的相互转换 1. str转换成int 方法:使用int()函数 # python中str转换成int a='12' b=int(a) # 转换成1...
    99+
    2023-10-11
    python
  • Base64字符串与图片的相互转换
    本篇博客记载的是一个我们在开发过程中很常用的一个小功能,就是我们在处理图片的时候做数据存放到数据库的功能,我们存放的不再是本地路径而是一个Base64的字符串! 然后我们在取值的时候又将Base64转换为一个图片文件的做法 简单的两个步骤:...
    99+
    2023-10-20
    java mybatis
  • IDEA中的yml文件与properties互相转换
    目录工具/原料方法/步骤这里介绍下idea里面,yml配置文件与properties文件互相转换 工具/原料 IDEA 2020.2Convert YAML and Properti...
    99+
    2022-11-13
    IDEA中yml文件 IDEA中properties yml与properties转换
  • PYTHON时间与字符串的互相转换
    这篇文章主要讲解了“PYTHON时间与字符串的互相转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PYTHON时间与字符串的互相转换”吧!1、字符串转换成时间[in]from d...
    99+
    2023-06-02
  • Canvas与Image怎么实现互相转换
    这篇文章将为大家详细讲解有关Canvas与Image怎么实现互相转换,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。转换 Image为 Canvas 要把图片...
    99+
    2024-04-02
  • C++类结构体与json相互转换
    目录1. 背景与需求2. 最终使用的样例代码3. 实现方法3.1 基础类型的转换3.2 类成员注册3.3 自定义类的转换3.4 外部调用接口1. 背景与需求 之前写C#的时候,解析j...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作