TensorFlow1.x和2.x,Pytorch的区别和联系

前言

最近开始学习Tensorflow框架,了解到最新发布了Tensorflow2.0,这比1.0更为简单强大。对于上路新手或许是一样好事,本文结合pytorch一起进行一个比较,有对比就会有新收获嘛!

简单比较

有不少文章分别对Pytorch,Tensorflow进行了详细介绍,对于新手的我也还在学习,就不再赘述了,下面只做简单的对比。
PyTorch 最大优势是建立的神经网络是动态的, 对比静态的 Tensorflow, 它能更有效地处理一些问题, 比如说 RNN 变化时间长度的输出。PyTorch的源码只有TensorFlow的十分之一左右,更少的抽象、更直观的设计使得PyTorch的源码十分易于阅读。
而最新发布的tensorflow2.0整体而言,从简单、强大、可扩展三个层面进行了重新设计。特别是在简单化方面,TensorFlow 2.0 提供更简化的 API、注重 Keras、结合了 Eager execution。

比较示例

需要实现的简单例子:

1/2+1/2^2+1/2^3+...+1/2^501

1、使用7python实现

x=0y=1for iteration in range(50):
	x=x+y
	y=y/2print(x)123456

2、使用Tensorflow1.0来实现

import tensorflow as tfprint(tf.__version__)x=tf.Variable(0.)y=tf.Variable(1.)#x=x+yadd_op=x.assign(x+y)#y=y/2div_op=y.assign(y/2)with tf.Session() as sess:
	sess.run(tf.global_variables_initializer())for iteration in range(50):
		sess.run(add_op)
		sess.run(div_op)print(x.eval())1234567891011121314

3、使用Pytorch来实现

import torchprint(torch.__version__)x=torch.Tensor([0.])y=torch.Tensor([1.])for iteration in range(50):
	x=x+y
	y=y/2print(x)123456789

4、使用Tensorflow2.0
这里,注意Tensorflow2.0的安装

https://www.cnblogs.com/xiaosongshine/p/11615639.html

import tensorflow as tf#tf.enable_eager_execution()print(tf.__version__)x=tf.constant(0.)y=tf.constant(1.)for iteration in range(50):
	x=x+y
	y=y/2print(x.numpy())12345678910

总结

Tensorflow1.0:静态图,难以调试
Tensorflow2.0与Pytorch:动态图,python自带调试的工具
Tensorflow相比于Pytorch的序列化与部署支持的更加广泛。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值