简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch)

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

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

目录

*
1.变量预定义
2.创建变量并初始化
3.语句执行
4.tensor
5.其他函数

1.变量预定义

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

简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch)

; 2.创建变量并初始化

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

简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch)

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.sqrttorch.sqrt完全相同tf.random_normalnp.random.normal(numpy)tf.random_normal(shape = size, stddev = xavier_stddev)

np.random.normal(size = size, scale = xavier_stddev)tf.concattorch.catinputs = 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.zerostorch.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)

[说明]:本文引言仅供参考。请查阅更多相关资料了解实际转换情况。如果你有能力,建议同时掌握这两个深度学习框架。

[En]

[description]: the introduction of this article is for reference only. Please consult more relevant materials for actual conversion. If you have the ability, it is recommended to master both of these two deep learning frameworks.

参考:1. https://blog.csdn.net/dou3516/article/details/109181203

Original: https://blog.csdn.net/didi_ya/article/details/125461794
Author: wendy_ya
Title: 简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/7719/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总